• ES6新特性


    一  var、let和const区别

    1.let和const不存在变量提升

    console.log(c);   //undefined
    var c='hello';
    
    console.log(d);   //报错
    let d='world';

    2.let 和const 在同一个作用域下不能重复定义同一个名称

    var d=1;
    var d=100;
    console.log(d);   //100

    let f=1;
    let f=100;   //若直接去掉let这个类型定义  ,直接f=100;是可以的,这个变量值可以改变  
    console.log(f);   //报错

    3.有着严格的作用域    var函数作用域  let和const块级作用域

    function fun(){
       var n=10;
       if(true){
           var n=100;
        } 
        console.log(n);  
    }
    fun();  //100
    
    function fun(){
       let m=10;
       if(true){
           let m=100;
        } 
        console.log(m);  //此时的两个m作用域范围不一致,不报错
    }
    fun();  //10

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

    const w=100;
    w=200;  //报错
    const r;  //报错,  一定初始化,不能只声明不赋值
    const obj ={};
    obj.name = 'anna';
    console.log(obj)//不报错,因为数组和对象是引用对象,它定义的是内存的地址
    const arr=[];
    arr.push(1)
    //不报错,因为数组和对象是引用对象,它定义的是内存的地址
    
    

    二、箭头函数   (简化了函数的定义)

    let f = v=>v;    //变量名 = 参数 => 返回值(函数体)   参数为空或个数为两个及两个以上则应()括住参数
    var f=function(v){
      return v;  
    }
    let f2 = (n1,n2) => n1+n2;
    1. this是静态的,this始终指向函数声明所在作用域下的this的值
    2. 不能作为构造实例化对象
    3. 不能使用arguments变量
    4. 箭头函数的简写(省略小括号,当形参有且只有一个的时候;省略花括号,当代码体只有一句语句的时候)

    三、数据结构    Set  Map

    set 类似于数组  成员是唯一的

    map 类似于对象 

    const s=new Set();
    s.add(1).add(2).add(3).add(2);
    console.log(s) //Set(3) {1,2,3}
    //面试常见题 数组去重处理
    var arr2 = [2,2,3,1,4,4,2,2,6];
    var arr3 = [...new Set(arr2)]; //把数组转成set类型,自动去重,之后再加[...]扩展运算符又转成数组类型

    const m = new Map();
    m.set('name','anna').set('age',18);
    for(let [key,value] of m){
    //可以用for循环取值
    }
  • 相关阅读:
    装饰器模式
    mockups 安装
    单例设计模式
    css优先级问题
    GPU的nvadiasmi解析
    conda配置镜像并安装gpu版本pytorch和tensorflow2
    索引的优化
    [转]必须掌握的八个【cmd 命令行】
    BDE莫名的不自动COMMIT问题
    窗体控件笔记
  • 原文地址:https://www.cnblogs.com/cccaroline/p/13372170.html
Copyright © 2020-2023  润新知