• strict模式(ES6)


    1、强制申明变量
    在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。
    启用strict模式的方法是在JavaScript代码的第一行写上:'use strict';

    2、多行字符串
    反引号 ` ... ` 表示,替换 --换行

    3、模板字符串
    ${varName},替换+--连接字符串

    1 'use strict';
    2 var name = '小明';
    3 var age = 20;
    4 var message = `你好, ${name}, 你今年${age}岁了!`;
    5 alert(message);

    注意:使用模板字符串在反引号里面

    4、新的数据类型 Map 和 Set

    解决问题:JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的

    Map:是一组键值对的结构,具有极快的查找速度

    1 var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
    2 m.get('Michael');

    初始化Map需要一个二维数组,或者直接初始化一个空Map

    1 var m = new Map(); // 空Map
    2 m.set('Adam', 67); // 添加新的key-value
    3 m.set('Bob', 59);
    4 m.has('Adam'); // 是否存在key 'Adam': true
    5 m.get('Adam'); // 67
    6 m.delete('Adam'); // 删除key 'Adam'
    7 m.get('Adam'); // undefined

    由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉

    Set:SetMap类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。

    要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set

    1 var s1 = new Set(); // 空Set
    2 var s2 = new Set([1, 2, 3]); // 含1, 2, 3

    重复元素在Set中自动被过滤

    add(key):添加元素到Set中,可以重复添加,但不会有效果

    delete(key):删除元素

    iterable

    遍历Array可以采用下标循环,遍历MapSet就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,ArrayMapSet都属于iterable类型。

    具有iterable类型的集合可以通过新的for ... of循环来遍历

    1 'use strict';
    2 var a = [1, 2, 3];
    3 for (var x of a) {
    4 }
    5 console.log('你的浏览器支持for ... of');

    for ... of循环遍历集合,用法如下:

     1 var a = ['A', 'B', 'C'];
     2 var s = new Set(['A', 'B', 'C']);
     3 var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
     4 for (var x of a) { // 遍历Array
     5     console.log(x);
     6 }
     7 for (var x of s) { // 遍历Set
     8     console.log(x);
     9 }
    10 for (var x of m) { // 遍历Map
    11     console.log(x[0] + '=' + x[1]);
    12 }

    for ... in 与 for ... of 区别

    for ... in

    遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。

    当我们手动给Array对象添加了额外的属性后,for ... in循环将带来意想不到的意外效果。

    1 var a = ['A', 'B', 'C'];
    2 a.name = 'Hello';
    3 for (var x in a) {
    4     console.log(x); // '0', '1', '2', 'name'
    5 }

    for ... in循环将把name包括在内,但Arraylength属性却不包括在内。

    for ... of循环则完全修复了这些问题,它只循环集合本身的元素。

    5、ES6引入rest参数,(arguments--指向调用者传进来的所有参数)

    1 //格式
    2 function(...rest);
    3 function(a,b,...rest);
  • 相关阅读:
    建站始末——(转载)
    阿里云——大神建个人网站分享(转载)
    从零开始建设个人网站
    前端资料——书籍
    【python】*与** 参数问题
    【python】python异常类型
    【python】unittest中常用的assert语句
    【性能测试】性能测试总结<四>
    【性能测试】性能测试总结<三>
    【性能测试】性能测试总结<二>
  • 原文地址:https://www.cnblogs.com/fanyizhan/p/9988302.html
Copyright © 2020-2023  润新知