成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

《ES6學(xué)習(xí)2》 變量的解構(gòu)賦值

mist14 / 1557人閱讀

摘要:解構(gòu)賦值的分類數(shù)組解構(gòu)賦值對(duì)象解構(gòu)賦值字符串解構(gòu)賦值數(shù)值解構(gòu)賦值布爾值解構(gòu)賦值函數(shù)參數(shù)解構(gòu)賦值。嵌套情況默認(rèn)值解構(gòu)賦值允許設(shè)置默認(rèn)值,當(dāng)數(shù)組成員嚴(yán)格等于,默認(rèn)值將生效。報(bào)錯(cuò)報(bào)錯(cuò)函數(shù)參數(shù)的解構(gòu)賦值函數(shù)的參數(shù)也可以使用解構(gòu)賦值和指定默認(rèn)值

ES6可以從數(shù)組和對(duì)象中提取值,然后對(duì)變量進(jìn)行賦值。解構(gòu)賦值的分類:數(shù)組解構(gòu)賦值、對(duì)象解構(gòu)賦值 、字符串解構(gòu)賦值、數(shù)值解構(gòu)賦值、布爾值解構(gòu)賦值、 函數(shù)參數(shù)解構(gòu)賦值。

1 數(shù)組的解構(gòu)賦值 1.1 基本用法
let [a, b, c] = [1, 2, 3];
//等同于
let a = 1;
let b = 2;
let c = 3;

如上所示,只要等號(hào)兩邊的模式相同,左邊的變量就會(huì)被賦予右邊對(duì)應(yīng)的值。還可以使用嵌套數(shù)組進(jìn)行結(jié)構(gòu)。

let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3

let [x, , y] = [1, 2, 3];
x // 1
y // 2
1.2 解構(gòu)不成功

如果結(jié)構(gòu)不成功,變量的值就等于undefined。

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

//以下兩種情況,foo的值都等于undefined。
let [foo] = [];
let [bar, foo] = [1];
1.3 不完全解構(gòu)

即等號(hào)左邊的模式只匹配一部分等號(hào)右邊的數(shù)組,依然可以解構(gòu)成功。

let[x, y] = [1, 2, 3];
x // 1
y // 2

//嵌套情況
let [a, [b], d] = [1, [2, 3], 4];
a // 1
b // 2
c // 4
1.4 默認(rèn)值

解構(gòu)賦值允許設(shè)置默認(rèn)值,當(dāng)數(shù)組成員嚴(yán)格等于undefined,默認(rèn)值將生效。

let [x = 1] = [undefined];
x // 1
let [y = 1] = [null];
y // null
2 對(duì)象的解構(gòu)賦值

解構(gòu)同樣適用于對(duì)象。

let {foo, bar, barz} = {foo: "aaa", bar: "bbb"};
foo // "aaa"
bar // "bbb"
barz // undefined

對(duì)象的解構(gòu)賦值實(shí)際上是先找到同名屬性,然后再賦值給對(duì)應(yīng)的變量,前者是匹配模式,后者才是真正的變量。

let { foo: foo, bar: bar } = { foo: "aaa", bar: "bbb" };

let obj = { first: "hello", last: "world" };
let { first: f, last: g } = obj;
f // "hello"
g // "world"
first // first id not undefined

解構(gòu)也可以用于嵌套結(jié)構(gòu)的對(duì)象

let obj = {
  p: [
    "hello",
    { y: "world" }
   ]
};

let { p, p: [x, { y }] } = obj;
x // "hello"
y // "world"
p //  ["hello", { y: "world" }]

對(duì)象的解構(gòu)同樣可以指定默認(rèn)值

let { x = 1 } = {};
x // 1
3 字符串的解構(gòu)賦值

字符串進(jìn)行解構(gòu)賦值時(shí),會(huì)被轉(zhuǎn)換成一個(gè)類數(shù)組對(duì)象。

const [a, b, c] = "red";
a // "r"
b // "e"
c // "d"

類數(shù)組對(duì)象的length屬性也可以進(jìn)行解構(gòu)賦值

let { length: len } = "hello";
len // 5
4 數(shù)值和布爾值的解構(gòu)賦值

解構(gòu)賦值時(shí),如果等號(hào)右邊不是數(shù)組和對(duì)象,則會(huì)先轉(zhuǎn)為對(duì)象,如果是undefined和null則無(wú)法轉(zhuǎn)為對(duì)象,此時(shí)會(huì)報(bào)錯(cuò)。

let { toString: s } = 123;
s === Nunmber.prototype.toString // true;

let { toString: s } = true;
s === Boolean.prototype.toString // true;

