//var//let const//let 不存在变量提升
console.log(a);let a =10;//let 同一个作用域下不能重复定义同样的名称let a =10;let a =100;
console.log(a);//有着严格的作用域 块级作用域{}functionfun(){let str =99;if(true){let str =100;};
console.log(str);};fun();//暂时性死区let a = b ,b =1;//const 声明的一个只读的常量,一旦声明,常量的值就不能改变const x =10;//x = 100; //error
console.log(x);//const一旦声明了就得初始化,不能只声明不赋值const y;//error//数组和对象指向的是对应的内存地址不能改动,对应的值是可以修改const arr =[];
arr.push(1);
arr[1]=2;
console.log(arr)//[1,2]const obj ={};
obj.id =123;
console.log(obj);
箭头函数
//箭头函数 简化了函数的定义letf=v=> v;//let 变量名 = 参数 => 函数体//let f = v =>{return v}//es5varf=function(v){return v;};letf=()=>123;varf=function(){return123;};varf=function(a,b){return a+b;};varf=(a,b)=> a+b;f(2,3)varf=(a,b)=>{fun2(a,b)};
数据结构 set map
//数据结构 set map //set 类似于数组 成员信息是唯一//map 类似于对象 键值对的方法const s =newSet();const arr =newArray();//arr[0] = 1; arr[1] = 2const m =newMap();//定义const s =newSet();//add() //添加
s.add(1).add(2).add(3).add(3);
console.log(s);//另一种定义const s =newSet([1,2,4,62,4,3,2,5,2]);//类型转换 去重var a = Array.from(s);
console.log(a);//[]var arr =[1,2,4,2,4,2,5,2,3,2,2,2,3,3,2,3,2,2];var a2 =[...newSet(arr)];//...扩展运算符
console.log(a2)//mapconst m =newMap();//添加属性var a ={id:1};
m.set(a,1).set('name','abc');
console.log(m)//for of ES6里增加的var arr =['a','b','c'];for(let v of arr){
console.log(v)};for(let[k,v]of m){}