# ECMAScript高程
# async、defer
async:立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。谁先下载完谁就先执行
defer:脚本延迟到文档完全被解析和显示之后再执行。立即下载,延迟执行。
只要不存在
defer和async属性,浏览器都会按照script元素在页面中出现的先后顺序对它们依次进行解析。换句话说,在第一个script元素包含的代码解析完成后,第二个才会被解析。
# typeof
返回值:
undefined、boolean、string、number、object、function其中之一
对于未初始化和未声明的变量返回都是
undefined
# 数据类型
# Boolean
Boolean()为false的情况:false、""、0、NaN、null、undefined
# Number
Number()可以用于任何数据类型,parseInt()和parseFloat()专门用于把字符串转换成数值
# String
null和undefined没有toString()方法
String():如果有toString()则调用,null和undefined返回相应字符串
# Object
Object的每个实例都有下列属性和方法
constructor:创建当前对象的函数。hasOwnProperty():检查给定的属性再当前对象实例中,而不是实例的原型isPrototypeOf():检查传入的对象是否是当前对象的原型propertyIsEnumerable():检查给定的属性是否能够使用for-in来枚举toLocaleString()toString():对象的字符串表示valueOf()
# instanceof
原理:左边变量的原型链上(
__proto__)是否能找到右边变量的原型(prototype)
防抖和节流 →