1.var要比let的位高,作用域要大
2.let的作用范围很小很小
3.若果在函数内定义一个var变量,在函数外是不能被访问的.
function user(){ var a=1; } console.log("a"+a);//a is not defined
4.let g=1; g=2; console.log("g"+g);//let的值可以这样修改
5. // const b=2; //const声明的是常亮,一般不允许改,但是如果声明的是对象,则可以修改,比如 // b=3; const b={a:1};//因为b声明的是一个对象,是个内存地址,在地址里,可以改变值,但是不可以把地址变了,比如b={c:1};这样就会报错 b.a=3;
6.默认传参,防止用户少填写,数字
function add(flag){ if(flag){ return "true"; }else{ return "error";//因为没有传参,所以默认为flase } } console.log(add()); function sum(flag=true) { if(flag){ return "true"//这里传了一个默认值true,所以返回true }else{ return "flase" } } console.log(sum());
7.//箭头函数
var arr=[3,6,9]; var newArr=arr.map(function (item) { return item+2; }); var newArr1=arr.map((item)=>{//箭头函数的参数作用域和外层的函数保持一致,function 指向调用这个函数的对象, return item+2; }); console.log(newArr1);
8. var [a,b] = [2,3,4];//数组的解构 console.log(`a :${a},b:${b}`); var [x,y,z] = "vue";//字符串的结构 console.log(`x:${x},y:${y},z:${z}`); var {n,m}={m:2,n:3}; console.log(`n:${n},m:${m}`);//他的位置和先后顺讯没有关系,之和关键字有关
9.传入数组函数
function sum([x,y]) { return x+y; } var total = sum([2,8]); console.log(`total:${total}`);