3--面试总结-es6
Posted janice-jia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3--面试总结-es6相关的知识,希望对你有一定的参考价值。
es6文档:http://es6.ruanyifeng.com/
1、es6新特性
1、es6新特性
- let/const
- 变量的解构赋值(数组的解构赋值,对象的解构赋值,字符串的解构赋值,数值和布尔值的解构赋值,函数参数的解构赋值)
- 注:圆括号问题
解构赋值虽然很方便,但是解析起来并不容易。对于编译器来说,一个式子到底是模式,还是表达式,没有办法从一开始就知道,必须解析到(或解析不到)等号才能知道
不能使用圆括号的情况:
- 变量声明语句
eg: let [(a)] = [1]; //报错
- 函数参数
eg: function f([(z)]) { return z; } // 报错
- 赋值语句的模式
eg: ({ p: a }) = { p: 42 };
- 变量声明语句
- 注:圆括号问题
- 模板字符串
- 数组相关
- map
- set()它类似于数组,但是成员的值都是唯一的,没有重复的值。
- 字符串相关
str表示查找的字符串,,index表示开始搜索的位置
- startWith(str, index) 返回布尔值,表示参数字符串是否在原字符串的头部 eg: let s="Hello word!" s.startWith(‘Hello‘) // true
- endsWith(str, index) 返回布尔值,表示参数字符串是否在原字符串的尾部 eg: let s="Hello word!" s.startWith(‘!‘) // true
- includes(str, index) 返回布尔值,表示是否找到参数字符串 eg: let s="Hello word!" s.includes(‘o‘) //true
- repeat(N) 表示将原字符串重复N次(如果传参是小数则会被取整,如果传参是负数或Infiniti会报错)
- padSrart(length, str) 如果某个字符串不够指定长度,会在头部补全。
- padEnd(length, str) 尾部补全
- trimStart()
- trimEnd()
- matchAll() 反法返回一个正则表达式在当前字符串的所有匹配
- 新增数据类型symbal表示独一无二的值。它是 javascript 语言的第七种数据类型,前六种是:
undefined
、null
、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
- ... 展开操作符/剩余操作
- 函数相关
- 箭头函数
- 函数参数默认值
- name属性
- 类/继承
- proxy
- promise
- async
上面代码中,<script src="path/to/myModule.js" defer></script> <script src="path/to/myModule.js" async></script>
<script>
标签打开defer
或async
属性,脚本就会异步加载。渲染引擎遇到这一行命令,就会开始下载外部脚本,但不会等它下载和执行,而是直接执行后面的命令。defer
与async
的区别是:defer
要等到整个页面在内存中正常渲染结束(DOM 结构完全生成,以及其他脚本执行完成),才会执行;async
一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。
一句话,defer
是“渲染完再执行”,async
是“下载完就执行”。
另外,如果有多个defer
脚本,会按照它们在页面出现的顺序加载,而多个async
脚本是不能保证加载顺序的。 - module的语法
- export
- import
以上是关于3--面试总结-es6的主要内容,如果未能解决你的问题,请参考以下文章