zoukankan      html  css  js  c++  java
  • ES6 常用总结——第一章(简介、let、const)

    ES6整理

    1. ECMAScript 6简介

    ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

    2. let const 命令

    2.1. Let 命令

    ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

    for (let i = 0; i < 3; i++) {
      let i = 'abc';
      console.log(i);
    }
    

      

    2.1.1. 不允许重复声明

    let不允许在相同作用域内,重复声明同一个变量。

    // 报错
    
    function () {
    
      let a = 10;
    
      var a = 1;
    
    }
    
    // 报错function () {
    
      let a = 10;
    
      let a = 1;
    
    }
    
     
    

      

    2.1.2. ES6 块级作用域

    let实际上为 JavaScript 新增了块级作用域。

    function f1() {
    
      let n = 5;
    
      if (true) {
    
        let n = 10;
    
      }
    
      console.log(n); // 5}
    

      

    上面的函数有两个代码块,都声明了变量n,运行后输出5。这表示外层代码块不受内层代码块的影响。如果使用var定义变量n,最后输出的值就是10

    注意:应该避免在块级作用域内声明函数。如果确实需要,也应该写成函数表达式,而不是函数声明语句。

    // 函数声明语句{
    
      let a = 'secret';
    
      function f() {
    
        return a;
    
      }}
    
    // 函数表达式{
    
      let a = 'secret';
    
      let f = function () {
    
        return a;
    
      };}
    

      

    另外,还有一个需要注意的地方。ES6 的块级作用域允许声明函数的规则,只在使用大括号的情况下成立,如果没有使用大括号,就会报错。

    // 不报错
    
    'use strict';
    
    if (true) {
    
      function f() {}
    
    }
    
    // 报错'use strict';
    
    if (true)
    
      function f() {}
    
     
    

      

    2.2. const 命令

    2.2.1. 示例讲解

    const声明一个只读的常量。一旦声明,常量的值就不能改变。

    const PI = 3.1415;
    
    PI // 3.1415
    
    PI = 3;
    
    // TypeError: Assignment to constant variable.
    

      

    上面代码表明改变常量的值会报错。

    const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

    const foo;
    
    // SyntaxError: Missing initializer in const declaration
    
    上面代码表示,对于const来说,只声明不赋值,就会报错。
    
    const的作用域与let命令相同:只在声明所在的块级作用域内有效。
    
    if (true) {
    
      const MAX = 5;}
    
     
    
    MAX // Uncaught ReferenceError: MAX is not defined
    

      

    const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。

    if (true) {
    
      console.log(MAX); // ReferenceError  const MAX = 5;}
    

      

    上面代码在常量MAX声明之前就调用,结果报错。

    const声明的常量,也与let一样不可重复声明。

    var message = "Hello!";let age = 25;
    
    // 以下两行都会报错const message = "Goodbye!";
    
    const age = 30;
    

      

    2.2.2. ES6 声明变量的六种方法

    ES5 只有两种声明变量的方法:var命令和function命令。ES6除了添加letconst命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有6种声明变量的方法。

    2.3. 数组的解构赋值

    ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

    ES6允许写成下面这样。

    let [a, b, c] = [1, 2, 3];
    
    console.log("a="+a+",b="+b+",c="+c);
    
      //a=1,b=2,c=3
    
     
    

      

    2.4. 对象的解构赋值

    解构不仅可以用于数组,还可以用于对象。

    let { foo, bar } = { foo: "aaa", bar: "bbb" };
    
    console.log("foo="+foo+"__bar="+bar);
    
    //foo=aaa__bar=bbb
    

      

    字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

    const [a, b, c, d, e] = 'hello';
    
    console.log(a+"__"+b+"__"+c+"__"+d+"__"+e);
    
                //h__e__l__l__o
    
    类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。
    
    let {length : len} = 'hello';
    
    len // 5
    

      

    提取JSON数据

    解构赋值对提取JSON对象中的数据,尤其有用。

    let jsonData = {
    
      id: 42,
    
      status: "OK",
    
      data: [867, 5309]};
    
    let { id, status, data: number } = jsonData;
    
    console.log(id, status, number);
    
    // 42, "OK", [867, 5309]
    

      

     

  • 相关阅读:
    CSS:清除浮动小技巧
    CSS:可见格式化模型BFC与应用
    JavaScript:所有视图属性和方法(innerWidth、outerHeight、clientX等)
    JavaScript:正则表达式(入门篇)
    JavaScript:六种继承比较
    表格内展示2行,超出部分省略
    Docker删除大量停止的container
    docker学习笔记
    使用redis实现分布式锁
    Sublime text 3 如何格式化HTML/css/js代码
  • 原文地址:https://www.cnblogs.com/dinghouchuanqi/p/7007946.html
Copyright © 2011-2022 走看看