码迷,mamicode.com
首页 > 其他好文 > 详细

h_symbol_唯一

时间:2019-11-01 16:37:07      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:很多   als   desc   esc   字符串   ===   对象   scribe   pre   

Symbol 象征; 符号;

	var kk={a:1,b:2};
	var jj={b:3,c:4};
	
	//因为 两个对象中  有属性名一样  就会被覆盖
	Object.assign(kk,jj);
	console.log(kk); //{a: 1, b: 3, c: 4}   b:2 被覆盖
	
	//Symbol 就是返回一个唯一的值   让这个值做属性名 就不会发生覆盖的情况了
	

Symbol 是一中新的数据类型,表示独一无二的值。

	//	Symbol 类型是类似字符串的一种类型 没有属性名

	let ss=Symbol();
	let ss1=Symbol();
	console.log(ss); //Symbol()    Symbol类型的就是一个Symbol()
	console.log(typeof ss); //Symbol   
	console.log(ss1); //Symbol()   ss和ss1都一样
	
	console.log(ss===ss1);  // false  但是他们不相等   比较是唯一的
	
	let sss=Symbol("aa");
	console.log(sss); //Symbol(aa)   有很多个Symbol()怎么办(就用参数 来描述这些Symbol())
	

	let name=Symbol();
	
	var kk={
		name:"ag", //这个时候的name默认是字符串  因为属性名默认就是字符串
		[name]:"ak",//使用 Symbol类型做属性名时 必须用中括号[]括起来
	}
	
	console.log(kk.name); //ag   使用点是访问不到 Symbol类型的   
	console.log(kk[name]); //ak   Symbol类型就类似一个变量 访问时需要[]
	console.log(kk["name"]); //ag  如果中括号里面是一个字符串的话  访问的也不是symbol类型的		
	

h_symbol_唯一

标签:很多   als   desc   esc   字符串   ===   对象   scribe   pre   

原文地址:https://www.cnblogs.com/myniu/p/11777249.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!