JavaScript 易错知识点

数据类型

基本的数据类型

Undefined、Null、Boolean、Number、String 和 Symbol(ES6新增)

转化为布尔值时为false6种情况:undefined、null、false、0、NaN、“”

会改变原数组的方法

1 pop() // 删除数组的最后一个元素并返回删除的元素。
2 push() // 向数组的末尾添加一个或更多元素,并返回新的长度。
3 shift() // 删除并返回数组的第一个元素。
4 unshift() // 向数组的开头添加一个或更多元素,并返回新的长度。
5 reverse() // 反转数组的元素顺序。
6 sort() // 数组的元素进行排序。
7 splice() // 插入、删除或替换数组的元素。

 

变量作用域

有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!

// 例
var
a,b; (function(){ var a=b=3; // 相当于 b=3;var a=3 console.log(a) // 3 console.log(b) // 3 })(); console.log(a) // undefined console.log(b) // 3

 

call、apply、bind的区别

                           //   第一个参数      其余参数       效果
x.apply(thisArg, ?argArray) // 要指定的 this 原函数的参数数组 调用函数 x.call(thisArg, ...argArray) // 要指定的 this 原函数的参数们 调用函数 x.bind(thisArg, ...argArray) // 要指定的 this 原函数的参数们 返回函数

运算符优先级

>> From MDN 运算符优先级

隐式转换

>> 例

// 1
console.log([]==false) // true
// 2 var a = { a: 0, valueOf() { return ++this.a } } if (a == 1 && a == 2 && a == 3) { console.log(1); }

 

>> 上图来源:Oh My Dear JavaScript

一些参考

  

 闭包

>> From MDN

闭包是函数和声明该函数的词法环境的组合。这个环境包含了这个闭包创建时所能访问的所有局部变量

 

 

待续。。。

 

posted @ 2019-07-03 22:33  北风卷地白草折  阅读(250)  评论(0编辑  收藏  举报