ECMAScript与Javascript的关系?
- 前者是后者的规格,后者是前者的一种实现。
let和var的区别?
- 前者严格遵守块级作用域,后者则不然,容易造成变量泄露污染。
什么是顶层对象?
- 浏览器环境指定是window对象,Node指的是global对象,Web Worker指的是self
- ES2020引入globalThis,在所有环境都指向顶层对象。
变量的解构赋值
- 即快速将某个对象的属性方法赋值到变量,方便使用,如下
// 例一
const { log } = console;
log('hello') // hello
// 例子二,输入模块指定方法
import { SetData, GetMap } from "../util/commonFunction.js"
字符串拓展方法
- includes():返回布尔值,表示是否找到了参数字符串。
- startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
- replaceAll(): 替换所有匹配字符串
- trimStart()和trimEnd(): 消除头部空格和消除尾部空格
正则的拓展
- 暂略后补
数值的拓展
Number对象方法:
- isFinite 判断是否数值
- isNaN 判断是否为NaN
- parseInt 解析为整数数
- parseFloat 解析为浮点数
- isInteger 判断是否为整数
Math对象方法:
- trunc 去除一个数的小数部分,返回整数
- sign 判断数是正数、负数还是0。(+1 正数,-1 负数,0 ,NaN 其他值)
函数的拓展
- 配置默认值,例如:
function Point(x = 0, y = 0) {
return x+y;
}
- 箭头函数,例如:
var f = () => 5;
// 等同于
var f = function () { return 5 };
- 尾调用和尾递归优化,使用其可以节约内存提高资源利用率
数组的拓展
- 拓展运算符 ... :将一个数组转为用逗号分隔的参数序列;可以快速实现数组的浅拷贝
- Array.from : 转化成数组