zoukankan      html  css  js  c++  java
  • ES5&&ES6

    ES5&&ES6
    一、let
      1.块级作用域, let定义的变量只在代码块中有效
      2.let声明的变量不会提前(前置)(意味着必须先定义后使用)
      3.不能重复定义 ,在同一个作用域中不能声明同名的变量
      4.暂时性死区(当内部变量与外部变量同名时,内部变量会屏蔽外部变量)
      注:let和var的区别
      1)let声明的变量是块级作用域(所在花括号里),var是函数作用域和全局作用域
         注意:let是可以定义全局变量,局部变量,块级作用域的变量。(和写代码的位置有关)
      2)let声明的变量不会声明提升,var会声明提升
      3)从代码的写法上,let不能声明同名的变量,var可以。
    二、this和bind
    1.this
      1).以函数的形式调用时,this永远都是window
      2).在事件处理函数时,this是事件源.
    2.bind(this重新指代的对象)(只能为匿名函数服务)
    3.call和apply
       call和apply本质上能改变函数所属的对象(函数内部的this)
       参数是谁,this就是谁
      Object.call(this,obj1,obj2,obj3)
      Object.apply(this,arguments)
    三、JSON.parse/JSON.stringfy
       JSON字符串和对象的直接的转换
        字符串转换成JSON对象:JSON.parse
        JSON对象转换成字符串:JSON. stringify
      var str = '{"id":"123","name":"456"}';
       let obj = JSON.parse(str);
       console.log(obj.id);
       console.log(obj.name);
       let str1 = JSON.stringfy(obj);
       console.log(str1.id);
       console.log(str1.name);
     
    四、const只读变量
        用const来修饰一个变量,就意味着该变量里的数据只能被访问,而不能被修改,也就是意味着const“只读”(readonly)
        const所修饰的变量必须赋初始值
        const修饰的是直接指向(修饰)的内存
        引用类型有两块内存区域
        引用类型代表的是保存地址的内存区域,数组元素表示的是数据
    五、for in与for of
        let strArr = [];
        for(let index in strArr){
           console.log(strArr[index]);
        }
       for(let t of strArr){
           console.log(t);
        }
    六、字符串的扩展
       判断字符串是否包含在另一个字符串中
       ES5    indexOf(参数)
       ES6    includes(参数)    返回布尔值,表示是否找到参数的字符串
                 startsWith(参数)   返回布尔值,参数是否在源字符串的头部
                 endsWith(参数)   返回布尔值,参数是否在源字符串的尾部
    七、箭头函数(针对于匿名函数)  
          eg:   x=>x*5相当于function(x){ return x*5 }
          var f=(id,name)=>({id:id,name:name});
          //等价于:
       
       var f=(id,name)=>{
             return {id:id,name:name}
         };
     
    八、解构赋值(针对于数组、对象)
        优点:1. 可以让一个函数返回一个的值
                  2. 可以实现两个数的交换
                  3.可以将多个变量进行初始化
        eg:  let a=1;b=22;t;
             a=a+b;
             b=a-b;
             a= a-b;
             console.log(a,b);
     
    eg:  let [v1,[v2,v3],[v4,v5]] = [12,[23,34],[56,67],[5,6]];
        console.log(v1);
        console.log(v2);
        console.log(v3);
        console.log(v4);
        console.log(v5);
        let {name,age} = {name:"dahuang",age:18};
        console.log(name,age);
        
    九、Set和Map
    set特点:自动去重,无下标
    let set = Set([2,3,5,6,2,3,2,1]);
    console.log(set.size);     //5
    for(let t of set){
        console.log(t);
    }
    set集合的方法:
    add(参数)   向集合中添加一个元素
    delete(参数)    删除集合中某个数
    has(参数)        判断集合中是否含有某个值
    clear(参数)     清空集合中的元素
    from(参数)   将集合转为数组
     
    Map : 键值对
    set()   向集合中添加一个元素
    get(键)    根据键去取值
    delete( 键)    删除集合中的某个数
    has(键)     clear(参数)     清空集合中的元素
    from(参数)   将集合转为数组
    Map的遍历
    for(let t of map){
        console.log(t[0] + t[1]);   //0代表key,1代表value
    }
     
    十、Symbol
     1.表示独一无二的值,它是基本类型中的一种。
     2.它是内置基本对象,不能使用new关键字来使用。let symbol = Symbol();
    let symbol1 = symbol("heihei");
    let symbol2 = symbol("heihei");
    console.log(symbol1 === symbol2);    //false
     
    let age =Symbol();
    var a = {
        name:"老王";
        [age]: 18 ;
        hobby: "写代码";
    };
    for(let i in a){
        console.log(a[t]);    //老王
                              //写代码
    }
    console.log(a[age]);      //18
     
  • 相关阅读:
    antdvue 全局配置loading
    eslint使用
    chrome浏览器跨域请求cookie丢失问题(一直报验证码错误,因为未携带sessionid)
    [2021BUAA软工_助教博客]作业成绩汇总
    将list按指定大小分为n组
    关于sql中group by使用的一些注意点
    Java调用webservice请求
    windows系统查看用户sid
    高等软工期末作业《课程总结》
    成年人最大的智慧:认清自己
  • 原文地址:https://www.cnblogs.com/yzr-71123/p/11086683.html
Copyright © 2011-2022 走看看