ES6新特性

面试遇到了,当时没反应过来,后来一查,哦,就这,我不是天天用吗,下面我整理分享给大家,切记牢记“有时候会用不一定能回答出来”

https://www.runoob.com/w3cnote/es6-tutorial.html

1、const 和 let

const定义变量必须赋值,且不能更改

let 代码块内有效,没有变量声明提升

暂时性死区: let或const在 {}中定义,外部有同样的名称的变量,会优先取{}内定义的,如果在定义前使用,会报错Cannot access '变量名' before initialization

2、箭头函数,便于阅读,箭头函数内部this默认指向window,实际调用了.bind(this)

3、模板字符串`${1+2+3}`  可以任意拼接字符和变量

4、默认参数,定义函数可以设置默认参数

function aa(type = 1){ ..... }

5、解构赋值,const {foo, bar} = {foo: 'aaaa', bar: 'bbbb'}

6、import 和 export

7、promise,异步解决方案,js是单线程的,.then(), .catch()方法继续执行和捕获异常中断

8、扩展符…

①能收集形参 ...args 到一个数组内,替代arguments

②解构数组

③合并并浅拷贝数组

9、解构模型

let [a, b, c] = [1, 2, 3];// a = 1// b = 2// c = 3

剩余运算符

let [a, ...b] = [1, 2, 3];//a = 1//b = [2, 3]

10、calss定义类

11、新的数据类型Symbol

每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。

12、Map 对象

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。

// 将会显示两个 log。 一个是 "0 = zero" 另一个是 "1 = one"

for (var [key, value] of myMap) {  console.log(key + " = " + value);}

// 将会显示两个 logs。 一个是 "0 = zero" 另一个是 "1 = one"

myMap.forEach(function(value, key) { console.log(key + " = " + value);}, myMap)

13、Set 对象

Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

作用:数组去重var mySet = new Set([1, 2, 3, 4, 4]);[...mySet]; // [1, 2, 3, 4]

14、Reflect 与 Proxy

15、拓展的方法子串的识别

includes():返回布尔值,判断是否找到参数字符串。

startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。

endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。

let string = "apple,banana,orange";string.includes("banana"); // truestring.startsWith("apple"); // truestring.endsWith("apple"); // falsestring.startsWith("banana",6) // true

16、字符串重复respeat

repeat():返回新的字符串,表示将字符串重复指定次数返回。

console.log("Hello,".repeat(2));  // "Hello,Hello,"

如果参数是小数,向下取整

console.log("Hello,".repeat(3.2));  // "Hello,Hello,Hello,"

如果参数是 0 至 -1 之间的小数,会进行取整运算,0 至 -1 之间的小数取整得到 -0 ,等同于 repeat 零次

console.log("Hello,".repeat(-0.5));  // ""

如果参数是 NaN,等同于 repeat 零次

console.log("Hello,".repeat(NaN));  // ""

如果参数是负数或者 Infinity ,会报错:

console.log("Hello,".repeat(-1));  // RangeError: Invalid count valueconsole.log("Hello,".repeat(Infinity));  // RangeError: Invalid count value

如果传入的参数是字符串,则会先将字符串转化为数字

console.log("Hello,".repeat("hh")); // ""console.log("Hello,".repeat("2"));  // "Hello,Hello,"

16、字符串补全

padStart:返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。

padEnd:返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。

以上两个方法接受两个参数,第一个参数是指定生成的字符串的最小长度,第二个参数是用来补全的字符串。如果没有指定第二个参数,默认用空格填充。

console.log("h".padStart(5,"o"));  // "ooooh"console.log("h".padEnd(5,"o"));    // "hoooo"console.log("h".padStart(5));      // "    h"

如果指定的长度小于或者等于原字符串的长度,则返回原字符串:

console.log("hello".padStart(5,"A"));  // "hello"

如果原字符串加上补全字符串长度大于指定长度,则截去超出位数的补全字符串:

console.log("hello".padEnd(10,",world!"));  // "hello,worl"

常用于补全位数:

console.log("123".padStart(10,"0"));  // "0000000123"

17、数值表示新方法

18、新增Math函数方法

Math.trunc 用于返回数字的整数部分

Math.hypot 用于计算所有参数的平方和的平方根

Math.cbrt 用于计算一个数的立方根。

双曲函数方法

Math.sinh(x): 用于计算双曲正弦。

Math.cosh(x): 用于计算双曲余弦。

Math.tanh(x): 用于计算双曲正切。

Math.asinh(x): 用于计算反双曲正弦。

Math.acosh(x): 用于计算反双曲余弦。

Math.atanh(x): 用于计算反双曲正切。

19、对象字面量

  属性的简洁表示法

20、对象的新方法

Object.assign(target, source_1, ···)

数组的处理

Object.assign([2,3], [5]);  // [5,3]

同名属性替换

targetObj = { a: { b: 1, c:2}};sourceObj = { a: { b: "hh"}};Object.assign(targetObj, sourceObj);targetObj;  // {a: {b: "hh"}}

21、数组创建

Array.of()

将参数中所有值作为元素形成数组。

22、keys() 遍历键名

23、函数参数扩展

24、as 的用法  不同模块导出接口名称命名重复, 使用 as 重新定义变量名。

25、export default 命令

在一个文件或模块中,export、import 可以有多个,export default 仅有一个。

export default 中的 default 是对应的导出接口变量。

通过 export 方式导出,在导入时要加{ },export default 则不需要。

export default 向外暴露的成员,可以使用任意变量来接收。

具体的可以参考ES6新特性表单仔细阅读

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容

  • ES6 新特性 ES6 新特性 一ES6简介 二块级作用域绑定1 let声明2 const声明Constant D...
    _无为_阅读 842评论 0 3
  • ES6、ES7、ES8特性一锅炖(ES6、ES7、ES8学习指南) 概述 ES全称ECMAScript,ECMAS...
    李振亚_cb74阅读 309评论 0 0
  • - ECMAScript 与 Javascript - ECMAScript的发展过程 - ECMAScript2...
    爵迹01阅读 223评论 0 1
  • 2015-02-04 JavaScript 一、作用域 块级作用域 块级变量let 块级常量const 二、箭头函...
    李二丶阅读 307评论 0 0
  • ES6 核心特性 [图片上传失败...(image-b01919-1545900229494)] 一、开发环境配置...
    圆滚滚1991阅读 535评论 0 0