JavaScript 注意要点:
1、在行末自动添加分号
JavaScript 有在行末自动添加分号的机制,所以在return时,不能将需要return的结果和return隔行写,否则有可能会 导致未知错误。例如:
function firstExample() {
//dosomething
return//因行末自动添加分号,故 ,此时即会返回undefied。
0;
}
也正是因为这个原因,所以在函数内部使用for循环等时,用var声明的局部变量,在for循环下面依然可用。而要使块级作用域生效,则改用ecs6的let来声明变量例如:
function secondExample() {
for(var index in someArray) {
//dosomething
}
index = 3//正确
for(let tmpInd = 0; tmpInd < 6; ++tmpInd) {
//doOtherthing
}
tmpInd = 1;//错误
}
2、变量提升
JaveScript的函数定义,会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部,但并不会提升变量的赋值。举个例子:
function thirdExample() {
var firstTemp = secondTemp + 2;//此时secondTemp不会报错,但是,其值为undefined
var secondTemp = 2;
}
3、全局变量默认绑定至window上
因全局变量会默认绑定至window上,故而如果在不同的js文件中命名了相同的变量或者函数,会造成命名冲突。
4、Number的强制类型转换
5、Boolean类型的转换