摘要:數(shù)值和布爾值的解構(gòu)賦值解構(gòu)賦值的規(guī)則只要等于號(hào)右邊的值不是對(duì)象,則優(yōu)先將其轉(zhuǎn)為對(duì)象函數(shù)參數(shù)的解構(gòu)賦值函數(shù)的參數(shù)實(shí)際上不是一個(gè)數(shù)組,而是通過解構(gòu)得到的變量和。如果解構(gòu)失敗,則返回默認(rèn)值。
數(shù)值和布爾值的解構(gòu)賦值
解構(gòu)賦值的規(guī)則:
只要等于號(hào)右邊的值不是對(duì)象,則優(yōu)先將其轉(zhuǎn)為對(duì)象
let {toString: s} = 123; s === Number.proptotype.toString // true let {toString: s} = true; s === Boolean.prototype.toString // true函數(shù)參數(shù)的解構(gòu)賦值
function add([x,y]){ retrun x + y; } add([1,2]) // 3
函數(shù)add的參數(shù)實(shí)際上不是一個(gè)數(shù)組,而是通過解構(gòu)得到的變量x和y。
函數(shù)參數(shù)的解構(gòu)依舊可以使用默認(rèn)值
function move({x = 0, y = 0} = {}){ retrun [x,y] } move({x: 3,y: 8}); // [3,8]; move({x: 3}) // [3,0] move({}) // [0,0] move() // [0,0]
函數(shù)move的參數(shù)是一個(gè)對(duì)象,通過對(duì)這個(gè)對(duì)象進(jìn)行解構(gòu),得到變量x和y的值。如果解構(gòu)失敗,則返回默認(rèn)值。
下面的寫法,會(huì)存在一些問題
function move({x,y} = {x: 0,y: 0}){ return [x,y]; } move({x: 3,y: 8}); // [3,8]; move({x: 3}) // [3,undefined] move({}) // [undefined,undefined] move() // [0,0]
如果已經(jīng)存在賦值,則會(huì)獲取獲取undefind
解構(gòu)賦值的用途 變換變量的值[x,y]=[y,x]從函數(shù)中返回多個(gè)值
// 返回一個(gè)數(shù)組 function f(){ return [1,2,3]; } var [a,b,c] = f(); // 返回一個(gè)對(duì)象 function f1(){ ruturn { foo: 1, bar: 2 } } var {foo, bar} = f1();函數(shù)參數(shù)的定義
function f([x,y,z]){...} f({1,2,3}) function f([x,y,z]){...} f({x:1,z:3,y:2})提取JSON數(shù)據(jù)
var jsonData= { id: 42, status: "ok", } let {id,status: isok} = jsonData; consoloe.log(id, isok); // 42 "OK"函數(shù)參數(shù)的默認(rèn)值
$.ajax=function (url,( async = true, beforeSend = function(){}, cache = true, complete = function(){}, crossDomain = false, global = true, )){ // TODO }遍歷Map解構(gòu)
var map = new Map() ; map.set("first", "hello"); map.set("sec", "world"); for(let [key, value] of map){ // 從循環(huán)的數(shù)值中依次賦值key和value console.log(key + "is" + value) // first is hello // sec is world }輸入模塊的制定方法
const { SourceMapConsumer, SourceNode} = require("source-map")圓括號(hào)的問題
變量聲明語句中,模式中不能有圓括號(hào)
var [(a)]=[1]; var [x: {c}]={};
函數(shù)參數(shù)中,模式不能帶有圓括號(hào)
function f([(z)]) = { return z; }
不能講整個(gè)模式或嵌套模式中的一層放在圓括號(hào)中
({p: a})={p: 42} ([a]) = [5]何正確的使用圓括號(hào)
賦值語句的非模式部分可以使用圓括號(hào)
[(b)] = [3]; ({p: (d)} = {})
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/104567.html
摘要:數(shù)組的解構(gòu)賦值特點(diǎn)根據(jù)數(shù)據(jù)的下標(biāo)來賦值的,有次序。模式能夠匹配起來,如長度為數(shù)值和布爾值的解構(gòu)賦值解構(gòu)賦值的規(guī)則是只要等號(hào)右邊的值不是對(duì)象或數(shù)組,就先將其轉(zhuǎn)為對(duì)象。布爾值解構(gòu)賦值為字符串的一種。在很多獨(dú)立細(xì)小的方面,解構(gòu)賦值都非常有用。 1、解構(gòu)賦值簡介 官方解釋:按照一定的模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱為解構(gòu)(Destructuring)。 舉個(gè)例子,想獲取數(shù)組中...
摘要:標(biāo)準(zhǔn)入門讀書筆記和命令新增命令,用于聲明變量,是塊級(jí)作用域。用于頭部補(bǔ)全,用于尾部補(bǔ)全。函數(shù)調(diào)用的時(shí)候會(huì)在內(nèi)存形成一個(gè)調(diào)用記錄,又稱為調(diào)用幀,保存調(diào)用位置和內(nèi)部變量等信息。等到執(zhí)行結(jié)束再返回給,的調(diào)用幀才消失。 《ES6標(biāo)準(zhǔn)入門》讀書筆記 @(StuRep) showImg(https://segmentfault.com/img/remote/1460000006766369?w=3...
摘要:消除字符串頭部空格消除尾部空格從頭部補(bǔ)全字符串從尾部補(bǔ)全字符串 let和const var關(guān)鍵字定義變量的特點(diǎn): 可以重復(fù)定義 不能定義常量 不支持塊級(jí)作用域 let的特點(diǎn) 不可以重復(fù)定義 變量不能提升,在變量定義之前,不能使用 在大括號(hào)當(dāng)中定義的變量(塊級(jí)作用域中),在作用域外無法訪問 解決一些ES5當(dāng)中需要閉包實(shí)現(xiàn)的功能,比如:每隔1秒循環(huán)輸出一個(gè)當(dāng)前的值 const的特點(diǎn)...
摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。解構(gòu)賦值允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱為解構(gòu)。對(duì)象的解構(gòu)賦值對(duì)象的屬性沒有次序,變量必須與屬性同名。 ES6 新增特性整理講解 新增命令 1.let命令 ES6新增了let命令,用來聲明變量。它的用法類似于var,但是也存在新的特性。 - **let所聲明的變量,只在le...
閱讀 1907·2023-04-26 01:55
閱讀 1149·2021-09-30 09:47
閱讀 1746·2019-08-30 15:54
閱讀 802·2019-08-30 15:53
閱讀 758·2019-08-30 15:52
閱讀 1199·2019-08-30 15:44
閱讀 2484·2019-08-30 14:06
閱讀 1120·2019-08-29 16:39