摘要:數值和布爾值的解構賦值解構賦值的規則只要等于號右邊的值不是對象,則優先將其轉為對象函數參數的解構賦值函數的參數實際上不是一個數組,而是通過解構得到的變量和。如果解構失敗,則返回默認值。
數值和布爾值的解構賦值
解構賦值的規則:
只要等于號右邊的值不是對象,則優先將其轉為對象
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
摘要:數組的解構賦值特點根據數據的下標來賦值的,有次序。模式能夠匹配起來,如長度為數值和布爾值的解構賦值解構賦值的規則是只要等號右邊的值不是對象或數組,就先將其轉為對象。布爾值解構賦值為字符串的一種。在很多獨立細小的方面,解構賦值都非常有用。 1、解構賦值簡介 官方解釋:按照一定的模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destructuring)。 舉個例子,想獲取數組中...
摘要:標準入門讀書筆記和命令新增命令,用于聲明變量,是塊級作用域。用于頭部補全,用于尾部補全。函數調用的時候會在內存形成一個調用記錄,又稱為調用幀,保存調用位置和內部變量等信息。等到執行結束再返回給,的調用幀才消失。 《ES6標準入門》讀書筆記 @(StuRep) showImg(https://segmentfault.com/img/remote/1460000006766369?w=3...
摘要:消除字符串頭部空格消除尾部空格從頭部補全字符串從尾部補全字符串 let和const var關鍵字定義變量的特點: 可以重復定義 不能定義常量 不支持塊級作用域 let的特點 不可以重復定義 變量不能提升,在變量定義之前,不能使用 在大括號當中定義的變量(塊級作用域中),在作用域外無法訪問 解決一些ES5當中需要閉包實現的功能,比如:每隔1秒循環輸出一個當前的值 const的特點...
摘要:聲明的變量不得改變值,這意味著,一旦聲明變量,就必須立即初始化,不能留到以后賦值。解構賦值允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構。對象的解構賦值對象的屬性沒有次序,變量必須與屬性同名。 ES6 新增特性整理講解 新增命令 1.let命令 ES6新增了let命令,用來聲明變量。它的用法類似于var,但是也存在新的特性。 - **let所聲明的變量,只在le...
閱讀 1815·2023-04-26 01:55
閱讀 1078·2021-09-30 09:47
閱讀 1673·2019-08-30 15:54
閱讀 740·2019-08-30 15:53
閱讀 692·2019-08-30 15:52
閱讀 1133·2019-08-30 15:44
閱讀 2409·2019-08-30 14:06
閱讀 1057·2019-08-29 16:39