-
隐式转换
true转为1
[ ]转为字符串为“ ”;转为boolean为true;转为数字为0
NaN与任何值都不相等,包括其本身
布尔类型(undefined、null、0、NaN、‘ ’)返回为true,其余为false
== 相等比较,允许类型转换;布尔值和其他类型==比较时,先将布尔值强制为对应数字,再进行比较
for(var i = 0; i < 5; i++){
requestAnimationFrame(() => console.log(i));
}
输出5 5 5 5 5; 因为request异步执行,for循环完成后(此时i=5)再执行request
- 函数提升与变量提升
变量提升是指将变量申明提升到它所在的作用域的最开始部分。
只有函数声明形式才有函数提升参考
函数提升优先级高于变量提升,且不会被同名变量声明时覆盖,但是会被变量赋值后覆盖
var a = 10;
function a(){}
console.log(typeof a) //number
代码等价于
function a(){}
var a;
a=10 //如果没有赋值 类型为function
console.log(typeof a) //number
var a ;
function a(){}
console.log(typeof a) //function
- 正则表达式
^ 以…开头,$以…结尾。
*任意多次或0次
+至少出现一次
| 或的意思 ()组 []集合
exec():检索字符串中的匹配,返回一个数组,存放匹配的结果;如果未找到返回null
-
页面的性能指标
白屏时间plain time:用户从打开页面开始到页面开始有东西呈现
dom ready:用户可操作时间 -
js的基本数据类型
undefined、null、boolean、number、string