一、用法
用法一:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <script type="text/javascript" src="bootstrap.js" ></script> 7 <script type="text/javascript" src="traceur.js" ></script> 8 <script type="module"> 9 10 </script> 11 </head> 12 <body> 13 </body> 14 </html>
type为module是为了区别于其他js
用法二:
node中使用
二、新增功能
1、定义变量let
之前:
1 var a=12;
新增:let用来定义变量
1 <script type="module"> 2 let a=12; 3 alert(a) 4 </script>
区别:1)作用域范围,let定义的变量具备块级作用域(只要被花括号包起来,只能在代码块里面使用),var只在函数作用域范围内有效
1 { 2 let a=12; 3 alert(a); //不会报错,12 4 } 5 alert(a); //报错
1 { 2 var a=12; 3 alert(a); //12 4 } 5 alert(a); //12
2)let定义的变量不允许重复声明,var可以
1 let a=12; 2 let a=10; 3 alert(a) //报错
总结:let的块级作用域就是自执行的匿名函数
2、定义常量const
一旦定义,就再也修改不了
1 const a=12; 2 a=10; //报错
const声明的时候必须要赋值,不能以后再也没法赋值。
1 const a; 2 a=10; //报错
const同样不能重复声明
1 const a=10; 2 const a=12; 3 alert(a); //报错
3、解构赋值
以前赋值方式:
1 var a=1; 2 var b=2; 3 var c=3;
解构赋值方式:
1 var [a,b,c]=[1,2,3]
json格式:
1 var {a,b,c}={b:2,a:1,c:3}; //跟顺序无关
4、复制数组
方式一:循环
1 var arr=[1,2,3]; 2 var arr2=[]; 3 for(var i=0;i<arr.length;i++){ 4 arr2[i]=arr[i]; 5 } 6 arr2.pop(); 7 console.log(arr,arr2);
方式二:Array.from()方法
1 var arr=[1,2,3]; 2 var arr2=Array.from(arr); 3 4 arr2.pop(); 5 console.log(arr,arr2);
方法三:超引用
1 var arr=[1,2,3]; 2 var arr2=[...arr]; 3 4 arr2.pop(); 5 console.log(arr,arr2);
5、新增循环for of
ES5循环:普通for、for in
ES6循环:for of用来遍历、迭代整个数组