摘要:允許按照一定的模式,從數(shù)組或者對象中取值,對變量進(jìn)行賦值數(shù)組解構(gòu)的對象要具有接口也就是可以遍歷按照對應(yīng)的關(guān)系進(jìn)行取值如果解構(gòu)不成功變量的值就是如果右側(cè)的數(shù)值不是數(shù)組,就會報錯注意字符串是可以遍歷的也可以有默認(rèn)值只要被賦值的變量不是嚴(yán)格就是默
ES6允許按照一定的模式,從數(shù)組或者對象中取值,對變量進(jìn)行賦值
數(shù)組
var a = 2; var b = [1,2]; var c = "thisi"; //ES6 解構(gòu)的對象要具有Iterator接口也就是可以遍歷 var [a,b,c] = [1,2,3] //按照對應(yīng)的關(guān)系進(jìn)行取值 var [a,...b] = [1,2,3,4]; a = 1; b = [2,3,4]; //如果解構(gòu)不成功變量的值就是undefind; var [a ] = []; a = undefind; //如果右側(cè)的數(shù)值不是數(shù)組,就會報錯 var [a] = 1; //Uncaught TypeError: false is not iterable,注意字符串是可以遍歷的 =Nan; =fasle; =null; ={} ` //也可以有默認(rèn)值 var [a,b = 3] = [5];//只要被賦值的變量不是嚴(yán)格===undefined;就是默認(rèn)值,不包括 null a = 5; b = 3; //惰性求值 function fn(){return 1}; var[a =fn() ] = [2]; a //2 //變量的值可以是其他的變量,但是要已經(jīng)聲明過的 var [x = 1,y =x] = []; x//1 y//1 let [x= y,y] = [] //Uncaught ReferenceError: y is not defined
對象
//使用var const let解構(gòu)賦值,右側(cè)必須有值進(jìn)進(jìn)行初始化,如果不是解構(gòu)賦值,就正常使用 var obj = { a:1, b:3 } var a = obj.a; var b = obj.b; var {a,b} = obj; //更加的直接 a//1 b//3 var {a,b} = {a:1,b:2}; //屬性的名稱要一樣,位置可以不一樣沒有的話就undefined a//1 b//2 //也可以給已經(jīng)存在的變量賦值 var a = 1; var b = 2; var obj = { a:11, b:22 } ({a,b} = obj) //外側(cè)有小括號,ES6大括號是代碼塊,不允許出現(xiàn)在賦值的左側(cè) //也可以有默認(rèn)值,只有解構(gòu)的值===undefined的時候有效 var {a,b,c=23} = {a:2,b:2} //c =23 //不同名的屬性變量 var obj = { a : 1, b:2 }; var {a:x,b:y} = obj a//Uncaught ReferenceError: a is not defined x//1 //嵌套的對象 var obj = { a:1, b:{ x:{num:1} } } var {b:{x}} = obj; x= {num:1}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88937.html
摘要:注意變量聲明沒有指定類型。因此,程序使用類型推斷來確定變量的數(shù)據(jù)類型,第一次賦值為,設(shè)置為類型。 typescript 的基本類型1.number 數(shù)字類型 example: let val: Number = 22.string 字符串 example: let val: String = 23.Boolean 布爾類型 example: let val: Boolean = fal...
摘要:變量和常量的聲明一般的聲明,不在函數(shù)內(nèi)就是全局變量,值可以是基本和引用值,可以隨時修改和刪除語法同一個作用域的聲明,只要有同樣的聲明都會報錯,只能修改值語法,和一樣,但是不能更改值以上兩個語法都不存在變量提升的效果直接使用的話,直接引用錯誤 變量和常量的聲明 var a = 34; //一般的聲明,不在函數(shù)內(nèi)就是全局變量,值可以是基本和引用值,可以隨時修改和刪除 ...
摘要:所有代碼共享一個全局作用域,而模塊則是自動運(yùn)行在嚴(yán)格模式下的代碼,其創(chuàng)建的代碼不會添加到全局作用域中,僅存在模塊的頂級作用域中,使用的話必須導(dǎo)出部分的代碼供訪問,也可以從其他的模塊引入模塊標(biāo)識符以開始表示從根目錄開始以開始從當(dāng)前目錄以開始表 JS所有代碼共享一個全局作用域,而模塊則是自動運(yùn)行在嚴(yán)格模式下的代碼,其創(chuàng)建的代碼不會添加到全局作用域中,僅存在模塊的頂級作用域中,使用的話必須導(dǎo)...
摘要:用于將對象轉(zhuǎn)為數(shù)組可遍歷和類數(shù)組對象部署屬性的對象和擴(kuò)展運(yùn)算符的區(qū)別是任何具有屬性的都可以使用的方法是用原型該方法還有一個參數(shù)類似的新方法將字符串轉(zhuǎn)化為數(shù)組,特別是大于的單個字符,避免分割成多個用來彌補(bǔ)構(gòu)造函數(shù)的歧義三個空值只有一個參數(shù)其實(shí) 1,Array.from用于將對象轉(zhuǎn)為數(shù)組(可遍歷和類數(shù)組對象部署Iterator 屬性的對象)和擴(kuò)展運(yùn)算符的區(qū)別是任何具有Length屬性的都可...
摘要:根據(jù)百度百科的說法迭代器模式,又叫做游標(biāo)模式。給出的定義為提供一種方法訪問一個容器對象中各個元素,而又不需暴露該對象的內(nèi)部細(xì)節(jié)。從定義可見,迭代器模式是為容器而生。很明顯,對容器對象的訪問必然涉及到遍歷算法。這兩種情況好像都能夠解決問題。 Iterator根據(jù)百度百科的說法: 迭代器(Iterator)模式,又叫做游標(biāo)(Cursor)模式。GOF給出的定義為:提供一種方法訪問一個容器(...
閱讀 1124·2021-09-22 16:04
閱讀 1503·2019-08-30 15:43
閱讀 1111·2019-08-29 14:01
閱讀 3447·2019-08-26 12:19
閱讀 3363·2019-08-26 12:15
閱讀 1454·2019-08-26 12:13
閱讀 3273·2019-08-23 17:00
閱讀 1492·2019-08-23 15:38