
//ES6 引用了一种新的原始数据类型 Symbol,表示独一无二的值
//它是javascript语言第七种数据类型,是一种类似于字符串的数据类型
//Symbol特点
//1、symbol的值是唯一的,用来解决命名冲突的问题
//2、symbol值不能与其他数据进行运算
//3、symbol 定义对象属性不能对对象使用for... in循环遍历,但是可以使用
//refilct.ownKey获取对象的所有键名
//创建symbol
let s = Symbol()
console.log(s, typeof s)//数据类型为symbol
let s2 = symbol("pizza")
let s3 = symbol("pizza")
console.log(s3 === s2)//false
let s4 = symbol.for('爱你')
let s6 = symbol.for("sb")
console.log(s4 === s6)//true
//symbol 不可用来运算
let ops = s + 100//false
let ops1 = s > 100//false
let ops2 = s + s//false
//八种数据类型
// USONB you are so niubility
// u undefind
// s string
// o object
// n null number
//boolean
//Symbol的作用 就是表示独一无二的值。一定要大写Symbol
//给对象添加一个方法
// game = {
// }
// let methods = {
// up: Symbol(),
// down: Symbol()
// }
// game[methods.up] = function () {
// console.log("我面可以改变形状")
// }
// game[methods.down] = function () {
// console.log("我面快速下降")
// }
// ()
// console.log(game)
let youxi={
name:"狼人杀",
[Symbol('say')]: function () {
console.log("wo")
}
}
console.log(youxi)
//Symbol.hasInstance作用就是自己控制类型检测
//class跟构造函数一样,为了实例化对象
class person {
static [Symbol.hasInstance](param) {
console.log(param)
return false
}
}
let o = "dg";
console.log(o instanceof person)//false
//symbol.iscouncatSpreadable
//实例句
const soso=['2','4','3','1']
const soso1 = ['10', '12', '13', '11']
arr[Symbol.isConcatSpreadable]=false
console.log(soso.concat(soso))//concat(),合并数组但不合并数组的元素
//同样方法
const arr = ['1', '2']
const arr1 = ['dg1', '2', '3']
console.log([...arr, arr1])
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)