国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

ES6解構賦值實例詳解

2024-05-06 15:24:58
字體:
來源:轉載
供稿:網友

本文實例講述了ES6解構賦值。分享給大家供大家參考,具體如下:

基本用法

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

1.等號右邊如果不是數組,將會報錯(不是可遍歷結構)
2.解構賦值 var, let, const命令聲明均適用
3.set結構也可解構賦值(具有Iterator接口,可采用數組形式結構賦值)

set解構:任何類型的單個值的集合

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

默認值

1.數組成員的值不嚴格等于undefined,默認值不生效(null的話相應值依然為null)

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

2.如果默認值是表達式,表達式惰性求值,只有在用到的時候才會去執行

3.默認值可以引用結構賦值的其他變量,但該變量必須已聲明

對象結構賦值

1.數組按次序排列,對象變量必須與屬性同名

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

2.變量以前聲明過,使用let賦值會報錯

3.可用于嵌套結構的對象

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

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

4.對象結構可以指定默認值

(生效條件是對象屬性值嚴格等于undefined,null不會生效,解構失敗值為undefined)

5.解構模式是嵌套對象,且子對象父屬性不存在,報錯

6.已聲明的變量解構賦值

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

js會將{x}理解成代碼塊,不將大括號寫在行首即可

7.可以將現有對象的方法賦值到某個變量

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

字符串解構賦值

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

數值&布爾值

解構賦值規則:

① 只要等號右邊不是對象先將其轉化為對象,
② undefined和null無法轉換為對象,報錯

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

函數參數解構

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

undefined會觸發函數參數默認值

圓括號問題

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 边坝县| 盘山县| 鄂伦春自治旗| 庆安县| 宁陵县| 东城区| 乌拉特后旗| 沧州市| 石河子市| 西贡区| 蕲春县| 龙泉市| 揭阳市| 社旗县| 奉节县| 慈溪市| 南乐县| 宁强县| 闽清县| 武城县| 九龙县| 张家港市| 紫金县| 湄潭县| 南漳县| 拜城县| 三原县| 湖口县| 纳雍县| 贵德县| 灵丘县| 西城区| 唐山市| 吉隆县| 正阳县| 宁河县| 西乌珠穆沁旗| 县级市| 义乌市| 云霄县| 寿宁县|