let { prop : x } = undefined; // 報(bào)錯(cuò)
let { prop : y } = null; // 報(bào)錯(cuò)
5 函數(shù)參數(shù)的解構(gòu)賦值

函數(shù)的參數(shù)也可以使用解構(gòu)賦值和指定默認(rèn)值

function add([x, y]){
  return x + y;
}
add([1,2]); // 3

function move({ x = 0, y = 0 } = {}) {
  return [x, y];
};
move({ x: 3, y: 8 }); // [3, 8]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/109691.html

相關(guān)文章

  • ES6 學(xué)習(xí)筆記(一)let,const和解構(gòu)賦值

    摘要:另外對(duì)于已經(jīng)聲明的變量進(jìn)行解構(gòu)賦值時(shí),要非常小心。因此在行首加,將其強(qiáng)制轉(zhuǎn)化為表達(dá)式執(zhí)行。由于和無(wú)法轉(zhuǎn)為對(duì)象,所以對(duì)它們進(jìn)行解構(gòu)賦值,都會(huì)報(bào)錯(cuò)。 let和const let和const是es6新增的兩個(gè)變量聲明關(guān)鍵字,與var的不同點(diǎn)在于: (1)let和const都是塊級(jí)作用域,在{}內(nèi)有效,這點(diǎn)在for循環(huán)中非常有用,只在循環(huán)體內(nèi)有效。var為函數(shù)作用域。 (2)使用let和con...

    iOS122 評(píng)論0 收藏0
  • ES6學(xué)習(xí) 第二章 變量解構(gòu)賦值

    摘要:前言前言該篇筆記是第二篇變量的解構(gòu)賦值。這一章原文鏈接變量的解構(gòu)賦值解構(gòu)賦值解構(gòu)賦值允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱為解構(gòu)。對(duì)象的解構(gòu)賦值是根據(jù)對(duì)象值進(jìn)行匹配。前言該篇筆記是第二篇 變量的解構(gòu)賦值。這一章原文鏈接: 變量的解構(gòu)賦值解構(gòu)賦值ES6 允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱為解構(gòu)(Destructuring)。解構(gòu)賦值是對(duì)賦值運(yùn)...

    番茄西紅柿 評(píng)論0 收藏2637
  • ES6學(xué)習(xí) 第二章 變量解構(gòu)賦值

    摘要:前言該篇筆記是第二篇變量的解構(gòu)賦值。這一章原文鏈接變量的解構(gòu)賦值解構(gòu)賦值允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱為解構(gòu)。對(duì)象的解構(gòu)賦值是根據(jù)對(duì)象值進(jìn)行匹配。 前言該篇筆記是第二篇 變量的解構(gòu)賦值。 這一章原文鏈接: 變量的解構(gòu)賦值解構(gòu)賦值ES6 允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)...

    番茄西紅柿 評(píng)論0 收藏2637
  • ES6學(xué)習(xí)摘要(02)(新人學(xué)習(xí)

    摘要:默認(rèn)值同時(shí),對(duì)象解構(gòu)賦值也允許設(shè)置默認(rèn)值,默認(rèn)值生效的判斷條件同數(shù)組,只有在對(duì)應(yīng)值嚴(yán)格等于時(shí)會(huì)生效。報(bào)錯(cuò)如果要將一個(gè)已經(jīng)聲明的變量用于解構(gòu)賦值,必須非常小心。的規(guī)則是,只要有可能導(dǎo)致解構(gòu)的歧義,就不得使用圓括號(hào)。 ECMAScript6/ES6 入門 let和const命令 四、變量的解構(gòu)賦值 在ES6之前,數(shù)組和對(duì)象屬性賦值只能直接指定固定值,ES6 允許按照一定模式,從數(shù)組和對(duì)象中...

    Jonathan Shieber 評(píng)論0 收藏0
  • ES6學(xué)習(xí)手稿之基本類型擴(kuò)展

    摘要:它是一個(gè)通用標(biāo)準(zhǔn),奠定了的基本語(yǔ)法。年月發(fā)布了的第一個(gè)版本,正式名稱就是標(biāo)準(zhǔn)簡(jiǎn)稱。結(jié)語(yǔ)的基本擴(kuò)展還有一些沒(méi)有在這里詳細(xì)介紹。 前言 ES6標(biāo)準(zhǔn)以及頒布兩年了,但是,好像還沒(méi)有完全走進(jìn)我們的日常開(kāi)發(fā)。這篇文章從ES6的基本類型擴(kuò)展入手,逐步展開(kāi)對(duì)ES6的介紹。 ECMAScript和JavaScript JavaScript是由Netscape創(chuàng)造的,該公司1996年11月將JavaSc...

    tommego 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<