JS-浅谈一下Symbol

Symbol

js第七种数据类型:null,undefined,boolean,number,string,object,symbol

const sym = Symbol('abc')//添加一个描述

symbol可以当作对象的属性名

const level = Symbol("level")
const student = {
	name :'小明',
	age:12,
	[level]:'优秀'
}
console.log(student);

for (let i in student)

console.log(i);

  

//怎么获取到level的那个值呢?

  

console.log(student[level])

如果

const level1 = Symbol("level")

const level2 = Symbol("level")

//symbol值产生是唯一的

//level1和level2 是不一样的

//所以可以进一步写

const student = {

name: '小明',

age: 12,

[Symbol("level")]: '优秀',

[Symbol("level")]: '有钱',

}

//那现在怎么获取呢

console.log(student[Object.getOwnPropertySymbols(student)[0]])

//返回的是个数组

Symbol for···of

Symbol.iterator 是一个内置的值,Symbol是做属性名的

console.log(student[Symbol.iterator])//undefined

let arr = [1, 2, 3, 4, 5]

console.log(arr[Symbol.iterator])//就有

如果对象有Symbol.iterator那这个对象就可以被for···of遍历

猜你喜欢

转载自blog.csdn.net/DragonOfMoon/article/details/124128759