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}`);
10-03 11:12