1.let和const 变量和常量的定义
变量let的三个特点
1.块级有效
if(true)
{
let a = 1;
}
console.log(a);//error!
2.必须先声明再使用
console.log(ss);//error!
let ss = 33;
3.存在暂时性死区
var num = 100;
console.log(num);//100
if(true)
{
console.log(num);//error!
let num = 100;
}
常量const3个特点
1.具有块级作用域
2.必须赋初始值
3.定义后值(内存地址)不可修改
2.解构赋值
1.数组解构
var arr = [1,2,3];
let [a,b,c,d,e] = arr;
console.log(a);
console.log(b);
console.log(c);
console.log(d);
console.log(e);
2.对象解构
var o = {names:'lisi',age:18,sex:'男'}
let {names,age,sex} = o;
console.log(names);
console.log(age);
console.log(sex);
var o = {names:'lisi',age:18,sex:'男'}
let {names:ke,age:ag,sex:se} = o;
console.log(ke);
console.log(ag);
console.log(se);
第一种方法是去对象中寻找与变量同名的属性,第二种是根据冒号前面的匹配属性,赋值给冒号后面的变量。
3.箭头函数
箭头函数是一种函数的定义方法,可以简化写法
特点
1.当只有一句代码,且执行结果就是函数返回值时,可以省略大括号
2.只有一个参数时可以省略括号
var a = 1;
const fn = ss => alert(ss);
fn(a);
const fun = () => {
console.log(a);
}
3.箭头函数内部没有this关键字,如果使用this, this将会指向定义位置的this
function han(){
console.log(this);
return () => {
console.log(this);
}
}
var o = {
name:'phigros',
};
const shu = han.call(o);
shu();
4.剩余参数
const sum = (...arr) => {
let total = 0;
arr.forEach((item) => {
total = total + item;
})
return total;}
const num1 = sum(1,2,3,4,5,5,6);
const num2 = sum(23,56,43,23,78,65);
console.log(num1);
console.log(num2);
var args = ['12','liu','wo','girl'];
var [a1,...a2] = args;
console.log(a1);
console.log(a2);