ES6參考---Symbol屬性


ES6參考---Symbol屬性

一、總結

一句話總結:

Symbol是ES6中的添加了一種原始數據類型symbol(已有的原始數據類型:String, Number, boolean, null, undefined, 對象),Symbol是唯一的,解決命名沖突問題
    window.onload = function () {
      let symbol = Symbol();
      console.log(typeof symbol);
      console.log(symbol);
      
      // 用作對象的屬性(唯一)
      let obj = {username: 'kobe', age: 39};
      obj[symbol] = 'hello';
      obj[symbol] = 'symbol';
      console.log(obj);
      for(let i in obj){
        console.log(i);
      }
    }

 

 

1、為什么會有Symbol?

ES5中對象的屬性名都是字符串,容易造成重名,污染環境

 

2、Symbol的特點?

1、Symbol屬性對應的值是唯一的,解決命名沖突問題
2、Symbol值不能與其他數據進行計算,包括同字符串拼串
3、for in, for of遍歷時不會遍歷symbol屬性。

 

3、Symbol使用?

調用Symbol函數得到symbol值:let symbol = Symbol();obj[symbol] = 'hello';
let symbol = Symbol();
let obj = {};
obj[symbol] = 'hello';

 

 

 

二、Symbol屬性

博客對應課程的視頻位置:

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>Symbol</title>
 6 </head>
 7 <body>
 8   <!--
 9     前言:ES5中對象的屬性名都是字符串,容易造成重名,污染環境
10     Symbol:
11       概念:ES6中的添加了一種原始數據類型symbol(已有的原始數據類型:String, Number, boolean, null, undefined, 對象)
12       特點:
13         1、Symbol屬性對應的值是唯一的,解決命名沖突問題
14         2、Symbol值不能與其他數據進行計算,包括同字符串拼串
15         3、for in, for of遍歷時不會遍歷symbol屬性。
16       使用:
17         1、調用Symbol函數得到symbol值
18           let symbol = Symbol();
19           let obj = {};
20           obj[symbol] = 'hello';
21         2、傳參標識
22           let symbol = Symbol('one');
23           let symbol2 = Symbol('two');
24           console.log(symbol);// Symbol('one')
25           console.log(symbol2);// Symbol('two')
26         3、內置Symbol值
27           * 除了定義自己使用的Symbol值以外,ES6還提供了11個內置的Symbol值,指向語言內部使用的方法。
28           - Symbol.iterator
29            * 對象的Symbol.iterator屬性,指向該對象的默認遍歷器方法(后邊講)
30 
31   -->
32 
33 
34 <script type="text/javascript">
35     window.onload = function () {
36       let symbol = Symbol();
37       console.log(typeof symbol);
38       console.log(symbol);
39       
40       // 用作對象的屬性(唯一)
41       let obj = {username: 'kobe', age: 39};
42       obj[symbol] = 'hello';
43       obj[symbol] = 'symbol';
44       console.log(obj);
45       for(let i in obj){
46         console.log(i);
47       }
48     }
49 </script>
50 
51 </body>
52 </html>

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM