ES6 (Es2015)新特性
ES6, 全称ECMAScript 6.0, 是JaveScript的下一个版本标准, 2015.06发版.
ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现
一、变量与常量
先看es5写法<script> var a = 10; var a = 15; var b = 20; b = 16; //有三个按钮绑定点击事件点击,依次弹出1,2,3 window.onload = function(){ var oBtn = document.getElementsByTagName('button'); for(var i =0; i < oBtn.length;i++){ oBtn[i].addEventListener('click',function(){ alert(i); // 3,3,3 }) } } //解决办法: 加立即执行函数 window.onload = function () { var oBtn = document.getElementsByTagName('button'); for (var i = 0; i < oBtn.length; i++) { (function (i) { oBtn[i].addEventListener('click', function () { alert(i); //0,1,2 }) })(i); } } </script>我们再看es6写法
<script> let a = 10; let a = 15;//error let b = 11; b = 22;//22 const c = 20; const c = 25; //error const d = 30; d = 35; //16 window.onload = function(){ var oBtn = document.getElementsByTagName('button'); for(let i =0; i < oBtn.length;i++){ oBtn[i].addEventListener('click',function(){ alert(i); // 0,1,2 }) } } </script>
var 可以重复声明,无限次修改,没有作用域
let 不能重复声明,变量可以修改值,有作用域
const 不能重复声明,常量不可以修改值,有作用域
二、解构赋值
<script> let [a,b] = [1,2]; console.log(a,b); //1,2 let [a,b]; [a,b] = [1,2]; //error let {name,age,job} = {name:"bobocode",age:23,job:'web'} console.log(name,age,job); // bobocode 23 web let [{a,b},[arr]] = [{a:'testa',b:'testb'},[1,2,3]]; console.log(a,b,arr); // testa testb [1, 2, 3] let arr1 = [1,2,3]; let arr2 = [5,6,7]; let newArr = [...arr1,...arr2]; console.log(newArr); //[1, 2, 3, 5, 6, 7] </script>
解构赋值声明和赋值不能分开写
解构赋值等号左右两边的结构必须相同
解构赋值右边必须是有意义的结构(arr,json等)
三、数组新方法
<script> //map(映射) [1,2,3,4].map(function(item){ console.log(item*2); //1,4,9,16 }); //reduce(总和)...
点击查看剩余70%
网友评论0