1.typeof:未经定义的变量typeof返回"undefined"。
2.数据类型:
1)js中 0 == '' 返回结果是 true
2)1 == '1'返回结果是true,但是在Map中1和'1'是不一样的
3)在获取输入框数据进行计算时,请先转换为数字
4)undefined+任何数字结果都是NaN
5)字符串+undefined的结果为字符串+'undefined'字符串
3.判断:
1)if(data),当data为0或者空串('')或者undefined时,一定不会进入判断
2)if(!!data),代表判断true或者false但是data并不一定是true或者false
4.易犯错误:
1)示例1:因为函数不是在console.info()的时候就打印,而是把函数保存在外面,10个函数同一个作用域,并且都是10
var a = [];
for(var i=0; i<10; i++){
a[i] = function (){
console.info(i);
}
}
for(var i=0; i<a.length; i++){
// 输出结果正常,但是循环完成之后数据全部是10
a[i]();
}
for(var k=0; k<a.length; k++){
// 输出结果全部是10
a[k]();
}
2)示例2:因为num未定义,num为undefined,undefined+任何数都是NaN
var num;
for(var i=1; i<=10; i++){
num = num+i;
}
// 输出结果是NaN
console.info(num);
3)示例3:return语句的行没有其他内容时,会在return语句后面自动插入分号
var f1 = function (){
return
{
test: 'test'
}
}
// 打印结果是undefined
console.info(f1());