文章說明:文章內(nèi)容為學習筆記,學徒之心择懂,僅為分享; 如若有誤忆家,請在評論區(qū)指出染突,如若您覺得文章內(nèi)容對您有一點點幫助杏头,請點贊港华、關注鱼冀、評論累铅,共享
上一篇:第一階段.模塊二:學習筆記-TypeScript基本類型
下一篇:第一階段.模塊二:學習筆記-TypeSrcipt的接口
1糕非、symbol的值是獨一無二的
2蒙具、symbol的值不可以和其他值進行運算
3、symbol的值可以轉(zhuǎn)換為字符串和布爾值
const s = Symbol() // 無參
const s1 = Symbol('ceshi') // 有參 參數(shù)只是一個標識而已
console.log(s1.toString()) // Symbol(ceshi)
console.log(Boolean(s1)) // true
console.log(!s1) // false
1朽肥、symbol可以作為對象的屬性名
const s2 = Symbol('name')
const obj = {
[s2]:'hello'
}
console.log(obj) // {Symbol(name):"hello"}
obj[s2] = 'haha' // 修改對象里面Symbol屬性名對應的值
console.log(obj) // {Symbol(name):"haha"}
1禁筏、對象里面含有symbol作為對象的屬性名,
1衡招、遍歷的時候不會找到該屬性名的方法有下面幾種
const s2 = Symbol('name')
const obj = {
[s2]:'hello',
age:18,
sex:'男'
}
(1)第一種方式:
for(let key in obj){
console.log(key)
}
// 輸入內(nèi)容:age sex
----------------------
----------------------
(2)第二種方式:
console.log(Object.keys(obj))
// 輸入內(nèi)容:['age','sex']
----------------------
----------------------
(3)第三種方式:
console.log(Object.getOwnPropertyNames(obj))
// 輸入內(nèi)容:['age','sex']
----------------------
----------------------
(4)第四種方式:
console.log(JSON.stringify(obj))
// 輸入內(nèi)容:{"age":18,"sex":"男"}
----------------------
----------------------
想獲取到對象里面含有symbol作為對象的屬性名的方式一:
console.log(Object.getOwnPropertySymbols(obj))
// 輸入內(nèi)容: [Symbol(name)]
想獲取到對象里面含有symbol作為對象的屬性名的方式二:
console.log(Reflect.ownKeys(obj))
// 輸入內(nèi)容: ["age","sex",Symbol(name)]
1篱昔、Symbol的2個靜態(tài)方法
Symbol.for()方法
Symbol.keyFor()方法
---------------------
---------------------
Symbol.for()方法: 必須有一個標識參數(shù),否則報錯
const s1 = Symbol('test')
const s2 = Symbol('test')
consolo.log(s1 === s2) // false
const s3 = Symbol.for('test')
const s4 = Symbol.for('test')
const s5 = Symbol.for('哈哈')
consolo.log(s3 === s4) // true
consolo.log(s3 === s5) // fasle
consolo.log(s4 === s5) // fasle
Symbol.for('test')方法是在全局范圍內(nèi)創(chuàng)造一個Symbol的值始腾,
第二次創(chuàng)造完成的時候州刽,會在全局范圍內(nèi)尋找之前是否創(chuàng)建過相同的值,
創(chuàng)建過就相同浪箭,否則就不同
全局范圍包括:當前的頁面穗椅、嵌套的ifram、servicework
Symbol.keyFor()方法:
是和Symbol.for()一起用的奶栖,里面的參數(shù)是Symbol.for()方法的返回值
例如:
const s6 = Symbol.for('test')
const s7 = Symbol.keyFor(s6)
console.log(s7) // test 返回的是Symbol.for()里面的標識test
1匹表、內(nèi)置的Symbol的值(不常用,了解即可)
結語:
來拉鉤教育訓練營學習已經(jīng)有三周了宣鄙,在沒有來之前袍镀,我都是回家之后打游戲(游戲名:斗戰(zhàn)神),來到這里之后才發(fā)現(xiàn)居然還有很多大佬也在學習框冀,真的很驚訝流椒,本人自身水平垃圾的一批,再不學習明也,以后可能一直就是混吃等死的狀態(tài)了
- 首先來說宣虾,拉鉤的課程很干,每個視頻很短温数,都是干貨绣硝,講師沒有一句廢話,視頻內(nèi)容覆蓋比較廣撑刺,布置的作業(yè)也比較符合實際鹉胖,導師也會及時批改,然后一周或兩周必有直播,直播都會回答學習過程中所遇到的問題和新的內(nèi)容
- 其次來說甫菠,每個班都有班級群挠铲,群里居然還有5年或6年的前端開發(fā)的大佬(⊙▽⊙); 班主任和導師也在群里寂诱,有任何問題都可以在群里@導師拂苹,班級群真的很活躍
- 最后來說一句,如果有其他人也是在打游戲混日子痰洒,不如來拉鉤教育訓練營瓢棒,嘗試著改變一下自己目前所處的環(huán)境