等号运算符 :
== | 1.判断类型是否一样,如果不一样,则进行类型转换 |
=== | 1.判断类型是否一致,如果不一致,则直接返回false |
var age1 = 20 ;
var age2 = "20" ;
window.alert(age1==age2);//true
window.alert(age1===age2);//条件始终为 false,因为类型 'number' 和 'string' 没有重叠
类型转换:
其他类型转换为number
1.string -->按照字符串的字面值,转为数字,如果字面值不是数字,则转为NaN
2.boolean -->true转为1,false转为0
其他类型转换为boolean
3.number -->0与NaN转为false,其他的数字转为true
4.string -->空字符串为false,其他的有内容的字符串为true
5.null -->转为false
6.undefined -->转为false
1.string -->按照字符串的字面值,转为数字,如果字面值不是数字,则转为NaN
//1.string -->按照字符串的字面值,转为数字,如果字面值不是数字,则转为NaN(把字符串转为number类型)
var str = +"20";
window.alert("变量str的值为" +parseInt(str)+ "数据类型为:"+typeof str);
2.boolean -->true转为1,false转为0
//2.boolean -->true转为1,false转为0(把Boolean转为number)
var flag = +true;
var flag1 = +false;
window.alert("true为"+flag+"false为"+flag1);
3.number -->0与NaN转为false,其他的数字转为true
//3.number -->0与NaN转为false,其他的数字转为true
var flag = 3 ;
if (flag){
window.alert("flag现在为true")
}else{
window.alert("flag现在为false")
}
4.string -->空字符串为false,其他的有内容的字符串为true
//4.string -->空字符串为false,其他的有内容的字符串为true
var flag ="地方" ;
if (flag){
window.alert("flag现在为true")
}else{
window.alert("flag现在为false")
}
5.null -->转为false
6.undefined -->转为false
//5.null -->不定义任何值则就为false, if (flag){}其实就是if(flag != null && flag.length > 0),两者的意思是一样的
var flag ;
if (flag){
window.alert("flag现在为true")
}else{
window.alert("flag现在为false")
}