ES6 新增基本数据类型Symbol】的更多相关文章

ES6 增加了一个新的基本数据类型 symbol. 不过,和其他基本数据类型相比,它有点与众不同,因为它没有字面量的表现形式,而且创建的方式也有点奇怪,只能通过调用全局函数Symbol()来完成. let firstSymbol = Symbol(); 这里注意一点,Symbol函数调用的时候,前面不要加new. 创建了一个symbol, 它有什么作用呢? 可以把它看作一个类字符串,和字符串的使用方式一致,字符串能用的地方,symbol 基本都能用,最常用的地方就是作为对象的属性名使用,因为,s…
Javascript的默认对象表示方式 {} ,即一组键值对. 但是Javascript的对象有个小问题,就是键必须是字符串.但实际上Number或者其他数据类型作为键也是非常合理的. 为了解决这个问题,最新的ES6规范引入了新的数据类型Map. 1.Map ES6新增了Map数据结构,Map对象保存键值对,任何值(原始值或对象)都可以作为一个键或一个值. Map是一组键值对,有key 也有value. 初始化Map需要一个二维数组,或者直接初始化一个空Map. Map具有以下方法: set ,…
ES5现有的数据类型.7种数据类型. 新的类型是属于Object 最普通的类型.plain object 数组array 函数function 下面这些都属于Object类型. 今天要讲的 set类型表示集合 Map就是一个映射关系 TypedArray有类型的数组. 今天讲的内容都是不常用的内容.大体了解一下就可以了.平时写代码很少用到这几种类型. 不能用new Symbol().要不会报错. 每个值都是不相等的, obj的属性名不管怎么写都是字符串.除了字符串,还可以是symbol 它是一个…
一种新的数据类型,它是对象的一种,Set,很像数组,又不是数组. Set 类型 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用. 如果里面有重复的会自动去重.set可以理解为去重之后的数组,永远不允许有重复的元素存在. 无论是原始值还是对象引用 如果有重复的字符串,也会去重. null和undefined也会…
Map类型 Map 类型 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map Map 对象保存键值对.任何值(对象或者原始值) 都可以作为一个键或一个值. 普通的对象里面用对象做a做为key值,最终会被转换成字符串. 取出对象a的值 弥补了对象只能以字符串作为key的缺点.Map可以用任何东西作为key 怎么知道一个Map里面有多少key呢? map.keys迭代和 map.va…
ES6:  ECMA 第六次改版   块级作用域:   凡是被{ }包裹住的代码都是块级作用域,除了对象       特点:会造成一个暂时性死区    新增声明变量的两种方式: let:     a. 不能重复被定义    b.没有变量声明提升    c.有块级作用域的用法,可以在块级作用域里做个保留    const:     a.定义一个常量,不允许被修改     b.没有变量声明提升     c.声明了不能不允许不赋值     d.支持块级作用域   字符串模板:    ES6之前 var…
面试中喜闻乐见的问题就是问我们的ES6新增了哪些个新特性 这篇文章一起学习一下新增的数据类型:Symbol JS的原始数据类型:6种Boolean,String,Undefined,NULL,Number,Symbol(ES6新增) 原始的数据类型种不包含object这点需要注意.Symbol是用来干什么的:用来区分我们的属性名的,用来定义对象的唯一属性名. console.log(typeof Symbol("Alice")) // 输出:symbol 我们通过Symbol函数来生成…
简介:Symbol类型是es6新增的一个数据类型,Es5的基本数据类型(undefined,null,Object,function,Number,string) Symbol值通过Symbol函数生成 Symbol类型是保证每个属性的名字都是独一无二的,对于一个对象由对个模块构成的情况非常有用     值的输出: var a=Symbol(‘foo’)=>Symbol(foo),与其他类型不能运算,可以转换成字符串   实例: var a=Symbol() var b={} var c={a:…
Symbol的含义? ES6(2015) 引入了第七种原始数据类型Symbol,Symbol英文文意思为 符号.象征.标记.记号,在 js 中更确切的翻译应该为独一无二的 Symbol的使用? Symbol 值通过Symbol函数生成,这里需要注意Symbol函数前不能使用new命令,切记,切记,切记let sym = Symbol() 1.接受一个字符串类型的参数let a = Symbol("name")a // Symbol(name)a.toString() // "…
学习了es6语法的symbol类型,整理笔记,闲时复习. Symbol 是es6新增的第七种原始数据类型(null,string,number,undefined,boolean,object),是为了在对象中对属性名滥用而导致的冲突问题. ps: 既然是数据类型,不是对象,那么就不能用new命令,因此不能添加属性 let a = Symbol('a') console.log(a) // Symbol(a) console.log(typeof a) // symbol 简单来说:一旦声明一个…
ES6之前的数组类型 在ES6之前JS只有6种数据类型,分别是:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object). ES6引入了一种新的 原始数据类型 Symbol,表示独一无二的值,至此JS有了 7 种数据类型. 随着JS的版本更新,未来可能会出现其他新的数据类型. Symbol 是什么 Symbol值通过Symbol函数生成.这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的Symbol…
概述 为了减少对象的属性名冲突,ES6引入新的原始数据类型Symbol,JS的第七种数据类型. Symbol 能够保证每个属性的名字都是独一无二,这样就能从根本上防止属性名冲突. Symbol 值能够通过Symbol函数生成,也就是说,对象的属性名现在可以有2种类型,一种就是原来的字符串,另一种就是新增的Symbol 类型. let s = Symbol() console.log(s) // Symbol() Symbol函数前不使用new命令,因为生成的Symbol是一个原始类型的值,不是对…
今天小编和大家来聊一聊es6中新增的一个原始数据类型Symbol.在es5中原始数据类型(基本数据类型)有以下六种:Undefind.Null.Bool. String.Number.Object.今天结合实例和大家一起探讨一下这个神奇的Symbol.大家也可以关注我的微信公众号,蜗牛全栈. 一.基本声明方式1.方式一 let s1 = Symbol() let s2 = Symbol() console.log(s1) // Symbol{} console.log(s2) // Symbol…
ES5中包含5种原始类型:字符串.数值.布尔值.null.undefined.ES6引入了第6种原始类型——Symbol. ES5的对象属性名都是字符串,很容易造成属性名冲突.比如,使用了一个他人提供的对象,想为这个对象添加新的方法,新方法的名字就有可能与现有方法产生冲突.如果有一种机制保证每个属性的名字都是独一无二的,这样就从根本上防止了属性名冲突.这就是ES6引入Symbol的原因. 一.创建 Symbol 值通过Symbol函数生成.这就是说,对象的属性名可以有两种类型:一种是字符串,另一…
ES6 规范之前, JavaScript 一共有六种数据类型,分别是五种基本数据类型: string . number , boolean , null , undefined ,和一种引用数据类型: object .在 ES6 中,新增了一种基本数据类型 Symbol ,用来表示独一无二的值.var s1 = Symbol();var s2 = Symbol();console.log(s1 === s2) ;注意: Symbol 函数的参数只是表示当前 Symbol 值的描述,相同参数的 S…
1.let关键字,用来代替 var的关键字,特点: 1.变量不允许被重复定义 2.不会进行变量声明提升 3.保留块级作用域中i的 2.const定义常量,特点:1.常量值不允许被改变 2.不会进行变量声明提升 3.箭头函数 与普通函数的区别:1.书写上用=>代替了function 2.普通函数的this指向window 而ES6箭头函数里面的this指向定义时的那个对象 而不是运行时的那个对象 //普通函数var test = function(x){ return x+2; } 使用箭头函数:…
连续连载了几篇<ES6对xxx的扩展>,本节咱们换换口味,介绍一种全新的数据类型:Symbol,中文意思为:标志,记号.音标:[ˈsɪmbəl]. 数据类型 在介绍Symbol之前,我们简单介绍一下JavaScript的数据类型: JavaScript有6中数据类型,分别是: String 字符串类型 Number 数字类型 Object 对象类型 Boolean 布尔值类型 Null  空值 Undefined 未定义 这6种类型写过代码的同学都不会陌生,它们都有各自的用途.而ES6给我们带…
声明命令 1. let命令 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效.下面代码在代码块之中,分别用let和var声明了两个变量.然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值.这表明,let声明的变量只在它所在的代码块有效. 1 2 3 4 5 6 {   let a = 10;   var b = 1; } console.log(b); // 1 console.log(a); /…
一.常量 不允许重复定义 const a='HELLO' const a='world'//报错Uncaught SyntaxError: Identifier 'a' has already been declared const a='HELLO' a='world'//Uncaught TypeError: Assignment to constant variable. 二 let使用 let:定义一个块级作用域的变量 需要先定义再使用:(不存在变量提升) 不能重复定义 普通变量(var…
Symbol let s1 = Symbol('foo'); let s2 = Symbol('bar'); s1 // Symbol(foo) s2 // Symbol(bar) s1.toString() // "Symbol(foo)" s2.toString() // "Symbol(bar)" ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值. // 没有参数的情况 let s1 = Symbol(); let s2 = Symbol();…
一:声明属性let const var let const 区别 1.var声明变量会发生变量提升,let.const不会发生变量提升 2.var允许重复声明变量,let不可以 3.const声明变量不可以被改变 二:字符串模板 用反引号创建字符串,其中可用${'变量'} console.log(`your name is ${name}`); 三:解构赋值对数组和对象的优化 四:箭头函数 与普通函数的区别 1.书写上用=>代替了function 2.普通函数的this指向window 而ES6…
1.let ES6中新增的用于声明变量的关键字. let 声明的变量只在所处于的块级有效. 注意:使用 let 关键字声明的变量才具有块级作用域,var 关键字是不具备这个特点的. 1. 防止循环变量变成全局变量. 2. 不存在变量提升 3. 暂时性死区 if(true){ let a=10; } console.log(a); // a is not defined //防止循环变量变成全局变量 for(var i=0;i<2;i++){ } console.log(i); // i=2(只有…
新的数据类型Symbol 1. 概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突.这就是 ES6 引入Symbol的原因. ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值.它是 JavaScript 语言的第七种数据类型. 2.简单的用法 最简单的声明 le…
ES5:对象的属性名只能是字符串,当给对象添加新属性时,很容易造成属性名冲突,从而覆盖了原有的属性. ES6:所以ES6中引入了symbol数据类型,他表示独一无二的值,避免了属性名的冲突,此时对象的属性名可由字符串类型或者symbol类型来定义. symbol是一种基本数据类型,通过Symbol()函数来返回symbol类型的值,具有唯一性. 语法:Symbol([description]) 参数:description可选,字符串类型,表示对symbol的描述,调试时更容易区分. 一.作为普…
目录 1. 变量的定义 let const 2. 模版字符串 3. 数据解构 4. 函数扩展 设置默认值 箭头函数 5. 类的定义 class 6. 对象的单体模式 "@ ES6新增了关于变量的定义,函数扩展,数据结构,类,模块等概念,本文将详细介绍常用的ES6语法. *** 1. 变量的定义 let ES6中新增了let语法,用来声明变量,用法类似var. ==let定义的变量只在当前代码块内有效.== 如下示例: <script> if (true) { var username…
以前提到 JavaScript 原始数据类型时,我们知道有Number,String,Null,Boolean,Undefined这几种.ES6 引入了新的基本数据类型Symbol和BigInt.今天我们就来了解下Symbol类型.Symbol类型是为了解决属性名冲突的问题,顺带还具备模拟私有属性的功能. 简介 创建symbol变量最简单的方法是用Symbol()函数.sysmbol变量有两点比较特别: 它可以作为对象属性名.只有字符串和 symbol 类型才能用作对象属性名. 没有两个symb…
各位,各位,终于把js完成了一个段落了,这次的章节一过我还没确定下面要学的内容可能是vue也可能是前后端交互,但无论是哪个都挺兴奋的,因为面临着终于可以做点看得过去的大点的案例项目了,先憋住激动地情绪,看看今天的一个内容,今天是es6新增的一些语法,简单也是真的简单,但是我要是没学今天这一天那看到了也是真的看不懂,就跟昨天的正则表达式一样一样的,今天的案例我都没怎么做,而且也都是一些比较简单的案例,我先把今天的一些有代表性的案例传上来吧,是一些面试题之类的,然后我就说下我今天学了些啥子语法,今天…
es5的新特性 对于数组和字符串都进行了加强 map 遍历 es6的新特性 数组的增强 find 查找findIndex 查找下标 字符的增强 includes 是否包含 (包含返回true 不包含返回false)startsWith 是否以这个字符串开头 (是返回true 不是返回false)endsWith 是否以这个字符串结尾 (是返回true 不是返回false)repeat 重复多次的去平铺对应的字符串 变量修饰符(增强) var 关键词修饰的变量是伪全局变量(进行变量提升)let 关…
JS第七种数据类型Symbol详解 点击打开视频讲解更加详细 一.什么是Symbol? Symbol是ES6中引入的一种新的基本数据类型,用于表示一个独一无二的值.它是JavaScript中的第 七种数据类型,与undefined.null.Number(数值).String(字符串).Boolean(布尔值). Object(对象)并列. Symbol特点: Symbol的值是唯一的,用来解决命名冲突问题 Symbol值不能与其他数据进行运算 Symbol定义的对象属性不能使用for...in…
在ES5及早期版本中,JS语言包含5中原始类型: 字符串型 数字型 布尔型 null undefined ES6引入了第六种原始类型: Symbol 创建Symbol let firstName = Symbol(); let person = {}; person[firstName] = "JiaJia"; console.log(person[firstName]); // "JiaJia" Symbol的辨识方法 使用 typeof 来检测辨识是否为Symb…