资讯专栏INFORMATION COLUMN

Symbol

Charlie_Jade / 2504人阅读

摘要:结果结果结果这里前面不能使用操作符。键相同的两个值并不相同脚本之家脚本之家上面两个值是不相等的。值不能够被隐式转换为字符串类型,代码实例如下脚本之家报错报错

 let a=1;
    let b=1;
    console.log(a==b);   //结果:true

    let x=Symbol("this is x");

    console.log(typeof x);   //结果:symbol
    let y=Symbol("y");
    console.log(x==y);   //结果: false
    //这里 Synbol 前面不能使用 new 操作符。

    //防止对象的属性被篡改
 let sz={name:"曹伟",age:19,[Symbol("xh")]:"007"};
        sz["name"]="caowei123";
        sz[Symbol("xh")]="009";

    console.log(sz);   //结果:Objectage: 19name: "caowei123"Symbol(xh): "007"Symbol(xh): "009"__proto__: Object
   
    console.log(sz.name);              //结果:caowei123
关于数据类型可以参阅javascript引用类型和基本类型详解一章节,
let sVal = Symbol();
console.log(typeof sVal)

上面的代码的输出值是"symbol";

使用Symbol()函数可以创建一个symbol类型值。

前面不能使用new,否则会报错;因为Symbol是一种值类型数据,这也是很好理解的.Symbol()用作Symbol值的描述,也可以理解为键(key),代码实例如下:

let s1 = Symbol("脚本之家");
let s2 = Symbol("2015");

通过键就可以比较方便的区分两个Symbol值。
键相同的两个Symbol值并不相同:

let s1 = Symbol("脚本之家");
let s2 = Symbol("脚本之家");
console.log(s1 == s2);

上面两个Symbol值是不相等的。
Symbol值不能够被隐式转换为字符串类型,代码实例如下:

let s = Symbol("脚本之家");
//报错
`antzone ${sym}`
//报错
"antzone" + sym

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83963.html

相关文章

  • ES6学习笔记之Symbol

    摘要:前端技术日新月异,不断有新技术出现,我们就需要不断地学习新知识,虽然已经提出很久了,但是最近我才有时间静下心来好好学习一下里面提出的新规则。 前端技术日新月异,不断有新技术出现,我们就需要不断地学习新知识,虽然ES6已经提出很久了,但是最近我才有时间静下心来好好学习一下里面提出的新规则。今天总结下ES6提出的这个新的原始数据类型--Symbol。 为啥需要Symbol 一个新规则的提出...

    leo108 评论0 收藏0
  • Symbol 类型

    摘要:为此,存在一个全局注册表。该调用会检查全局注册表,如果有一个描述为的,则返回该,否则将创建一个新,并通过给定的将其存储在注册表中。例如从全局注册表中读取如果该不存在,则创建它再次读取相同的注册表内的称为全局。 Symbol 类型 根据规范,对象的属性键只能是 String 类型或者 Symbol 类型。不是 Number,也不是 Boolean,只有 String 或 Symbol 这...

    NotFound 评论0 收藏0
  • 【ES6脚丫系列】Symbol

    摘要:它是语言的第七种数据类型,前六种是布尔值字符串数值对象。在中,根据属性名来进行判断。,是一个布尔值,表示该对象使用时,是否可以展开。等同于,指向该对象的默认遍历器方法,即该对象进行循环时,会调用这个方法,返回该对象的默认遍历器。 本文字数:3000+,阅读时间6分钟。 如果有理解不到位的地方,欢迎大家纠错。如果觉得还可以,希望大家可以点个赞。 谢谢大家。 目录 一、Symbol是什么...

    Flands 评论0 收藏0
  • 通俗易懂理解ES6 - ES6的变量类型及Iterator

    摘要:迭代器在原有的数据结构类型上新增了两种类型,我们在使用的时候还可以通过自由组合的形式使用这些结构类型达到自己想要的数据结构,这就需要一种统一的接口机制供我们调用处理不同的数据结构。 引言 万丈高楼平地起,欲练此功,必先打好基本功: ) 在了解 ES6 新增的变量类型前,我们必须先知道 JavaScript 在ES6之前,有如下六种基本数据类型:Null、Undefined、Number...

    Keven 评论0 收藏0
  • ES6 Symbol - 基本使用方法

    摘要:但是,前来提到的个方法都不支持属性,为了保持原有的功能,新增了一个方法来检索类型的属性接下来看一下式例以上,就是关于的基本使用方法。 ES6新增了一个基本数据类型:Symbol,至此ECMAScript的基本数据类型就有了6种:字符串,数字,布尔,null,undefined,Symbol。关于Symbol,我打算写2篇文章来提取一下比较重要的知识点,这篇是第一篇,主要讲Symbol的...

    paney129 评论0 收藏0
  • ES6 系列之模拟实现 Symbol 类型

    摘要:值可以作为标识符,用于对象的属性名,可以保证不会出现同名的属性。的结果为因为不是通过的方式实现的,所以的结果自然是。这个实现类似于函数记忆,我们建立一个对象,用来储存已经创建的值即可。方法返回一个已登记的类型值的。 前言 实际上,Symbol 的很多特性都无法模拟实现……所以先让我们回顾下有哪些特性,然后挑点能实现的……当然在看的过程中,你也可以思考这个特性是否能实现,如果可以实现,该...

    wangjuntytl 评论0 收藏0

发表评论

0条评论

Charlie_Jade

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<