# 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
)
防抖和节流 →