JS注意事项

1、数组相关

1.1 如果数组中的某一项的值是null 或者undefined,那么该值在join()、toLocaleString()、toString()方法返回的结果中以空字符串表示。

JS注意事项

1.2 sort()方法是按字符串进行比较

sort()方法会调用每个数组项的toString()方法,然后比较得到的字符串,以
确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串。
JS注意事项

1.3 concat()、slice() 创建新数组,不改变原数组

slice ()
如果slice()方法的参数中有一个负数,则用数组长度加上该数来确定相应的位
置。例如,在一个包含5 项的数组上调用slice(-2,-1)与调用slice(3,4)得到的
结果相同。如果结束位置小于起始位置,则返回空数组。

1.4 splice() 删除、插入、替换数组项

splice() 会改变原数组。
splice()可接受多个参数:第1个参数表示起始位置,第2个参数表示需要删除的个数,后面的参数表示需要插入的参数。
JS注意事项

1.5 ECMAScript5 的5个迭代方法

  • filter():对数组中的每一项运行给定函数,返回该函数会返回true 的项组成的数组。
  • forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
  • map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
  • every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
  • some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。

以上迭代方法都可以包含两个参数,第一个参数是要在数组项上运行的函数,第二个参数是运行函数的作用域对象。
运行函数包括三个参数,第一个参数是数组项,第二个参数是索引值,第三个参数是数组本身

2、alert(args)调用时会将参数转为字符串

由于alert()要接收字符串参数,所以其参数在后台自动调用toString()方法,由此
会得到与直接调用toString()方法相同的结果。

3、Function

由于函数名仅仅是指向函数的指针,因此函数名与包含对象指针的其他变量没有什么不同。换句话说,一个函数可能会有多个名字。为了说明这点,让我们看看实例:

function add(n1,n2){
	return n1 + n2;
}
console.log(add(5,5)); //10
var otherAdd = add;
add = null;    //将add置为null,只是add的指针为null,函数依然存在
console.log(otherAdd(5,5)); //10

JS注意事项

参考:《JavaScript高级程序设计(第3版)》