首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏java开发的那点事

    ES6 语法详解(Symbol类型)

    : * 概念: ES6中的添加了一种原始数据类型symbol(已有的原始数据类型: String Number Boolean null undefined object) */ // 1: 调用Symbol函数得到symbol值 let symbol = Symbol() let obj = { // 2: 传参标识 let symbol2 = Symbol('one') let symbol3 = Symbol('two') console.log (symbol2) console.log(symbol3) // 可以定义常量 const PERSON_KEY = Symbol(' * 除了定义自己使用的Symbol值以外,ES6还提供了11个内置的Symbol值,指向语言内部使用的方法 * Symbol.iterator *

    36910发布于 2021-08-20
  • 来自专栏前端领域

    【JS ES6】了解Symbol类型

    声明定义Symbol的几种方式 Symbol类型具有唯一性。 let hd = Symbol(); let edu = Symbol(); console.log(hd == edu);//false symbol类型是不能附加属性的,跟对象不一样。 )) { console.log(iterator);//name } //便利Symbol类型 for (const iterator of Object.getOwnPropertySymbols (hd)) { console.log(iterator);//Symbol(这是一个Symbol类型) } //遍历对象中的所有属性 for (const iterator of Reflect.ownKeys (hd)) { console.log(iterator);//name //Symbol(这是一个Symbol类型) }

    1K10编辑于 2022-12-18
  • 来自专栏十月梦想

    ES6新增数据类型symbol

    ES6新增一种数据类型symbol,此数据类型主要防止相同的属性名多次使用被覆盖问题! 至此简单回顾一下JavaScript的7种数据类型.     1.string     2.number     3.null     4.undefined     5.object     6.boolean     7.symbol     //symbol对象永远不相等,解决属性名相同的问题 简单看一下symbol()类型防止属性名相同的例子        //声明一个cars空对象          var cars={}           //声明name是一个Symbol类型               let name=Symbol();         //给初始的symbol类型的name 的值 总结:symbol数据类型解决局部对象属性的值,用于临时且局部更改对象的属性 并不会更改对象原始属性的值!

    44920发布于 2018-08-29
  • 来自专栏itclanCoder

    理解 Es6 中的 Symbol 类型

    作者 | 随笔川迹 ID | suibichuanji ---- · 正 · 文 · 来 · 啦 · 前言 在 Es6 中引入了一个新的基础数据类型:Symbol,对于其他基本数据类型 若使用Symbol就能够保证每个属性的名字都是独一无二的,相当于生成一个唯一的标识 ID,这样就从根本上防止属性名的冲突 Symbol 类型 symbol是Es6规范引入的一项新的特性,表示独一无二的值 在 Es6 中,提供了一个Symbol.for()方法可以实现,它接受一个字符串作为参数 然后搜索有没有以该参数作为名称的Symbol值 如果有,就返回这个Symbol值,否则就新建一个以该字符串为名称的 Symbol方式定义对象的属性,在 Es6 中,提供了一个专门针对Symbol的 API 用Object.getOwnPropertySymbols()方法,可以获取指定对象的所有Symbol属性名,该方法会返回一个数组 Es6Symbol的常见使用,Symbol是一种新的基础类型,它形式字符串的数据类型,是字符串类型的一种额外拓展 常用于作为对象属性的键名,每个从Symbol()返回的symbol值都是唯一的,可保证对象的每个属性名的唯一性

    58510发布于 2020-10-28
  • 来自专栏前端儿

    ES6笔记(4)-- Symbol类型

      系列文章 -- ES6笔记系列 Symbol是什么?中文意思是标志、记号,顾名思义,它可以用了做记号。 是的,它是一种标记的方法,被ES6引入作为一种新的数据类型,表示独一无二的值。 由此,JS的数据类型多了一位成员: Number、String、Boolean、undefined、Object、Symbol 一、简单使用 1. Chrome的输出中自动对Symbol类型的数据做了标识处理,由输出知道,虽然通过Symbol生成的两个标志不相同,但两个变量混淆了分不清。 s // false Boolean(s1) // true 不过,symbol是不能转换成数值Number类型的 5. = Symbol('s3'); Symbol.keyFor(s3) // undefined 6.

    53320发布于 2018-09-03
  • 来自专栏前端到底怎么学好来

    ES6之原始数据类型Symbol

    引言--ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。 Symbol的作用是创建一个不可变且唯一的标识符,可以用作对象属性的键。它可以用来解决属性名冲突的问题,避免命名冲突。概述--symbol 是一种基本数据类型Symbol() 函数会返回 symbol 类型的值,该类型具有静态属性和静态方法。 in obj) { console.log(key); // foo,不会输出sym}6. world'.match(new MyMatcher())); // true总结--Symbol是ES6中引入的一种新的原始数据类型,用于创建唯一且不可变的标识符。

    55370编辑于 2023-11-17
  • 来自专栏柠檬先生

    es6 Symbol

    1.Symbol 值通过Symbol 函数生成,凡是属性名属于Symbol 类型,就是   独一无二的,可以保证不会与其他属性名冲突。        let s1 = Symbol('foo');     let s2 = Symbol('foo');     s1 === s2 // false 2.作为属性名的 Symbol   由于每个Symbol (a),Symbol(b)] 4.Es6 提供内置 Symbol.      Symbol.hasInstance Symbol.isConcatSpreadable Symbol.species     Symbol.match Symbol.replace Symbol..split Symbol..iterator     Symbol.toPrimitive Symbol.toStringTag

    84570发布于 2018-01-19
  • 来自专栏Golang开发

    ES6——Symbol

    ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。 这是因为生成的 Symbol 是一个原始类型的值,不是对象。也就是说,由于 Symbol 值不是对象,所以不能添加属性。基本上,它是一种类似于字符串的数据类型。 ); let s2 = Symbol('foo'); s1 === s2 // false Symbol 值不能与其他类型的值进行运算,会报错。 new 命令,因为 Symbol 是原始数据类型,不是对象。 () 返回一个已登记的 Symbol 类型值的 key ,用来检测该字符串参数作为名称的 Symbol 值是否已被登记。

    62140发布于 2019-07-18
  • 来自专栏飞鸟的专栏

    ES6 Symbol

    在ES6(ECMAScript 2015)中,引入了一种新的原始数据类型,称为SymbolSymbol表示一个独一无二的标识符,它可以用作对象属性的键。Symbol具有唯一性,不会与其他任何值相等。 通过typeof操作符可以验证symbol类型为"symbol"。Symbol的唯一性:每个通过Symbol()函数创建的Symbol都是唯一的,不会与其他任何值相等,包括其他的Symbol。 示例:// Symbol的唯一性let symbol1 = Symbol();let symbol2 = Symbol();console.log(symbol1 === symbol2); // 输出 Symbol的描述符:创建Symbol时,可以为其添加一个可选的描述符(字符串类型),用于描述该Symbol的用途或含义。 通过调用toString()方法,我们可以获取该Symbol的描述符。内置的Symbol值:ES6提供了一些内置的Symbol值,可以在特定场景中使用。

    51550编辑于 2023-05-22
  • 来自专栏Play & Scala 技术分享

    理解Scala的Symbol类型

        相信很多人和我一样,在刚接触Scala时,会觉得Symbol类型很奇怪,既然Scala中字符串都是不可变的,那么Symbol类型到底有什么作用呢?      简单来说,相比较于String类型Symbol类型有两个比较明显的特点:节省内存和快速比较。在进入正题之前,让我们先来了解一下Java中String的intern()方法。 类型的主要特点     下面接着介绍Symbol类型的两个特点。 (实际上,String.equals方法会先比较引用是否相同,但是在运行时产生的字符串对象,引用一般是不同的) 三、Symbol类型的应用     Symbol类型一般用于快速比较,例如用于Map 五、参考引用 http://docs.oracle.com/javase/6/docs/api/java/lang/String.html http://stackoverflow.com/questions

    1.7K30发布于 2018-05-17
  • 来自专栏Web Front End

    ES6Symbol

    声明方式:基本数据类型:let a = Symbol(description); Symbol()声明一个独一无二的Symbol. Symbol.for()不会每次调用就返回一个新的 Symbol 类型的值,而是会先检查给定的key是否已经存在,如果不存在才会新建一个值。 (并不关心内容,所以使用Symbol()保证独一无二代替字符串) ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值。 Symbol 值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。 凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。

    44210发布于 2021-11-15
  • 来自专栏前端小菜鸡yym

    js Symbol数据类型

    基本数据类型 string boolean number null undefined 引用数据类型 object 而 Es6又新增了一个 Symbol数据类型。当然,其实我们工作中很少使用。 初步了解 声明变量 声明一个 Symbol变量,值由函数调用产生。我们进行一下值的打印,以及类型的打印。 var s1 = Symbol() console.log(s1) console.log(typeof s1) 可以看到,值就是一个Symbol(),类型则是 symbol类型 symbol 类型的变量都不相等 上面的例子中我们并没有给方法传参数,那么我们试一下传参数。 也就是说,没有任何两个symbol类型的变量时相等的,即使传参是一样的。那么这个类型到底有什么用呢?

    2.3K20编辑于 2023-01-12
  • 来自专栏es6 随性学习

    ES6 随性学习之 新增数据类型 Symbol

    ES6新数据类型 Symbol Symbol 表示独一无二的值,常用做对象唯一的属性名(注意 S要大写) let newData = Symbol('Im a new data type') console.log(newData) // Symbol(Im a new data type) console.log(typeof(newData)) // "symbol" / () 、Symbol.keyFor()```javascript // Symbol.for() 传入一个参数 在全局搜索是否存在,不存在就新建一个Symbol(参数)并反回 let sym = Symbol('str') let sym1 = Symbol.for('str') console.log(sym1) // Symbol(str) console.log (sym1 == sym2) // true // Symbol.keyFor() 返回一个已登记的 Symbol 类型值的key 的值 并反会这个值 let sym3 = Symbol

    45662发布于 2020-10-15
  • 来自专栏coding个人笔记

    ES6symbol

    ES6引入了一种新的原始数据类型Symbol,是第七种数据类型,表示独一无二的值。 (obj) console.log(sym);//Symbol(sym) Symbol参数只表示当前值的描述,因为Symbol表示独一无二,所以所有的Symbol都不相等,不管有没有参数: var sym1 ('syml'); console.log(sym1 == sym2);//true Symbol.for()会被登记在全局环境中供搜索,不会每次调用就返回一个新的 Symbol 类型的值,而是会先检查给定的 Symbol.keyFor()返回一个已登记的 Symbol 类型值的key: var sym1 = Symbol.for("sym1"); console.log(Symbol.keyFor(sym1 最后总结一下,Symbol是新增的数据类型,表示独一无二: var sym1 = Symbol(); var sym2 = Symbol(); console.log(sym1 == sym2);//false

    43210发布于 2020-04-24
  • 来自专栏全栈修仙之路

    重温 ES6 Symbol

    Symbol 是 ES6 引入的一种新的原始数据类型,表示独一无二的值。 // TypeError 6.Symbol 工厂函数返回的 symbol,可作为对象的属性名,可以避免属性冲突,在 for...in 迭代中不可枚举 var obj = {}; obj[Symbol( article = new Article('Angular'); console.log('Angular7'.search(article)); // Found console.log('重温ES6' 方法,比如 article[Symbol.search]('Angular7') 本文简单介绍了 ES6 Symbol 的一些特性,然后介绍了 Symbol 几个应用场景,若想进一步了解 Symbol ,可以阅读一下冴羽大神写的ES6 系列之模拟实现 Symbol 类型这一篇文章。

    1.2K20发布于 2019-11-06
  • 来自专栏IMWeb前端团队

    ES6 Symbol实战

    ES6 Symbol实战 前言 我们先来看看ES6 Symbol是什么 如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。 这就是 ES6 引入Symbol的原因。 ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。 Symbol 值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。 typeof运算符的结果,表明变量s是 Symbol 数据类型,而不是字符串之类的其他类型。 注意,Symbol函数前不能使用new命令,否则会报错。 这是因为生成的 Symbol 是一个原始类型的值,不是对象。也就是说,由于 Symbol 值不是对象,所以不能添加属性。基本上,它是一种类似于字符串的数据类型

    53530发布于 2019-12-03
  • 来自专栏糊一笑

    ES6symbol

    Symbol引入 所以为了保证变量的唯一性,ES6在原本的6中基础数据类型(Undefined、Null、Boolean、String、Number、Object)下中引入了Symbol类型,它是独一无二的 SymbolSymbol值通过Symbol函数生成,由于生成的值是一个原始类型,不是对象,所以不能使用new关键字,否则会报错。Symbol值是唯一的,不会和其他属性名产生冲突。 Symbol.keyFor方法返回一个已登记的 Symbol 类型值的key。 具体其他的内置属性可以参看文档http://es6.ruanyifeng.com/#docs/symbol#内置的Symbol值; 应用场景 作为半私有属性键 即使 Symbol 不能使属性私有,它们也能用作带有私有属性的符号 假定 Symbol 的值不同,它们能为枚举类型提供最好的值。

    69840发布于 2018-05-09
  • 来自专栏从零开始学自动化测试

    JavaScript 学习-25.Symbol 类型

    前言 Symbol 是 ES6 中新添加的特性,生成一个唯一标识符,可用于属性名称、也可用于属性值。目的是消除属性名称冲突。 (Object.keys(obj)); // ['address'] Object.keys()无法获取到 symbol 类型的键, 因为Symbol 是ES6 中新添加的类型Symbol作为对象属性名时,不能使用点运算符,使用点运算符后,这个属性名就是一个普通字符串了,而不是Symbol类型。 ()等方法访问到 另一个新的 Reflect.ownKeys()方法可以返回所有类型的键名,包括常规键名和 Symbol 键名。 /zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol 2022年第 11 期《python接口web自动化+测试开发》课程,6月5号开学

    43220编辑于 2022-05-26
  • 来自专栏产品能力

    ES学习笔记-Symbol

    ES6​引入了一种新的原始数据类型Symbol​,表示​独一无二的值​。 Symbol​值通过​Symbol函数​生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的Symbol类型。 凡是属性名属于​Symbol类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。 typeof运算符的结果,表明变量s是Symbol数据类型,而不是字符串之类的其他类型。 ​Symbol​函数可以接受一个​字符串​作为​参数​,表示对​Symbol​实例的描述。 3.Symbol类型还可以用于​定义一组常量​,保证这组常量的值都是不相等的。

    38030编辑于 2022-12-01
  • 来自专栏程序技术知识

    ES6 Symbol概念与作用

    概念 Symbol是一种提供独一无二的值的数据类型。 作用 //ES5中我们可以多次声明一个值 var a = 5; var b = 5; a ===b; //true //ES6中声明的值永远都不相等,保证唯一性 let a = Symbol(); let 我们可以使用另外一种声明的办法: let a = Symbol.for('abc'); let b = Symbol.for('abc'); a===b; //true Symbol.for 不仅声明了一个独一无二的值 使用场景 let obj = { [Symbol.for('abc')]:'111', abc:'1234' } 如果不使用Symbol,那么key值就会重复,还有一种情况,就是别人继承你的对象,也会造成一些问题 因此这种情况下使用Symbol,是很完美的,也不会造成一个冲突。 如何取对象中Symbol的值 注: for..in.. 是取不到Symbol声明的值的。

    31050编辑于 2022-01-25
领券