问题脚本
- var str = 'false';
- if(str){
- alert('正确');
- }else{
- alert('false');
- }
var str = 'false';
if(str){
alert('正确');
}else{
alert('false');
}
运行上面的脚本你会发现str不管是“true”还是“false”,都会跳出“正确”提示框。(看来这javascript弱类型还是有类型啊。)
官方说明:
Note: If the value parameter is omitted, or is 0, -0, null, "", false, undefined, or NaN, the object is set to false. Otherwise it is set to true (even with the string "false")!
主要是Boolean的构造函数对于字符串只要不为空都为"true";
解决方法:
- var str = 'false';
- if(str ==='true'){
- alert('正确');
- }else{
- alert('false');
- }
var str = 'false';
if(str ==='true'){
alert('正确');
}else{
alert('false');
}
这样除了true之外,其他都是false;