亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ES6解構(gòu)賦值實(shí)例詳解

 更新時(shí)間:2017年10月31日 09:38:32   作者:花花小兔子  
這篇文章主要介紹了ES6解構(gòu)賦值,結(jié)合實(shí)例形式較為詳細(xì)的分析了ES6結(jié)構(gòu)賦值的基本概念、原理與使用方法,需要的朋友可以參考下

本文實(shí)例講述了ES6解構(gòu)賦值。分享給大家供大家參考,具體如下:

基本用法

let [x, y, ...z] = ['a']
//"a", undefined, []

1.等號(hào)右邊如果不是數(shù)組,將會(huì)報(bào)錯(cuò)(不是可遍歷結(jié)構(gòu))
2.解構(gòu)賦值 var, let, const命令聲明均適用
3.set結(jié)構(gòu)也可解構(gòu)賦值(具有Iterator接口,可采用數(shù)組形式結(jié)構(gòu)賦值)

set解構(gòu):任何類型的單個(gè)值的集合

let [x, y, z] = new Set(["a", "b", "c"])
x //"a"

默認(rèn)值

1.數(shù)組成員的值不嚴(yán)格等于undefined,默認(rèn)值不生效(null的話相應(yīng)值依然為null)

[x=1, y=2, z=3, o=4] = ['a', , undefined, null]
//"a", 2, 3, null

2.如果默認(rèn)值是表達(dá)式,表達(dá)式惰性求值,只有在用到的時(shí)候才會(huì)去執(zhí)行

3.默認(rèn)值可以引用結(jié)構(gòu)賦值的其他變量,但該變量必須已聲明

對(duì)象結(jié)構(gòu)賦值

1.數(shù)組按次序排列,對(duì)象變量必須與屬性同名

var {bar, foo, baz: loc} = {foo: 'aaa', baz: 'bbb'}
bar //undefined
foo //"aaa"
loc //"bbb"
baz //ReferenceError: baz is not defined

2.變量以前聲明過,使用let賦值會(huì)報(bào)錯(cuò)

3.可用于嵌套結(jié)構(gòu)的對(duì)象

var node = {
  loc: {
    start: {
      line: 1,
      column: 5
    }
  }
}
var {loc:{start:{line}}} = node
line //1
loc //ReferenceError: loc is not defined
start //ReferenceError: start is not defined

line是變量,loc,start都是模式

4.對(duì)象結(jié)構(gòu)可以指定默認(rèn)值

(生效條件是對(duì)象屬性值嚴(yán)格等于undefined,null不會(huì)生效,解構(gòu)失敗值為undefined)

5.解構(gòu)模式是嵌套對(duì)象,且子對(duì)象父屬性不存在,報(bào)錯(cuò)

6.已聲明的變量解構(gòu)賦值

var x;
{x}={x:1} //SyntaxError: Unexpected token =
({x}={x:1}) //正確

js會(huì)將{x}理解成代碼塊,不將大括號(hào)寫在行首即可

7.可以將現(xiàn)有對(duì)象的方法賦值到某個(gè)變量

let { sin, cos, log } = Math(Math對(duì)象的名為sin的方法直接賦值給sin變量)

字符串解構(gòu)賦值

const [a,b] = 'hello' a//h
let {length:len} = 'hello' len//5(字符串本身包含length屬性)

數(shù)值&布爾值

解構(gòu)賦值規(guī)則:

① 只要等號(hào)右邊不是對(duì)象先將其轉(zhuǎn)化為對(duì)象,
② undefined和null無(wú)法轉(zhuǎn)換為對(duì)象,報(bào)錯(cuò)

let a = true
 = {a}
//Object {a: true}

函數(shù)參數(shù)解構(gòu)

[[1,2],[3,4]].map((a,b)=>a+b) //[3,7]
function({x=0,y=0}={}){
  return [x,y]
}

undefined會(huì)觸發(fā)函數(shù)參數(shù)默認(rèn)值

圓括號(hào)問題

1.變量聲明語(yǔ)句中,模式不能帶有圓括號(hào) let {x:(c)} = {}
2.函數(shù)參數(shù)中,模式不能帶有圓括號(hào)(函數(shù)參數(shù)也屬于變量聲明)
3.整個(gè)模式或嵌套模式中的一層,不可放入圓括號(hào)

賦值語(yǔ)句的非模式部分可使用

用途

