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

藏色散人
發布: 2023-01-05 16:10:48
原創
11110 人瀏覽過

不屬於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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!