首頁  >  文章  >  web前端  >  不屬於javascript的資料型別是什麼

不屬於javascript的資料型別是什麼

藏色散人
藏色散人原創
2021-04-23 10:28:2411166瀏覽

不屬於javascript的資料型別是interface,interface是js中的保留字;而javascript的資料型別有Undefined、Number、Symbol等等。

不屬於javascript的資料型別是什麼

本文操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

JavaScript的基本資料型別有:(1)Undefined、(2)Null、(3)Boolean、(4)String、(5)Number、(6)Symbol、( 7)Object。 ES6 增加了Symbol類型,以下主要是講Symbol類型的一些相關知識點。

Symbol的特性

#1、實例是唯一且無法改變的;一種唯一標識符,可用作物件的唯一屬性名,這樣其他人就不會改寫或覆寫你設定的屬性值。

1 let id = Symbol("id");

2、資料型別的特徵:唯一性,即使是用同一個變數產生的值也不相等。

1 let id1 = Symbol("id");2 let id2 = Symbol("id");3 console.log(id1 == id2);  //false

3、資料型別的特性:隱藏性,for···in,object.keys() 不能存取。

1 let id = Symbol("id");2 let obj = {3     [id] : 'symbol'          
4 }5 for ( let key in obj){6     console.log(obj[key]);  //输出为空7 }

能夠存取的方法:Object.getOwnPropertySymbols,會傳回一個數組,成員是目前物件的所有用作屬性名的Symbol 值。

1 let id = Symbol("id");2 let obj = {3   [id] : 'symbol'      
4 }5 let arr = Object.getOwnPropertySymbols(obj);6 console.log(arr)  // [Symbol(id)]7 console.log(obj[arr[0]]) // 'symbol'

4、可多次使用同一個symbol值,官方提供了全域註冊並登記的方法:Symbol.for()

let name1 = Symbol.for("name"); // 检测未创建后新建let name2 = Symbol.for("name"); // 检测已创建后返回console.log(name1 == name2); // true

透過這個方法就可以透過參數值取得到全域的symbol物件了,反之,可以透過Symbol.keyFor()#取得到參數值。

let name1 = Symbol.for("name");
let name2 = Symbol.for("name");
console.log(Symbol.keyFor("name1")); // 'name'console.log(Symbol.keyFor("name2")); // 'name'

5、instanceof 的結果為false

let s = Symbol('foo');
console.log(s instanceof Symbol); // false

#注意:在建立symbol類型資料時的參數只是作為標識使用,所以Symbol() 作為參數也是可以的。

【推薦學習:javascript進階教學#】

以上是不屬於javascript的資料型別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:javascript是h5嗎下一篇:javascript是h5嗎