1.[x, y] = [y, x]
2.函數(shù)返回的多個(gè)值分別賦值
3.函數(shù)參數(shù)與變量名對(duì)應(yīng)
4.提取json數(shù)據(jù)(ajax請(qǐng)求返回?cái)?shù)據(jù)處理中可用到)

({
  needServicePwd: this.needServicePwd,
  needImgCode: this.needImgCode,
  needSmsCode: this.needSmsCode
} = data)

5.函數(shù)參數(shù)的默認(rèn)值,避免在函數(shù)內(nèi)寫var foo = config.foo || ”

6.遍歷Map結(jié)構(gòu)

var map = new Map();
map.set('first', 'hello');
map.set('second', 'world');
for (let [key, value] of map) {
  console.log(key + " is " + value);
}

7.引用模塊的指定方法

const { SourceMapConsumer, SourceNode } = require("source-map");

更多相關(guān)內(nèi)容可查看本站專題:《ECMAScript6(ES6)入門教程》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript字符與字符串操作技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《javascript面向?qū)ο笕腴T教程

希望本文所述對(duì)大家基于ECMAScript的程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Typescript文件被識(shí)別為視頻的問題解決

    Typescript文件被識(shí)別為視頻的問題解決

    這篇文章主要為大家介紹了Typescript文件被識(shí)別為視頻的問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Bootstrap框架動(dòng)態(tài)生成Web頁(yè)面文章內(nèi)目錄的方法

    Bootstrap框架動(dòng)態(tài)生成Web頁(yè)面文章內(nèi)目錄的方法

    這篇文章主要介紹了Bootstrap框架動(dòng)態(tài)生成Web頁(yè)面文章內(nèi)目錄的方法,利用Bootstrap中的Affix和ScrollSpy插件便可以實(shí)現(xiàn),需要的朋友可以參考下
    2016-05-05
  • JS中type=

    JS中type="button"和type="submit"的區(qū)別

    Submit是專門用于提交表單的Button,與Button的區(qū)別主要有兩點(diǎn):type=button 就單純是按鈕功能,type=submit 是發(fā)送表單 。下面通過本文給大家分享JS中type="button"和type="submit"的區(qū)別,感興趣的的朋友一起看看吧
    2017-07-07
  • JS搜狐面試題分析

    JS搜狐面試題分析

    這篇文章主要介紹了JS搜狐面試題,涉及javascript數(shù)組、字符串及面向?qū)ο蟪绦蛟O(shè)計(jì)相關(guān)技巧,需要的朋友可以參考下
    2016-12-12
  • JavaScript 格式字符串的應(yīng)用

    JavaScript 格式字符串的應(yīng)用

    在使用JavaScript中的Date對(duì)象時(shí),有一個(gè)常用的操作就是輸出。但Date對(duì)象自帶的toString()方法輸出的格式并不能滿足用戶多樣化的需求。我在想,是不是可以將C#中DateTime.ToString(string format)方法的形式引入到JavaScript中呢?
    2010-03-03
  • JS與jQuery實(shí)現(xiàn)ListBox上移,下移,左移,右移操作功能示例

    JS與jQuery實(shí)現(xiàn)ListBox上移,下移,左移,右移操作功能示例

    這篇文章主要介紹了JS與jQuery實(shí)現(xiàn)ListBox上移,下移,左移,右移操作功能,涉及javascript與jQuery的事件響應(yīng)、頁(yè)面元素動(dòng)態(tài)操作等相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • Bootstrap CSS布局之代碼

    Bootstrap CSS布局之代碼

    這篇文章主要介紹了Bootstrap CSS布局之代碼的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 詳解PHP后期靜態(tài)綁定分析與應(yīng)用

    詳解PHP后期靜態(tài)綁定分析與應(yīng)用

    這篇文章給大家總結(jié)了PHP后期靜態(tài)綁定分析與應(yīng)用的相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友可以學(xué)習(xí)下。
    2018-03-03
  • layui prompt 設(shè)置允許空白提交的方法

    layui prompt 設(shè)置允許空白提交的方法

    今天小編就為大家分享一篇layui prompt 設(shè)置允許空白提交的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-09-09
  • 用iframe實(shí)現(xiàn)不刷新整個(gè)頁(yè)面上傳圖片的實(shí)例

    用iframe實(shí)現(xiàn)不刷新整個(gè)頁(yè)面上傳圖片的實(shí)例

    下面小編就為大家?guī)?lái)一篇用iframe實(shí)現(xiàn)不刷新整個(gè)頁(yè)面上傳圖片的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2016-11-11

最新評(píng)論