摘要:原始的數(shù)據(jù)類型和一樣是第七種數(shù)據(jù)類型創(chuàng)建只能用函數(shù)來(lái)創(chuàng)建,而且不能用可以有參數(shù),用來(lái)區(qū)分每個(gè)只能顯試的轉(zhuǎn)化此處是字符串不能在轉(zhuǎn)為數(shù)字報(bào)錯(cuò)不能隱式的轉(zhuǎn)化報(bào)錯(cuò)作為對(duì)象的的屬性名稱主要用在可計(jì)算的屬性名稱,即使帶有中括號(hào)的屬性名稱一般是私有不可以
Symbol原始的數(shù)據(jù)類型和string, boolean,null,undefined,number一樣,是JS第七種數(shù)據(jù)類型
//創(chuàng)建Symbol const symbol = Symbol() //symbol只能用函數(shù)Symbol來(lái)創(chuàng)建,而且不能用new 可以有參數(shù),用來(lái)區(qū)分每個(gè)symbol; typeof symbol //"symbol"; //只能顯試的轉(zhuǎn)化 String(symbol) ==="Symbol()" //此處是字符串; Boolean(symbol) === true; // //不能在轉(zhuǎn)為數(shù)字 Number(symbol) //報(bào)錯(cuò) //不能隱式的轉(zhuǎn)化 symbol + "this is srging" //報(bào)錯(cuò)
作為對(duì)象的的屬性名稱
主要用在可計(jì)算的屬性名稱,即使帶有中括號(hào)的屬性名稱;一般是私有不可以遍歷的屬性
//對(duì)象的屬性都是字符串 var obj = { name : "obama", "current age" : 77 //不能在使用點(diǎn)號(hào)調(diào)用 [skin] : "black" //報(bào)錯(cuò)的寫(xiě)法或者用來(lái)計(jì)算的屬性名稱, }; obj.name === obj["name"] //true obj.name = "bush" //覆蓋前面的屬性‘obama" var ss = Synbol(); var newObj ={ name :"obama", [ss]:34 //如果沒(méi)有中括號(hào),此處就是一個(gè)字符串 } obj[ss] = 34 //兩種寫(xiě)法都可以,但是不能用點(diǎn)號(hào) //作為屬性,不能用for in for of 等常規(guī)的遍歷方法,遍歷到的 //只能用Object.getOwnPropertySymbols()方法返回一個(gè)數(shù)組;也可以用新的方法 Reflect.ownKeys(); let obj ={ [Symbol("test")] : "the symbol", test : "the string" }
Symbol() 和Symbol.for() 參數(shù)都是字符串,后者用來(lái)生成相同的symbol;
var s = Symbol("34"); ///每次調(diào)用都返回新的值, var ss = Symbol.for("34"); //每次調(diào)用先檢查全局是否有,沒(méi)有在返回新的值 var sss = Symbol.for("34"); s ===ss //false; ss ===sss //true; //Symbol.keyFor()//用來(lái)返回Symbol.for()的參數(shù)值,也就是已經(jīng)生成的,沒(méi)有的話就Undefined; var v = Symbol("name"); var vv = Symbol("the name"); Symbol.keyFor(vv) ->"the name"; Symbol.keyFor(v) ->undefined; //訪問(wèn)一個(gè)沒(méi)有定義的symbol會(huì)報(bào)錯(cuò)
獲取Symbol屬性的方法
const symbol = Symbol(); const obj = { [symbol]:"this is symbol", name :"obama" } Object.keys() Object.getOwnPropertyNames() //以上的方法都不能獲取私有的symbol的屬性 Object.getOwnPropertySymbols() //只有此方法可以獲取值
ES6開(kāi)放11個(gè)內(nèi)部方法的操作
1,Symbol.hasInstance 執(zhí)行instanceof 調(diào)用的方法
在CHROME中查看,函數(shù)的的繼承Function.prototype中增加的方法Symbol(Symbol.hasInstance)
function Mya(){ }; Object.defineProperty(Mya,Symbol.hasInstance,{ value :"this is test " //此處是描述屬性特性值value }) var s = new Mya(); s instanceof Mya //一般的寫(xiě)法 Mya[Symbol.hasInstance](s) //作為方法直接調(diào)用
2,Symbol.match,replace,serch,split方法
var str = "abcdefg"; var reg =/ab/g; str.match(reg); //["ab"] str.replace("cd",reg)//"ababefg" //可以使用一個(gè)對(duì)象保存這些屬性,隨后直接作為這些方法的參數(shù) const obj ={ [Symbol.search]:"return "the test"" } str.search(obj)
3,Symbol.unscopables使用和廢除的with語(yǔ)句有關(guān),作為數(shù)組對(duì)象的新方法,暫做了解
4,Symbol.toPrimative,toStringTag重新定義Object對(duì)象的基本值
var obj = { name : "obama" }; var str = "sssss"; //對(duì)于大多數(shù)對(duì)象來(lái)說(shuō),如果要執(zhí)行一些原始值操作,一般會(huì)調(diào)用valueOf()和toString();返回初始值
5,Symbol.isConcatSpreadable顧名思義concat是否可以展開(kāi)
var arr1 = [1,2,3,4]; var arr2 = ["a","b","c","d"]; arr1.concat(arr2) //返回新的數(shù)組[1, 2, 3, 4, "a", "b", "c", "d"]; arr1.concat(arr2,null,null,null) // [1, 2, 3, 4, "a", "b", "c", "d", null, null, null] //對(duì)于concat的參數(shù)如果是數(shù)組就自動(dòng)展開(kāi)作為多帶帶的存在, arr2[Symbol.isConcatSpreadable] = false; arr1.concat(arr2,null,null,null) //[1, 2, 3, 4, Array(4), null, null, null]沒(méi)有展開(kāi) //類似數(shù)組的對(duì)象1,變量是數(shù)字的屬性,不是的話,就是空的值和length的屬性(必須)作為數(shù)組元素的個(gè)數(shù)如: var obj = { a : "a", 3 : "a", //數(shù)字鍵會(huì)在數(shù)組里的位置 b : "b", 2 : "b", length :6, //影響添加數(shù)量,多余的是undefined [Symbol.isConcatSpreadable] : true } var ar = [1,"aa"]; ar.concat(obj) //[1, "aa", empty × 2, "b", "a", empty × 2] //此屬性是一個(gè)可選屬性,不在任何的對(duì)象里,
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/88847.html
摘要:之小白初入江湖超文本標(biāo)記語(yǔ)言簡(jiǎn)稱是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言。描述了一個(gè)網(wǎng)站的結(jié)構(gòu)語(yǔ)義隨著線索的呈現(xiàn),使之成為一種標(biāo)記語(yǔ)言而非編程語(yǔ)言。是塊級(jí)元素,是行內(nèi)元素。層疊樣式表簡(jiǎn)稱是一種用來(lái)為結(jié)構(gòu)化文檔如添加樣式的工具。 HTML & CSS之小白初入江湖 1. HTML 超文本標(biāo)記語(yǔ)言(HyperText Markup Language, 簡(jiǎn)稱HTML)是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言...
摘要:之小白初入江湖超文本標(biāo)記語(yǔ)言簡(jiǎn)稱是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言。描述了一個(gè)網(wǎng)站的結(jié)構(gòu)語(yǔ)義隨著線索的呈現(xiàn),使之成為一種標(biāo)記語(yǔ)言而非編程語(yǔ)言。是塊級(jí)元素,是行內(nèi)元素。層疊樣式表簡(jiǎn)稱是一種用來(lái)為結(jié)構(gòu)化文檔如添加樣式的工具。 HTML & CSS之小白初入江湖 1. HTML 超文本標(biāo)記語(yǔ)言(HyperText Markup Language, 簡(jiǎn)稱HTML)是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言...
摘要:剛開(kāi)始做項(xiàng)目,正好碰上了一個(gè)批量下載的功能就是下面圖片中的一個(gè)導(dǎo)出的功能后臺(tái)返回的數(shù)據(jù)格式是這樣的,如下做批量下載后臺(tái)需要前端給一個(gè)必需字段,在我這里也就是上代碼這樣我們的就是一個(gè)由組成的數(shù)組,搞定 剛開(kāi)始做vue項(xiàng)目,正好碰上了一個(gè)批量下載的功能 就是下面圖片中的一個(gè)導(dǎo)出的功能showImg(https://segmentfault.com/img/bVbsuIr); 后臺(tái)返回的數(shù)據(jù)...
摘要:本人前端萌新大概花了一周多一點(diǎn),完成了一個(gè)前后端分離解耦的簡(jiǎn)易個(gè)人博客項(xiàng)目。項(xiàng)目前后端分離,路由完全交給處理,后端只負(fù)責(zé)操作數(shù)據(jù)庫(kù),暴露。目前項(xiàng)目提供做學(xué)習(xí)用途,希望能給大家一些幫助,對(duì)全棧項(xiàng)目有一個(gè)初步的了解,謝謝。 本人前端萌新大概花了一周多一點(diǎn),完成了一個(gè)前后端分離解耦的簡(jiǎn)易個(gè)人博客項(xiàng)目。項(xiàng)目前后端分離,路由完全交給vue-router處理,后端只負(fù)責(zé)操作數(shù)據(jù)庫(kù),暴露api。 技...
閱讀 3477·2021-11-24 09:39
閱讀 1863·2021-11-17 09:33
閱讀 3815·2021-10-12 10:12
閱讀 5223·2021-09-22 15:51
閱讀 1166·2019-08-30 13:11
閱讀 3626·2019-08-30 10:59
閱讀 646·2019-08-30 10:48
閱讀 1375·2019-08-26 13:48