国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

20190610 ES6-解構賦值-數值、布爾值、函數參數、用途

Baoyuan / 2270人閱讀

摘要:數值和布爾值的解構賦值解構賦值的規則只要等于號右邊的值不是對象,則優先將其轉為對象函數參數的解構賦值函數的參數實際上不是一個數組,而是通過解構得到的變量和。如果解構失敗,則返回默認值。

數值和布爾值的解構賦值

解構賦值的規則:

只要等于號右邊的值不是對象,則優先將其轉為對象

let {toString: s} = 123;
s === Number.proptotype.toString // true

let {toString: s} = true;
s === Boolean.prototype.toString  // true
函數參數的解構賦值
function add([x,y]){
    retrun x + y;
}

add([1,2]) // 3

函數add的參數實際上不是一個數組,而是通過解構得到的變量x和y。

函數參數的解構依舊可以使用默認值

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]

函數move的參數是一個對象,通過對這個對象進行解構,得到變量x和y的值。如果解構失敗,則返回默認值。

下面的寫法,會存在一些問題
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]

如果已經存在賦值,則會獲取獲取undefind

解構賦值的用途 變換變量的值
[x,y]=[y,x]
從函數中返回多個值
// 返回一個數組
function f(){
    return [1,2,3];
}

var [a,b,c] = f(); 

// 返回一個對象
function f1(){
    ruturn {
        foo: 1,
        bar: 2
    }
}
var {foo, bar} = f1();
函數參數的定義
function f([x,y,z]){...}
f({1,2,3})

function f([x,y,z]){...}
f({x:1,z:3,y:2})
提取JSON數據
var jsonData= {
    id: 42,
    status: "ok",
}

let {id,status: isok} = jsonData;
consoloe.log(id, isok); // 42 "OK"
函數參數的默認值
$.ajax=function (url,(
    async = true,
    beforeSend = function(){},
    cache = true,
    complete = function(){},
    crossDomain = false,
    global = true,
)){
    // TODO
}
遍歷Map解構
var map = new Map() ;

map.set("first", "hello");
map.set("sec", "world");

for(let [key, value] of map){
    // 從循環的數值中依次賦值key和value
    console.log(key + "is" + value)
    // first is hello 
    // sec is world 
}
輸入模塊的制定方法
const { SourceMapConsumer, SourceNode} = require("source-map")
圓括號的問題

變量聲明語句中,模式中不能有圓括號

var [(a)]=[1];
var [x: {c}]={};

函數參數中,模式不能帶有圓括號

function f([(z)]) = { return z; }

不能講整個模式或嵌套模式中的一層放在圓括號中

({p: a})={p: 42}
([a]) = [5]
何正確的使用圓括號

賦值語句的非模式部分可以使用圓括號

[(b)] = [3];
({p: (d)} = {})

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104567.html

相關文章

  • ES6-變量的解構(3)

    摘要:數組的解構賦值特點根據數據的下標來賦值的,有次序。模式能夠匹配起來,如長度為數值和布爾值的解構賦值解構賦值的規則是只要等號右邊的值不是對象或數組,就先將其轉為對象。布爾值解構賦值為字符串的一種。在很多獨立細小的方面,解構賦值都非常有用。 1、解構賦值簡介 官方解釋:按照一定的模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destructuring)。 舉個例子,想獲取數組中...

    Jason_Geng 評論0 收藏0
  • ES6標準入門》讀書筆記

    摘要:標準入門讀書筆記和命令新增命令,用于聲明變量,是塊級作用域。用于頭部補全,用于尾部補全。函數調用的時候會在內存形成一個調用記錄,又稱為調用幀,保存調用位置和內部變量等信息。等到執行結束再返回給,的調用幀才消失。 《ES6標準入門》讀書筆記 @(StuRep) showImg(https://segmentfault.com/img/remote/1460000006766369?w=3...

    HollisChuang 評論0 收藏0
  • 珠峰培訓ES6學習筆記1

    摘要:消除字符串頭部空格消除尾部空格從頭部補全字符串從尾部補全字符串 let和const var關鍵字定義變量的特點: 可以重復定義 不能定義常量 不支持塊級作用域 let的特點 不可以重復定義 變量不能提升,在變量定義之前,不能使用 在大括號當中定義的變量(塊級作用域中),在作用域外無法訪問 解決一些ES5當中需要閉包實現的功能,比如:每隔1秒循環輸出一個當前的值 const的特點...

    番茄西紅柿 評論0 收藏0
  • ES6基礎知識01(let,const,解構)

    摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。解構賦值允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構。對象的解構賦值對象的屬性沒有次序,變量必須與屬性同名。 ES6 新增特性整理講解 新增命令 1.let命令 ES6新增了let命令,用來聲明變量。它的用法類似于var,但是也存在新的特性。 - **let所聲明的變量,只在le...

    MSchumi 評論0 收藏0

發表評論

0條評論

Baoyuan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<