首页 > 其他 > 详细

ES6(1)

时间:2020-03-06 00:05:03      阅读:64      评论:0      收藏:0      [点我收藏+]

  经过了几个月对前端的学习,觉得成效不大,那就给学习做点记录吧,从ES6开始。

  学习一门技术网络上的文档很多,推荐一本学习文档用于学习参考,给出链接https://es6.ruanyifeng.com/

  • 变量的声明方式

  相较于传统js中的var,es6中新加了一种新的变量声明方式let,相较于var它有四种显著的特性

  1. let:
    ①不存在变量提升
    ②不允许重复声明
    ③暂时性死区
    ④块级作用域                                                                                                                                                                                                                                                                                                                                                                                                           之前我们学过的var声明的变量都是全局的,如果直接写变量名不定义也会按照var定义来解析算作全局变量,而let是局部作用域,这里的作用域可以理解为{}中的内容为一个作用域,在作用于外调用,变量不存在会报错,这就是因为块作用域的原因.                       这个个例子举得很好,需要细细体会一下,另外js有自己的存储机制,所以在let定义失效后,for循环中后台自动会把记录的i保存,这样就说得通了为什么i在块作用域外还可以使用
    1 var a = [];
    2         for (var i = 0; i < 10; i++) {
    3             a[i] = function () {
    4                 console.log(i);
    5             };
    6         }
    7         a[6]();//10
    1 var a = [];
    2         for (let i = 0; i < 10; i++) {
    3             a[i] = function () {
    4                 console.log(i);
    5             };
    6         }
    7         a[6]();//6

     

  2. const:声明一个只读变量,一但声明变量不能改变,const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。
  • 变量的解构赋值
    从数组和对象中提取值,对变量进行赋值,这被称为解构
    ①数组解构
    
let arr = ["hello","world","good"];
    let a = arr[0];//hello
    let b = arr[1];//word
    let c = arr[2];//good
    let [a,b]=["hello","world","good"];//hello word underfine
    let [a,[b,c],d] = [1,[2,3],4];//1 2 3 4
    

 

    ②对象解构
let obj = {
      name:"abc",
      age:20
    }
    let name = obj.name;//abc
    let age = obj.age;//20

    let {age:b,name:a}={name:"abc",age:20};//20 abc 与位置无关变量名相对应

 

    ③字符串解构
let str = "hello";
    let [a,b,c] = "hello";
    console.log(a,b,c);//h e l
    console.log(str[0]);//h
    console.log(str.charAt(0));//h

 

    ④应用:函数参数的解构赋值\函数返回值\变量互换\Json应用
function foo({name,age}){
      console.log(name,age);
    }
    let obj = {
      name:"abc",
      age:20
    }
    foo(obj)//abc 20

    不引入第三个变量实现数值的互换

   //方案一
    var [a,b]=[b,a];
    //方案二
    var a = [b,b=a][0];

 

ES6(1)

原文:https://www.cnblogs.com/yzkddhxb/p/12408703.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!