1.声明变量
let
具有块级作用域
不存在变量提升
会绑定在这个块级作用域,不会受外界的影响
const
具有块级作用域
声明常量时必须赋值
常量赋值后,值不能修改
2.解构赋值
数组解构:
let [a, b, c] = [1, 2, 3];
对象解构:
let person = { name: 'zhangsan', age: 20 };
let { name, age } = person;
let {name: myName, age: myAge} = person;
// myName myAge 属于别名
箭头函数
const fn = () => {}
函数体中只有一句代码,
且代码的执行结果就是返回值,
可以省略大括号和return
如果形参只有一个,可以省略小括号
const fn = v => v;
箭头函数不绑定this关键字,
箭头函数中的this,指向的是函数定义位置的上下文this
剩余参数
剩余参数语法允许我们将一个不定数量的参数表示为一个数组 声明不知道参数情况下的一个函数 ...args
function sum (first, ...args) {
console.log(first); // 10
console.log(args); // [20, 30]
}
sum(10, 20, 30)
Array 的扩展方法(★★)
扩展运算符
扩展运算符可以将数组或者对象转为用逗号分隔的参数序列
let ary = [1, 2, 3];
...ary // 1, 2, 3
console.log(...ary); // 1 2 3,相当于下面的代码
console.log(1,2,3);
用于合并数组 将类数组或可遍历对象转换为真正的数组
find()
用于找出第一个符合条件的数组成员,如果没有找到返回 undefined
let target = ary.find((item, index) => item.id == 2)
findIndex()
用于找出第一个符合条件的数组成员的位置,如果没有找到返回-1
let ary = [1, 5, 10, 15];
let index = ary.findIndex((value, index) => value > 9);
console.log(index); // 2
forEach()
遍历数组
arr.forEach(function(value, index, array) {
//参数一是:数组元素
//参数二是:数组元素的索引
//参数三是:当前的数组
})
//相当于数组遍历的 for循环 没有返回值
filter()
过滤数组
let ary = [1, 5, 10, 15];
let index = ary.findIndex((value, index) => value > 9);
console.log(index); // 2
some
some 查找数组中是否有满足条件的元素
var arr = [10, 30, 4];
var flag = arr.some(function(value,index,array) {
//参数一是:数组元素
//参数二是:数组元素的索引
//参数三是:当前的数组
return value < 3;
});
console.log(flag);//返回值是布尔值,只要查找到满足条件的一个元素就立马终止循环
String 的扩展方法
模板字符串
let name = `zhangsan`;
模板字符串中可以解析变量
let name = '张三';
let sayHello = `hello,my name is ${name}`
模板字符串中可以换行
在模板字符串中可以调用函数