Let基本特性。
(1)let声明的变量不存在预解析。即不可以再定义变量之前,使用变量。
1.
预解析,在这里,相当于
执行结果:
2.
执行结果:
(2).let 不可以重复声明一个变量(同一作用域)。
1.
执行结果:不会报错
2.
执行结果:
(3).let声明的变量会产生块级作用域(一般不同的作用域是用{}隔开)
1.
执行结果为1
2.
执行结果:
3.
执行结果为3,外部的作用域拿不到内部的变量,但内部的变量可以使用外部的变量。
(4).for()循环括号内声明的变量只能在内部使用–
执行结果:
Const基本特性
const声明的变量是静态的,不可改变的,且声明的时候必须初始化。
正确用法:
执行结果是1
错误实例:
(1)
执行结果:
(2)
执行结果:
解构赋值
(1)
执行结果:
(2)
执行结果:
(3)
执行结果:
(4)
执行结果:
(5)结构对象时,key值必须相等。
执行结果:
(6)key值名称相同即可,但每个key的先后顺序不影响结构赋值。
执行结果:
(7)可以给左边的待解构变量取别名,通过冒号
执行结果:,这里只能通过baba拿到解构的值,b失效,不可以使用了。
在此基础上还可以默认初始化一个值。
执行结果:
(8)解构变量也可以拿到函数的定义。
执行结果:
(9)
执行结果:
(10)字符串对象有的属性和方法,通过大括号解构的方式取它的属性和值。
执行解构:。这里的length就是字符串对象的一个属性,所以可以解构成功。
字符串扩展
- Includes():判断这个字符串对象是否含有某个字串,返回结果是boolean值。
执行结果:
默认搜索主串的索引为0,这里可以指定任意索引,即从主串的任意位置搜索。
执行结果:
(2)startsWith():判断主串是否为子串开始。
执行结果:
(3)endsWith():判断主串是否为子串结束。
执行结果:
(4)模板字符串
执行结果:
再${}内,可以执行js的代码,并有具体的信息返回值。
执行结果:
函数扩展
(1)
执行结果:
(2)
执行结果:
(3)函数参数的解构赋值
执行结果:
(4) 函数的剩余参数
执行结果:
(5)扩展运算符 …
执行结果:
可以通过此运算符合并数组
执行结果:
(6)箭头函数
在node环境下的执行结果:
对于带有一个参数只执行一条语句的函数,()和{} 可以省略,
执行结果:
对于多个参数和多条执行语句则必须加上()和{}
执行结果不同之处在于箭头函数中的this = {},而正常函数中的this = global(node环境)
更准确的来说,箭头函数的this取决定函数的定义,正常函数this取决于函数的调用。
箭头函数不可以new
执行结果:
执行结果:
箭头函数不可以使用arguments获取函数列表,可以使用剩余参数的方式代替。
箭头函数执行的结果,是另一个函数对象。
正常函数的执行结果是参数列表,