日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

es6 Symbol iterator接口

發布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 es6 Symbol iterator接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Symbol定義:一種新的原始數據類型,表示獨一無二的值,是一種類似字符串的數據類型

特點:

值是唯一的,用來解決命名沖突的問題

值不能與其他數據進行運算

注意點

Symbol 值作為屬性名時,該屬性是公有屬性不是私有屬性,可以在類的外部訪問。但是不會出現在 for...in 、 for...of 的循環中,也不會被 Object.keys() 、 Object.getOwnPropertyNames() 返回。如果要讀取到一個對象的 Symbol 屬性,可以通過 Object.getOwnPropertySymbols() 和 Reflect.ownKeys() 取到

// 創建Symbol() let s = Symbol();let s2= Symbol('小紅') let s3= Symbol('小紅') consle.log(s2===s3) //false//Symbol.for創建 let s4 =Symbol.for('小明'); let s5 =Symbol.for('小明'); console.log(s4===s4) //true//不能與其他數據進行運算 let result= s+100 // 報錯// 使用場景let up = Symbol('say');let game = {up: '1111',[up]: function () {console.log('我可以發言')},[Symbol('down')]: function () {console.log('我可以下降')}}console.log(game)

?

symbol.for()

Symbol.for() 類似單例模式,首先會在全局搜索被登記的 Symbol 中是否有該字符串參數作為名稱的 Symbol 值,如果有即返回該 Symbol 值,若沒有則新建并返回一個以該字符串參數為名稱的 Symbol 值,并登記在全局環境中供搜索。

let yellow = Symbol("Yellow"); let yellow1 = Symbol.for("Yellow"); yellow === yellow1; // falselet yellow2 = Symbol.for("Yellow"); yellow1 === yellow2; // true

?

Symbol.keyFor()

Symbol.keyFor() 返回一個已登記的 Symbol 類型值的 key ,用來檢測該字符串參數作為名稱的 Symbol 值是否已被登記。

let yellow1 = Symbol.for("Yellow"); Symbol.keyFor(yellow1); // "Yellow"

?

?

?

Symbol 內置值(擴展對象功能的)

?

迭代器(Iterator)

就是對象里的屬性?

主要供for...of 遍歷 鍵值

let xiyou=['唐僧','孫悟空','豬八戒','沙僧'] 遍歷數據工作原理 // 創建指針獨享,指向當前數據 結構的起始位置 let iterator = xiyou[Symbol.iterator](); // 調用對象的next方法第一次調用next方法,指針自動指向數據結構的第一個成員接下來不斷調用next方法,指針一直往后移動,直到指向最后一個成員每調用next方法返回一個包含value和dine屬性的對象 console.log(iterator.next()) //{value:'唐僧',done:false} console.log(iterator.next()) //{value:'孫悟空',done:false} console.log(iterator.next()) //{value:'豬八戒',done:false} console.log(iterator.next()) //{value:'沙僧',done:false} console.log(iterator.next()) //undefined{value:undefined,done:false}

?

總結

以上是生活随笔為你收集整理的es6 Symbol iterator接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。