ES6-变量的解构赋值

1,什么是解构?为什么要使用解构?

          ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。解构赋值在实际开发中可以大量减少我们的代码量,并且让我们的程序结构更清晰。

2,数组的解构赋值

        (1)简单的数组解构:

             之前我们为一些变量赋值的方法:let a=0;let b=1;let c=2;

             使用数组解构赋值:let [a,b,c] = [0,1,2];可以简单的理解为等号左边为数组模式,右边为赋值    模式;赋值模式要与数组模式在形式上统一,let [a,[b,c],d]=[1,[2,3],4]; 否则解构失败;

        (2)解构的默认值:

             解构赋值是允许使用默认值的,例如:let[foo=true]=[];console.log(foo);//true;

            let[foo=true]=[]  可以理解为  let[foo=true]=[undefined];

             栗子:

                 let [a,b="JSPang"]=['技术胖'] console.log(a+b); //“技术胖JSPang”

                   let[a,b="JSPang"]=['技术胖',undefined]console.log(a+b);//“技术胖JSPang”

                   let [a,b="JSPang"]=['技术胖',null]console.log(a+b); //“技术胖null”

         (3)null与undefined的区别:

                     undefined表示什么都没有;null表示有值,但值为null;

3,对象的解构赋值

          栗子:let{foo,bar}={foo:'JSPang',bar:'技术胖'};

                        console.log(foo+bar);//控制台打印出了“JSPang技术胖”

          与数组解构的区别:数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

4,解构的应用场景      

           (1)变量交换:

                        ES5:采用中间变量的方式进行存储;

                        ES6: let a=1; let b=2; [a,b]=[b,a]; console.log(a,b);//2,1

               (2)  函数返回值是数组,需要获取数组内某个值:

                       ES5:先给一个变量获取函数的返回结果,再按索引获取两个值;

                       ES6: function f(){return [1,2]};  let [a,b]=f();  console.log(a,b);//

             (3) 返回多个值,选择性的接受某值:

                      ES5:先给一个变量获取函数的返回结果,再按索引获取两个值;

                      ES6: function f(){return [1,2,3,4,5]};  let [a,,,b]=f();  console.log(a,b);//1,4

             (4) 不知道函数返回的数组的长度是多少,只关心第一个,其余的放到一个数组中

                      ES5:先给一个变量获取函数的返回结果,再按索引操作;

                      ES6: function f(){return [1,2,3,4,5]};  let a,b; [a,...b]=f();   console.log(a,b);//1,[2,3,4,5]

          未完待续。。。。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 969评论 0赞 0
  • 本文参考阮一峰老师es6入门做的学习笔记。 1.数组的解构赋值。 ES6允许按照一定模式,从数组和对象中提取值,对...
    GXW_Lyon阅读 495评论 0赞 0
  • 基本概念 只要某种数据结构具有Iterator接口都可以采用解构赋值和for of循环 如:1数组(有序)2对象(...
    coolheadedY阅读 309评论 0赞 0
  • 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring...
    嘉奇呦_nice阅读 850评论 0赞 2
  • 1、新的声明方式 以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种...
    令武阅读 1,120评论 0赞 7

友情链接更多精彩内容