JS-ES6详解

本文详细介绍了ES6中的新特性,包括let和const的块级作用域,扩展运算符和rest运算符的使用,字符串模板的便捷拼接,以及for of的遍历方式。还讲解了箭头函数的语法和缺陷,Symbol类型的应用,Set和Map数据结构的使用,以及class的语法糖。通过实例展示了如何利用这些新特性进行更高效的编程。
摘要由CSDN通过智能技术生成

let和const

let

块级作用域:一种普遍存在于各个语言中的作用域范围;

    {
   
      var a = 10;
      let b = 20;
     }
     console.log(a)//10
     console.log(b)// b is not defined

在一个大括号中用let声明的变量在外部不可访问了,每个大括号都是独立的作用域

有了let声明我们在函数外部就无法访问到 i ,i作为下标只存在于for循环中, 所以,这个时候每个i都是独立的;我们在点击的时候可以轻易的获取当前元素的下标,而不用做很多繁琐的处理了

var aLi = document.querySelectorAll("li");
for(let i = 0;i<aLi.length;i++){
  aLi[i].onclick = function(){
    alert(i);
  }
  console.log(i);//0  1  2  3
}

JS中var声明一个变量是存在声明提升的,这是JS中的一个缺陷所在, 但是现在的let不存在声明提升

        // console.log(a);//undefined
        // console.log(b);//b is not defined
        // var a = 10;
        // let b = 20;
        let a = 20;
        function foo(){
   
            console.log(a);
            let a = 10;
        }
        foo();//a is not defined
        //报错,暂时性死区
        //js预编译的时候发现有一个局部的a,所以就不会再去寻找全局的a
        //但是在执行的时候他发现局部的a在后面let声明的,所以报错

ES6规定在某个区块中, 一旦用let或const声明一个变量,那么这个区块就变成块级作用域,用let 或者const声明的变量即为该区块绑定, 该变量不受任何变量影响。 在该变量使用let声明前不可以用。在语法上,我们叫这种情况为:暂时性死区 (temporal dead zone,简称 TDZ)

const常量

声明常量:

const a = 20;//常量:不能被修改的量
a = 30;    
//Uncaught TypeError:Assignment to constant variable.(未捕获的类型错误:赋值给常量变量)
console.log(Math.PI);//3.141592653589793
        Math.PI = 4;
        console.log(Math.PI);//3.141592653589793
const arr = [2,3,4,5];
        //arr = [3,4,4,6];
        //不能修改数组或对象的引用,但是可以通过API取修改内部结构
        arr.push(6,7);
        console.log(arr);//[2, 3, 4, 5, 6, 7]

扩展运算符 …

三个点号,功能是把数组或类数组对象展开成一系列用逗号隔开的值

var arr = [1,2,3,4,5];
        console.log(arr);//Array(5)
        console.log(...arr);//1 2 3 4 5   console.log 不会显示逗号,中间其实是有逗号的
        function add(arr){
   
            arr.pop();
            console.log(arr);
        }
 var foo = function(a, b, c) {
   
console.log(a);
console.log(b);
console.log(c);
}
var arr = [1, 2
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值