JS-Talk about Symbol

Symbol

js seventh data type: null, undefined, boolean, number, string, object, symbol

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

symbol can be used as the property name of the object

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])

if

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 is a built-in value, and Symbol is used as a property name

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

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

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

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

Guess you like

Origin blog.csdn.net/DragonOfMoon/article/details/124128759