精华内容
下载资源
问答
  • ES6 新增特性有那些?

    2021-06-03 00:28:31
    ES6新增了许多新特性,不是因为面试经常会问才需要会它,个人认为里面的许多方法特别简单 下面是我整理的一些比较常用的新增特性 一、新增数据类型 Symbol 猿话:Symbol-ES6神奇的数据类型​zhuanlan.zhihu....

    ES6新增了许多新特性,不是因为面试经常会问才需要会它,个人认为里面的许多方法特别简单

    下面是我整理的一些比较常用的新增特性

    一、新增数据类型

    Symbol

    1.特性

    • Symbol()函数,返回一个symbol类型的值,该类型具有静态属性和静态方法。
    • 每个Symbol()返回的symbol值都是唯一的,这是该数据类型仅有的目的,可以作为对象属性的标识符使用
    • Symbol()存在原型链Symbol.prototype
    • 不支持语法:"new Symbol()"创建对象
    • 不支持将一个 symbol 值转换为一个 number。
    • 不支持将一个字符隐式创建,例如: symbol('a') + '1231'

    2.总结

    • Symbol用法很强大普遍,es5私有api中已经有很多的使用,例如:常用的String.prototype.split()
    • Symbol创建的值唯一。
    • 替代传统的常量定义保证唯一并且不被串改将是非常友好的。
    • 定义私有属性将会非常方便。

    Set

    Set是类似于数组,但成员的值都是唯一的数据结构。//Set(3) {"一月", "二月", "三月"}

    基本使用

    //添加数据
    monthSets.add("一月");
    monthSets.add("二月").add("三月");
    
    console.log(monthSets); //Set(3) {"一月", "二月", "三月"}
    
    //遍历集合Set
    //forEach():使用回调函数遍历每个成员
    monthSets.forEach((item) => console.log(item)); //一月 二月  三月
    
    //for...of:直接遍历每个成员
    for (const item of monthSets) {
      console.log(item); //一月 二月  三月
    }
    
    //删除数据
    monthSets.delete("二月");
    console.log(monthSets); // Set(2) {"一月", "三月"}
    monthSets.clear(); //
    console.log(monthSets); // Set(0) {}

    常见应用

    let monthSets = new Set(["一月", "二月", "三月"]);
    
    //一、快速判断数据元素是否存在
    monthSets.has("一月"); //true
    
    //二、统计数据元素个数
    monthSets.size; //3
    console.log(monthSets.size); //3
    
    //三、数组去重
    let arr = [1, 2, 3, 2, 3, 4, 5];
    let set = new Set(arr);
    console.log(set); // {1, 2, 3, 4, 5}
    
    //四、合并去重
    let arr = [1, 2, 3];
    let arr2 = [2, 3, 4];
    let set = new Set([...arr, ...arr2]);
    console.log(set); // {1, 2, 3, 4}

    WeakSet

    WeakSet与Set类似,也是不重复的值的集合,但WeakSet的成员只能是对象。WeakSet引用的对象都是弱引用,如果其他对象不再引用该对象,那么垃圾回收机制就会自动回收这些对象所占用的内存,不考虑该对象还存在于WeakSet之中。

    Map

    Map是一种键值对集合,与对象类似,但Object只支持“字符串:值”,而Map支持“各种类型的值:值”,map给我们提供了更合适的“键值对”数据结构。

    基本使用

    //定义
    let map = new Map();
    
    //添加数据
    let address = { address: "江苏" };
    map.set("name", "ES6");
    map.set(27, "年龄信息");
    map.set(address, "地址信息");
    
    console.log(map); //{"name" => "ES6", 27 => "年龄信息", {…} => "地址信息"}
    
    //获取数据
    let name = map.get("name");
    let age = map.get(27);
    let addressObj = map.get(address);
    
    console.log(name, age, addressObj);
    
    //获取成员数量
    console.log(map.size);  //3
    
    //判断是否指定key成员
    console.log(map.has("name")); //true

     

     

    Map的遍历

    map通常可以用forEach和for...of的方式进行遍历。

    WeakMap

    WeakMap与Map类似,也是用来生成键值对的集合。但WeakMap只接受对象作为键名,并且键名所指向的对象,属于弱引用对象。

    二、const、let声明变量方式

    • 有块级作用域
    • 不会声明提升

    三、模板字符串

    四、对象解构赋值

    五、延展运算符(...)

    六、对象字面量增强

    七、Class类的支持

    八、Promise异步对象

    九、模块import、export

    十、数组、对象新增方法

    Array

    • filter
    array.filter(item => {  return '条件'})  // 返回过滤后的数组
    • some
    array.some(item => {  return '条件'})  // 如果数组中一旦有满足条件的成员,返回true,否则返回false。
    • every
    array.every(item => {  return '条件'})  // 如果数组中所有成员满足条件,返回true,否则返回false。
    • map
    array.map(item => {  return '包装后的新成员'})  // 返回新包装的成员组成的新数组。
    • from
    Array.from('类数组')  // 会将一个类数组结构数据转换成数组。比如数组去重 Array.from(new Set(array))
    • flat
    flat用于将嵌套的数组“拉平”。该方法返回一个新数组,对原数据没有影响。
    [1, 2, [3, 4]].flat()  // [1, 2, 3, 4]
    • of
    Array(3) // [,,]
    
    Array.of(3) // [3]
    • find、findIndex、includes...

    object

    • Object.assign
    Object.assign(target,obj1,obj2,...)  
    // 可以用来合并对象,将第二个参数obj1以及后边的对象都合并在target中。
       属性名相同,后边的会覆盖前边的,target中没有的属性,则会新增。
       最后返回合并后的对象。
    // assign方法只是浅拷贝。

     

    如果想知道更多直接去ES6官网查看就行了

    展开全文
  • es6新增特性有哪些? 去掉function,没有参数或者多个参数时需要加括号(),多个参数时使用逗号分隔,一个参数时括号可以省略。 隐士返回,如 下面的代码可以去掉return,代码移到一行,减少代码量。 解决了this的...

    es6的新增特性有哪些?

    1. 去掉function,没有参数或者多个参数时需要加括号(),多个参数时使用逗号分隔,一个参数时括号可以省略。
    2. 隐士返回,如 下面的代码可以去掉return,代码移到一行,减少代码量。
    3. 解决了this的指向问题,原生的写法this指向的是调用者,箭头函数this绑定的是定义时的那个对象。
    4. .symbol
    5. ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值
    6. 使用Set实现数组去重
    7. Map
    8. 数组的复制 比如说 arr2=Array.from(arr1)
    9. 新增加的函数:find findIndex Array.from includes
    展开全文
  • 谈谈ES6新增哪些特性

    千次阅读 2020-11-10 16:46:32
    一、什么是ES6? ES全称为ECMAScript,它是由国际标准化组织ECMA(全称:European Computer Manufacturers Association)欧洲计算机制造商协会制定...二、 ES6的新特性有哪些? 1.新增了块级作用域(let,const) 2.提

    一、什么是ES6?

    ES全称为ECMAScript,它是由国际标准化组织ECMA(全称:European Computer Manufacturers Association)欧洲计算机制造商协会制定的一项脚本语言的标准化规范。JavaScript就实现了这套标准。ES6中的6代表的是版本,从2015年6月份发布的版本及其后续版本统称为ES6,从2015年开始,每年的6月份都会发布新版本。目前各大浏览器产商也都已经支持ES6。

    二、 ES6的新特性有哪些?

    1.新增了块级作用域(let,const)

    2.提供了定义类的语法糖(class)

    3.新增了一种基本数据类型(Symbol)

    4.新增了变量的解构赋值

    5.函数参数允许设置默认值,引入了rest参数,新增了箭头函数。

    6.数组新增了一些API,如isArray / from / of 方法;数组实例新增了 entries(),keys() 和 values() 等方法。

    7.对象和数组新增了扩展运算符

    8.ES6新增了模块化(import / export)

    9.ES6新增了Set和Map数据结构。

    10.ES6原生提供Proxy构造函数,用来生成Proxy实例

    11.ES6新增了生成器(Generator)和遍历器(Iterator)

    说说解构赋值

    解构:分解数据结构。
    赋值:为变量赋值。
    解构赋值:从数组或者对象中提取值,按照对应的位置,对变量赋值(在数组解构中,只 要解构的目标可以遍历,就可以实现解构赋值)。
    1:数组解构赋值的特点:
    在数组解构中,左边用中括号包裹任意个变量,右边则是一个真实的数组,按照 一 一 对应的关系进行赋值,在赋值过程中有以下几种情况:
    1.1:声明的变量数量与数组的元素数量一致:
    1.2:声明的变量的数量大于数组的元素的数量:

    1.3:声明的变量的数量小于数组的元素的数量:

    1.4:使用剩余运算符进行解构赋值:

    1.5:可遍历对象 例如:字符串:

    var、let、const各自的特点及其区别

    在ES6之前只有全局作用域和局部作用域,ES6新增了块级作用域let和const,下面将简单介绍var、let和const的特点以及区别。

    块级作用域:只能在声明的区域(代码块)中使用,不能在声明的区域的外部使用,否则报(xxx is not defined)。

    var:使用var声明的变量,其作用域为该变量所在的函数内,且存在变量提升现象(变量提升:可以先使用再声明),不会受到块级作用域的影响

    let:ES6新增的块级作用域
    1:使用let声明的变量具有块级作用域:,只能在当前声明的代码块中使用,必须要先声明再使用
    2:具有暂时性死区特性。

    1. const:ES6中新增的常量(常量:值(内存地址)不可更改的量)。特点如下:
      3.1:具有块级作用域的特点,只能在当前声明的代码块中使用,必须要先声明再使用。
      3.2:声明常量时必须赋值,如果不赋值报错:Missing initializer in const declaration(在const声明中未初始化)。
        3.3:const声明的常量不可更改。
        3.4:使用const声明的常量如果是基本数据类型(比如:数字、字符串),一旦赋值,值不可以更改;如果是引用数据类型(数组,对象),不能重新赋值,但是可以更改数据结构内部的值(比如修改对象中的属性)。

    谈谈我对箭头函数的理解

    1:箭头函数:ES6新增的定义函数的方式。
    2:作用:用来简化函数定义的语法。
    3:箭头函数的特点:
    3.1:可以将箭头函数赋值给一个变量,变量名字就是函数的名字,通过变量名字调用函数。

    3.2:如果函数体中只有一行代码,且代码的执行结果就是返回值,可以省略大括号。

    3.3:如果形参只有一个,可以省略小括号(如果没有形参,小括号不能省略)。

    Map数据结构

    1:Map:类似于对象,是一个存储键值对的集合,但是‘键’’的范围不仅仅是字符串,所有类型的值包括对象都可以当做键。
    2:创建Map集合:
     2.1:创建Map集合有两种:1.直接new Map()创建实例对象;2.接收一个数组作为参数来创建实例对象(该数组的成员必须是一个个表示键值对的数组)。
     
    3:Map集合常用属性和方法:
    3.1:.has(key);查找key,返回布尔值。
    3.2:.get(key) 根据key查找value。
    3.3:.set(key,value) 添加键值对。
    3.4:.size获取存储的数量。

    总结

    1:var声明的变量是函数变量(全局变量和局部变量),会有变量提升的风险,可以先使用再声明,尽量少用。

    2:let声明的变量具有块级作用域的特性,即只能在声明的代码块中使用,只能先声明之后才能使用。

    3:const声明的变量是常量,常量的值不允许更改,如果常量是引用类型(对象或者数组),那么可以更改常量内部属性的值。

    4:解构就是分解数据结构,赋值就是为变量赋值;在ES6中允许从对象和数组以及任何可以遍历的数据类型进行解构赋值。

    5:箭头函数是将函数简化定义的一种方式,将箭头函数赋值给一个变量,变量名就是函数名称,通过调用变量名来调用函数。

    6:Set数据结构的声明方式分为两种:1、直接实例化一个空的Set()构造函数;2、在Set构造函数中传入一个数组。Set构造函数可以用来做数组去重等操作。

    7:Map数据结构的声明方式分为两种:1、直接实例化一个空的Map()构造函数;2、在Map构造函数中传入一个带有键值对的数组。

    展开全文
  • 比较常用的 变量定义:let Const 解构赋值 扩展运算符 Symbol 数据类型 Set 和 Map 数据结构 Promise Class 箭头函数 Proxy 拦截 imoprt 模块导入 新增了一些数组的方法 新增了一些对象的方法 # 文章的内容/灵感...

    比较常用的有

    • 变量定义:let Const
    • 解构赋值
    • 扩展运算符
    • Symbol 数据类型
    • Set 和 Map 数据结构
    • Promise
    • Class
    • 箭头函数
    • Proxy 拦截
    • imoprt 模块导入
    • 新增了一些数组的方法
    • 新增了一些对象的方法

    #

    文章的内容/灵感都从下方内容中借鉴

    展开全文
  • ES6新增特性–箭头函数 ES6中新增了创建函数的方式:“箭头函数”。真实项目中是箭头函数和function这种普通函数混合使用。 文章目录ES6新增特性--箭头函数箭头函数一、优点二、语法1.如果形参只有一个,小括号可以...
  • ES6新增特性

    2021-04-11 16:31:36
    1)let声明变量和const声明常量,两个都块级作用域  ES5中是没有块级作用域的,并且var变量提升,在let中,使用的变量一定要进行声明   2)箭头函数  ES6中的函数定义不再使用关键字function(),而是利用了()...
  • ES6新增特性

    千次阅读 2019-08-02 19:38:46
    ES6新增特性常用的主要:let/const,箭头函数,模板字符串,解构赋值,模块的导入(import)和导出(export default/export),Promise,还有一些数组字符串的新方法,其实很多,我平时常用的就这些。 ...
  • ES6新增方法 1、新增声明命令 let 和 const 1.1)特点 2、模板字符串(Template String) 3、函数的扩展 3.1)函数的默认参数 3.2)箭头函数 4、对象的扩展 4.1)属性的简写 4.2)Object.keys()方法 ...
  • ES6有哪些特性

    千次阅读 2018-06-17 20:36:18
    今天给大家分享一下,修真院官网JS-8任务中可能会使用到的知识点:HTTP状态码有哪些?分别代表是什么意思?1.背景介绍ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了...
  • es6新增特性总结

    2021-03-24 23:43:37
    es6新增特性1.let和const关键字2.解构赋值3.箭头函数4.模板字符串:使用反引号``代替双引号创建字符串5.标签模板6.扩展运算符7.新增了一些字符串和数组方法8.Symbol9.迭代器(Iterator)10.生成器11.Promise承诺 1.let...
  • 1、let关键字,用来代替 var的关键字 ...普通函数的this指向window 而ES6箭头函数里面的this指向定义时的那个对象 而不是运行时的那个对象 //普通函数 var test = function(x){ return x+2; } 使用箭头函数: var .
  • ES6中Promise的用法?

    2021-03-10 11:40:34
    Promise是ES6新增的一种异步编程的方式,用于解决回调的方式的各种问题,提供了更多的可能性。其实早在ES6之前,社区就已经多种Promise的实现方式了: Q bludbird RSVP 以上几种Promise库都遵循Promise/A+...
  • HTML5新增特性 CSS3新增特性 es6新增特性
  • 二.ES6新增的方法: 1.新增声明命令 :let 和 const 在 ES6 中通常用 let 和 const 来声明,let 表示变量、const 表示常量. 特点:let 和 const 都是块级作用域。以{}代码块作为作用域范围 只能在代码块里面使用 不...
  • 可以利用内部元素永远不会重复这一特性,使用数组去重 var set = new Set([1,2,3,4,3,2,1]); // [1,2,3,4] set遍历可以这么遍历 for(let key of set.keys()) { console.log(key); } // "aa" // "bb" // "cc" ...
  • ES6新增&&ES5严格模式

    2021-05-09 18:00:22
    箭头函数是es6新增特性,是匿名函数的另一种写法,简化了函数定义 ()=>{} 声明一个匿名函数,在参数只有一个的情况下,可以省略(),在函数体只有一句代码的时候,并需要return出来可以省略{}和return; 箭头函数...
  • [每日一题]面试官问:谈谈你对ES6的proxy的理解? 关注「松宝写代码」,精选好文,每日一题 作者:saucxs | songEagle 一、前言 2020.12.23 日刚立的 flag,每日一题,题目类型不限制,可以是:算法题,面试题,...
  • javaScript,ES6新增特性

    2021-04-04 14:28:56
    数组和字符串新增的api方法: 字符串: str.includes(‘’) 检测字符是否某个字符串,如果返回true,否则false str.startsWith(‘’) 检测字符是否在字符串开始,如果是返回true,否则false str.endsWith(‘’)检测...
  • JavaScript之ES6新增

    2021-03-11 15:16:37
    ES6引入的class关键字具有正式定义类的能力。类class是ES中新的基础语法糖结构。 虽然ES6类表面上看起来可以支持正式的面向对象编程,但实际上它背后使用的仍然是原型和构造函数的概念。 引入class关键字为了解决...
  • ES6特性 总结

    万次阅读 多人点赞 2018-05-24 14:03:52
    ES6的新特性的学习笔记整理
  • ES6特性汇总

    2021-06-02 09:21:20
    1. let 和 const let 声明的变量,作用范围是let声明变量所在的代码块 const 声明的变量,是常量,值不能修改否则报错 2. 字符串扩展方法 str01.inclueds(str02) 字符串str01中是否包含字符串...es6支持多行字符串 使用的
  • JavaScript ES6新增功能

    2021-04-22 14:12:22
    一、JavaScript ES6新增功能 1. ES6 简介 1.1什么是 ES6 ? ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范 ES6 实际上是一个泛指,泛指 ES2015 及后续的版本 1.2 为...
  • 前言 在JavaScript中,几乎每一个值都是某种特定的类型的...那么看看Es6为对象做了那些特性吧。 属性初始值的简写 在Es5中,对象字面量只是简单的键值和集合,这意味着初始化属性一些重复。 function person(name) {
  • ES6新增特性 1.let关键字 (1)基本用法:let关键字用来声明变量,它的用法类似于var,都是用来声明变量。 (2)块级作用域:let声明的变量,只在let关键字所在的代码块内有效。 (3)不存在变量提升:let声明的变量...
  • Symbol是ES6新增的数据类型,通常叫 符号 创建: Symbol(符号名) 设计初衷: 为对象设置私有属性(只能在对象内部使用,外边无法使用) 特点: 1、没有字面量: 别的数据类型,比如数组字面量 : [ ]、对象...
  • ES6新增基本数据类型——symbol 基本数据类型除了 number 、 string 、 boolean 、 object、 null 和 undefined ,还有ES6新增的symbol。 symbol的定义:表示独一无二的值,最大的用法是用来定义对象的唯一属性名。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,340
精华内容 6,936
关键字:

es6新增特性有哪些?