1.var 、 let 、 const的区别
使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象
使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升
使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值 const使用关键字必须要赋初始值
2.数组结构
let arr= [1,2,3];
let [a,b,c] = arr; //把arr中的值赋给a、b、c
console.log(a,b,c) //输出a 、b、c 最终打印结果为 1,2,3
3.对象解构
对象解构允许我们使用变量的名字匹配对象的属性 匹配成功将对象属性的值赋给变量
语法:let per = {name: 'lisi',age: 30,sex: '男'};
let { name, age, sex} = per;
console.log(name, age, sex);// 输出lisi 30 男
4.箭头函数
箭头函数是用来简化函数定义语法的
语法: function sum(num1,num2){
return num1 + num2;
}
箭头函数语法:const sum = (num1,num2) => num1 + num2;
如果形参只有一个,可以省略小括号
语法:function fn (v) {
return v;
}
箭头函数语法: const fn = v => v;
箭头函数不绑定this 箭头函数没有自己的this关键字,如果在箭头函数中使用this,this关键字将指向函数定义位置中的this。
语法: function fn() {
console.log(this);
return () => {
console.log(this);
}
}
const obj = {
name: 'zhangsan'
};
const resFn = fn.call(obj);
resFn();
5.剩余参数
剩余参数和结构配合使用
let stu = ['张三','李四','黄五'];
let [s1,...s2] = syu; //...s2 取剩下的数组的元素,取过来的值以数组形式存储
console.log(s1); //'张三'
console.log(s2); //['李四','黄五'];
6.array的扩展方法 扩展运算符
(1)扩展运算符可以将数组拆分以逗号分割的参数序列
let arr = ['a','b','c'];
console.log(...arr) // 结果为 a b c
(2) 扩展运算符可以用于合并数组
let arr = [1,2,3];
let arr1 = [4,5,6];
let arr2 = [...arr, ...arr1];
console.log(arr2);//打印结果为[1,2,3,4,5,6];
第二种方法
arr.push(...arr1);
console.log(arr);//打印结果是一样的[1,2,3,4,5,6];
(3).将类数组或可遍历对象转换为真正的数组
var o = document.querySelectorAll('div');
console.log(o);
var ary = [...o];
ary.push('a');
console.log(ary);
7.构造函数方法:Array.from() 将类数组或可遍历对象转换为真正额数组
(1)var arrayLike = {
"0": "张三",
"1": "李四",
"2": "黄五",
"length": 3
}
var arr = Array.from(arrayLike); //把伪数组转换真正到数组
console.log(arr);
(2).Array.from() 方法还可以接受第二个参数,用来对每个元素进行处理,然后处理后的值放入返回的数组。
var arrayLike = {
"0": "2",
"1": "10",
"length": 2
}
var arr = Array.from(arrayLike, item => item * 2)
console.log(arr);
8.find() 用于找出第一个符合条件的数组成员,如果没有找到则返回undefined
9.findlndex()用于找出第一个符合条件数组成员的位置,如果没有找到返回-1
10.includes() 表示某个数组是否包含给定的值,返回布尔值(true / false);
11.模板字符串 ``
(1) 模板字符串中可以解析变量
let arr = `末班`;
let sayHello = `早上好${arr}`;
console.log(sayHello); // 打印为 早上好末班;
(2) 模板字符串中可以调用函数
const fn = () => '我是fn函数';
let html = `模板字符串${fn()}`;
console.log(html);
12. Sring的扩展方法
(1)实例方法: startsWith()和endsWith()
startsWith()表示参数字符串是否在原字符串的头部,返回布尔值(以某个字符开始,返回布尔值)
endsWith()表示参数字符串是否在原字符串的头部,返回布尔值(以某个字符结尾,返回布尔值)
(2)实例方法 repeat()
repeat()方法表示将元字符串重复n次,返回一个新字符串。
console.log('x'.repeat(3)); //打印结果为xxx,三次x;
13.Set 数据结构
它类似于数组,但是成员的值都是唯一的,没有重复的值。
(1)Set本身是一个构成函数,用来生成Set数据结构
const s= new Set();创建一个空到数据结构
Set函数可以接受一个数组作为参数,用来初始化。
const set = new Set ([1,2,3]); //Set 创建一个数组
(2)用Set可以做数组去重
const s1 = new Set(['a','a','b','a']);
console.log(s1); // 输出结果为 a和b
(3)
add(value):添加某个值,返回 Set 结构本身
delete(value):删除某个值,返回一个布尔值,表示删除是否成功
has(value):返回一个布尔值,表示该值是否为 Set 的成员
clear():清除所有成员,没有返回值
语法:
const s4 = new Set();
//向set结构中添加值 使用add方法
s4.add('a').add('b');
console.log(s4.size);
//从set结构中删除值 用到delete方法
const r1 = s4.delete('a');
console.log(s4.size);
console.log(r1);
//判断某一个值是否是set数据结构中的成员 使用has
const r2 = s4.has('b');
console.log(r2);
//清空set数据结构中的值
s4.clear();
console.log(s4.size);
14.遍历
Set结构的实例与数组一样,也拥有forEach方法,用于对每个成员执行某种操作,没有返回值。
语法:
const m = new Set(['a', 'b', 'c']);
m.forEach(value => {
console.log(value);
})



