基本的資料型別: null undefined number boolean string symbol
引用資料型別:object
let s1 = symbol();
let s2 = symbol();
console.log(typeof s1); //
'symbol'
console.log(s1 === s2);//
false
1) symbol 函式前不能使用 new 否則會報錯,原因在於 symbol 是乙個原始型別的值,不是物件。
let s3 = new symbol();//報錯
2) symbol 函式接收乙個字串作為引數,表示對symbol的描述,主要是為了在控制台顯示,或者轉為字串的時候,比較容易區分
let s3 = symbol('miaov');
let s4 = symbol('leo');
console.log(s3, s4);//miaov leo
但是這個引數僅僅是對這個值得描述,而不代表任何意義,看下面例子
console.log(symbol('momo') === symbol('momo'));//false
symbol轉string(字串)
console.log(string(symbol('miaov'))); // symbol(miaov)
console.log(symbol('leo').tostring()); // symbol(leo)
symbol轉boolean
console.log(!!symbol()); //
true
symbol不能轉數字
console.log(number(symbol()));//報錯
symbol不能做任何運算。
console.log(symbol('momo') + 'pangzi');//報錯
console.log(symbol('momo') * 100); //報錯
方法一
let yyy = symbol('yyy');
const obj = {};
obj[yyy] = 'hello';
console.log(obj);//鍵值對
console.log(obj[yyy]);//值
方法二
let ss = symbol('ss');
const data = ;
console.log(data);//鍵值對
console.log(data[ss]);//值
下面方式取不到
const
data = ;
console.log(data);
console.log(data['symbol
()']);//undefined
不能被for…in迴圈遍歷,如下所示。
const
data = ;
for(let i in
data)
雖然不能被遍歷,但是也不是私有的屬性,可以通過object.getownpropertysymbols方法獲得乙個物件的所有的symbol屬性
const
data = ;
console.log(object.getownpropertysymbols(data)); // [symbol
()]console.log(object.getownpropertysymbols(data)[0]);//123
ES6 symbol 以及symbol的簡單應用
1.es6 引入了一種新的原始資料型別symbol,表示獨一無二的值。2.symbol 值通過symbol函式生成。3.symbol 函式可以接受乙個字串作為引數,表示對 symbol 例項的描述,主要是為了在控制台顯示,或者轉為字串時,比較容易區分。4.es2019 提供了乙個例項屬性descri...
ES6 資料型別Symbol
1 symbol 定義的屬性,一般方法獲取不到 2 let name symbol 3 let obj 4 name 123 5 name 456 6 獲取symbol元素object.getownpropertysymbols 7object.getownpropertysymbols obj 8...
ES6 Symbol基本用法詳解
大家都知道,es5的物件的屬性名都是字串,這樣就很容易造成屬性名衝突,從而替代了原有物件的方法,於是,es6就提供了symbol,表示獨一無二的值,它是一種新的原始資料型別,symbol型別。注意哦!symbol是基本資料型別,所以不能使用new命令,否則會報錯。let s1 symbol 1,2 ...