一、变量:
1.let声明
- let 声明的变量具有块级作用域;
- let 声明变量没有声明变量提升;
- let声明变量具有暂时性死区;
··············如果当前块级作用域有声明的变量,就不会使用上层作用域的变量。
2.const:声明常量
- const 声明常量具有块级作用域
- const声明常量必须要赋值
- const声明常量不能改栈中值
- let声明变量具有暂时性死区;
··············如果当前块级作用域有声明的变
二、数组解构
1.概念:解析数组,把数组中的元素同时赋给多个变量;
var s=['pink','green','blue'];
var [name,name1,name2,name3]=s;
console.log(name,name1,name2,name3);
这里可以打印对应的值;值不够的话就是unfinished;
-
let [变量1,变量2,变量3] = 数组
-
如果变量的个数多于数组数据个数,则多出来的变量得不到值,值为undefined
-
如果变量的个数少于数组数据个数,则数组中多出来的元素不赋值,变量按照顺序依次赋值
三、对象解构
1.概念:解析对象,把数组中的元素同时赋值给部分变量;
var ss = { name: 'cui', age: 30 };
var { name: demo } = ss;
console.log(demo);
- 对象结构允许使用变量的名称匹配对象的属性,匹配成功后将对象的属性值赋值给变量
- 如果对象中没有和变量同名的属性,则不赋值,值为undefined
四、箭头函数
1.概念:()=>{ } 箭头函数用来简化定义语法;
2.使用方式:关键字 函数名=(形参)=>{ 函数体}
- 如果函数体只操作一行代码,并且是返回值,可以省略{};
- 如果函数参数只有一个,可以省略();
3.箭头函数里面的this指向
- 箭头函数中的this指向被定义函数作用域中的this;
- 箭头函数中的this不可以被bind、call、apply修改;
五、剩余参数
1.概念:箭头函数中无法使用arguments,而是通过剩余参数,…args来接收无形参数;
剩余参数进行数组结构:
let [s1,...s2] = [1,2,3,4,5];
s1 == 1; s2 == [2,3,4,5]
剩余参数进行对象结构
let {name:myName,...s2} = {name:"小明",age:20,sex:"男"};
myName == "小明";
s2 == {age:20,sex:"男"}
六、扩展运算符
1.概念:把数据中元素以”,“隔开的序列;
2.Array的扩展方法;
1. Array.from():
将伪数组转化伪数组
var s={
"0":'cui',
"1":20,
"2":3,
"length":3,
}
var ss=Array.from(s);
console.log(ss);
-
处理函数:处理每一个数据,函数的返回值表示转化之后的结果
-
伪数组:
1)有类似于索引值的属性名
2)有length属性 -
作用:把伪数组转化为一个真正的数组
2.数组.find():
查找数组,并返回相应的数值;
var ary=[
{id:1,
name:'张三'},{
id:2,
name:'李四',
}
]
let t=ary.find(item=>item.name=='李四');
console.log(t);
-
使用方式: 数组.find(处理函数)
1)处理函数有两个参数,分别是元素和索引值,
2)如果处理函数返回的是true的时候,就会选出该元素,把该元素返回
3) 注意,该方法只会选出来一个元素 -
作用:找到数组中符合某个条件的第一个元素
3.数组.findIndex():
1.概念:查找数组,返回查找到的结果
-
使用方式:
1)数组.findIndex(处理函数)
2)处理函数有两个参数,分别是元素和索引值,
3)如果处理函数返回的是true的时候,就会选出该元素,把该元素的索引值返回 -
作用:找到数组中符合某个条件的第一个元素的索引值
4.数组.includes():
-
判定数组是否包含某个数据
-
使用方式:
1)数组.includes(数据)
2)如果包含则返回 true
3)如果不包含则返回 false -
作用:验证数组中是否有指定的元素
七、 String的扩展方法
-
模板字符串:使用``来包括字符串,在字符串中使用${}来指定变化内容
-
startsWith():监测字符串是否以指定的字符作为开头
1)使用方式: 字符串1.startWidth(字符串2) 检测字符串1是否以字符串2作为开头
2)如果是,则返回值为true,如果不是,则返回值是false
-
endsWith():监测字符串是否以指定的字符作为结尾
使用方式: 字符串1.endsWith(字符串2) 检测字符串1是否以字符串2作为结尾
如果是,则返回值为true,如果不是,则返回值是false -
repeat():将字符串重复指定次数
使用方式:字符串.repeat(n) 将字符串重复n次,返回新字符串
八、 Set结构:
与数组类似,但是没有重复的元素
创建set数据:
new Set()
new Set(数组)
set数据.add(新数据):
把新数据插入到set数据中,返回值是set数据本身
注意:可以链式编程,多次调用添加多个数据
set数据.delete(数据):
把新数据从set数据中删除,返回值是布尔值表示是否删除成功
set数据.has(数据):
判断set数据中是否含有新数据,返回值是布尔值表示是否包含该数据
set数据.clear():
清空set数据,没有返回值