声明方式

var和let的区别

1,var用来声明全局变量,let用来声明局部变量:

   

   

  

  

2,var可以提升变量,let声明的变量不在变量提升:

  

   

const声明常量

   

变量解构赋值

ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。

数组解构赋值

例如上面要为三个变量赋值,我们就可以使用变量解构赋值:

   

在使用数组解构的时候,个数可以不一致,但是格式需要保持一致:

   

  

  

  

  

对象解构赋值

数组是按照顺序进行赋值的,所以需要保持左右两边形式一致;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

   

  

如果在解构之前就定义了变量,这时候你再解构会出现问题,需要在解构的语句外边加一个圆括号:

   

  

默认值

解构赋值是允许我们使用默认值的:

   

   

  

undefined和null的区别

undefined相当于什么都没有,能接受默认值;null相当于有值,但值为null

   

  

...运算符

对象扩展运算符(…)

当编写一个方法时,如果使用对象扩展运算符来作参数,就能允许它传入的参数是不确定的:

  

拷贝赋值

  

上面这种情况在刚学习js的时候是常常会碰见的,因为我们这是对内存堆栈的引用,而不是真正的赋值,如果我们希望这个时候只改变数组b而不改变a,可以使用下面的方法:

 

但是使用了对象扩展运算符之后,就可以使用下面这种方法:

  

  

rest运算符(...)

rest运算符和对象扩展运算符有很多相似之处,下面列举rest运算符的简单用法:

  

字符串模板

字符串拼接

在ES5中,我们会采用下面的方式进行字符串拼接:

  

在ES6中,我们可以使用字符串模板拼接字符串,并且还支持html标签:

  

字符串查找

在ES5中,我们可以利用indexOf的返回值,来判断字符串中是否包括某个字符,在获取结果后还需要再进行一次判断。

  

在ES6中,可以通过includes直接进行判断了,并且还可以通过startsWith和endsWith来判断开头和结束为止的判断:

    

ES6基础一的更多相关文章

  1. ES6 基础

    转载自:ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来 ...

  2. 新手必看ES6基础

    ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来说明这两 ...

  3. ES6基础语法

    1. 什么是ECMAScript ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association ...

  4. 从零开始学 Web 之 ES6(四)ES6基础语法二

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  5. 从零开始学 Web 之 ES6(五)ES6基础语法三

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. 从零开始学 Web 之 ES6(六)ES6基础语法四

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  7. ES6 基础学习

    ECMAScript 6 标准入门 一.let和const let命令 let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效:是块级作用域,且let不允许 ...

  8. ES6基础-ES6 class

    作者 | Jeskson 来源 | 达达前端小酒馆 ES - Class 类和面向对象: 面向对象,即万物皆对象,面向对象是我们做开发一种的方式,开发思维,面向对象的思维中万物皆对象,以人作为例子,它 ...

  9. ES6基础-ES6的扩展

    进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展. 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符 ...

  10. ES6基础-变量的解构赋值

    作者 | Jeskson 来源 | 达达前端小酒馆 解构赋值: 数组的解构赋值,对象的解构赋值,字符串的解构赋值,数值与布尔值的解构赋值,函数参数的解构赋值. 开发环境准备: 编辑器,VS Code, ...

随机推荐

  1. 【带权并查集】【HDOJ】

    http://acm.hdu.edu.cn/showproblem.php?pid=3047 Zjnu Stadium Time Limit: 2000/1000 MS (Java/Others)   ...

  2. js framework comparation

    starting a new project:(finance project for p2p -- like lending club, or prosper ) ,we considering a ...

  3. oracle命令导入SQL脚本

    使用@导入 比如说我在oracle家目录下有a.sql文件 命令行sqlplus / as sysdba,进入后 SQL>@/home/oracle/a.sql; 回车搞定

  4. software download

    Develop Sourceinsight 3.50.0066 http://pan.baidu.com 这个版本支持输入文件名的一部分来查找文件,而不像3.50.0029必须输入完整的文件名 VFP ...

  5. MySQL Lock--INSERT加锁规则

    Insert操作加锁规则 1.INSERT操作会对新插入的记录加行锁(ROW LOCK)+排他锁(X LOCK),不会产生任何GAP锁和Next-Key锁 2.在插入记录前,会向插入记录所在位置申请意 ...

  6. immutable-styles 新的css style 开发模式

    immutable-styles 是一个开源的library,可以方便我们开发强壮以及可预测的web 界面,不用担心其他css 的影响 特性 编译时错误提示 防止css 覆盖 分离破坏点 严格继承 重 ...

  7. Using C++ new() placement in embedded system

    For new(), there are three definition in C++11, which are listed below. throwing (1) void* operator ...

  8. numpy 笔记

    1  矩阵.数组.列表 #from numpy import * import numpy as np 矩阵创建 >>> A = np.array([1,2,3]) array([1 ...

  9. ZeroTier One

    ZeroTier – 无配置,零基础「内网穿透」随时随地连回家/学校/办公室 [跨平台] https://www.appinn.com/zerotier-one/ Virtual NetworkZer ...

  10. EnvironmentError: mysql_config not found问题解决(centos7下python安装mysql-python)

    centos7下python安装mysql-python模块,执行命令: pip install mysql-python 出现报错:EnvironmentError: mysql_config no ...