• ES6 新特性


    1. 新特性

    1.1 let 与 const

    let 声明的变量只在 let 命令所在的代码块内有效。不能重复声明。不存在变量提升。

    // 输出 0- 9:  for (let j = 0; j < 10; j++) { setTimeout(function(){ console.log(j); }) }

    const 声明一个只读的常量,一旦声明,常量的值就不能改变。一但声明必须初始化,否则会报错。

    const 更为详细的介绍

    var 和 let :

     let 是块作用域,即其在整个大括号 {} 之内可见

    在变量声明之前就访问变量的话,会直接提示 ReferenceError,而不像 var 那样使用默认值 undefined

    const 和 let 

    作用域是一致的,不同的是 const 变量一旦被赋值,就不能再改变了

    但是这并不意味着使用 const 声明的变量本身不可变,只是说它不可被再次赋值了

    什么时候用 var、let 或 const 呢?

    大多数情况下都使用 const

    如果变量的值的确需要改变,例如在 for 循环里面,那么就是用 let

    (与时俱进,es6,就不要用 var 了吧。。)

    1.2 解构赋值 

    一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值

    数组模型的解构 : 基本  可嵌套  可忽略  不完全解构  剩余运算符  字符串等  解构默认值

    let [a, b, c] = [1, 2, 3];   // a = 1 // b = 2 // c = 3

    对象模型的解构 :  基本  可嵌套可忽略  不完全解构  剩余运算符  解构默认值

    let { foo, bar } = { foo: 'aaa', bar: 'bbb' };   // foo = 'aaa' // bar = 'bbb'

    1.3 Symbol

    ES6 数据类型除了 Number 、 String 、 Boolean 、 Objec t、 null 和 undefined ,还新增了 Symbol 。表示独一无二的值.

    使用场景 :  作为属性名   定义常量

    let sy = Symbol("KK");  console.log(sy);   // Symbol(KK)    typeof(sy);        // "symbol"

    let yellow1 = Symbol.for("Yellow");   Symbol.keyFor(yellow1);    // "Yellow"

    1.4 Map 与 Set

    1.4.1 Map 对象

    Maps 和 Objects 的区别
    一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。
    Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。
    Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。
    Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。

    var myMap = new Map(); var keyString = "a string"; myMap.set(keyString, "和键'a string'关联的值"); myMap.get(keyString); // "和键'a string'关联的值" myMap.get("a string"); // "和键'a string'关联的值"

    Map 的迭代 : for...of     forEach()

    Map 对象的操作: Map 与 Array的转换  Map 的克隆  Map 的合并  

    1.4.2 Set 对象

    存储任何类型的唯一值,无论是原始值或者是对象引用。

    let mySet = new Set(); mySet.add(1); // Set(1) {1} mySet.add(5); // Set(2) {1, 5} mySet.add(5); // Set(2) {1, 5} 这里体现了值的唯一性

     类型转换   :  Array 转 Set    Set 转 Array   String 转 Set

    Set 对象作用: 数组去重    并集    交集    差集

    此处省略N个点,后续文章再细节描述

    2. 参考链接

    ES6 教程

    ECMAScript 6 入门

    javaScript、ES5和ES6的介绍和区别

    ES6 基础

  • 相关阅读:
    MySQL语句创建表、插入数据遇到的问题-20/4/18
    【Navicat】MySQL 8.0.17 数据库报2059错误
    MySQL 8.0.17 版安装 || Windows
    C#--Invoke和BeginInvoke用法和区别
    C#--params关键字
    C#--typeof() 和 GetType()区别
    C#--利用反射编写的SqlHelper类
    C#--反射基础
    C#--LINQ--2--LINQ高级查询
    C#--LINQ--1--初学LINQ基础和查询
  • 原文地址:https://www.cnblogs.com/justSmile2/p/10516839.html
Copyright © 2020-2023  润新知