1.相等运算符
笔记:
当使用==来比较值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型然后比较;
代码:
var a=10;
//console.log(a==4);
//console.log("1"==1);
console.log(true=="1");//将"1"转换成boolean值true,然后比较。
console.log(true=="hello");
console.log(NaN=="0");//NaN不和任何值相等
console.log(NaN==NaN);//false
console.log(undefined==null);//undefined衍生自null,这两者做相等判断时会返回true;
var b=NaN;
console.log(isNaN(b));//true;利用isNaN函数对值进行判断是否为NaN;
// !==
console.log(10!=5);//true;利用 !=进行不相等计算;
console.log("1"!=1);//false;不相等也会进行自动类型转换,转换后类型相等会输出false
// ===
console.log("1"===1);//false;===全等计算,不进行类型转换;
// !==
console.log("1"!==1);//true; !==不全等计算,不进行类型转换;
2.条件运算符
笔记:
条件运算符也叫三元运算符。
语句:条件表达式?语句1 :语句2;
执行流程:
- 条件运算符在执行时,首先对条件表达式进行求值
- 如果该值为true,则执行语句1,并返回结果
- 如果改值为false,则执行语句2,并返回结果
- 如果判断语句不是boonlean值,会自动转换成boonlean然后进行判断;
代码:
var a=10;
var b=20;
var c=30;
//进行比较使用
a>b?alert("a大"):alert("b大")
//获取a和b中的最大值
var max=a > b ? a : b;
console.log("max="+max);
//获取a b c中的最大值
max=max > c ? max : c;
console.log("max="+max);
//比较a b c,先比较a和b,如果为true执行(a>c?a:c),再接着比较a和c的值;如果为false执行(b>c?b:c),再接着比较b和c的值;(不推荐,难以阅读)
var max=a>b?(a>c?a:c):(b>c?b:c);
console.log("max="+max);
//" "表示布尔值为false;"hello"表示布尔值为true;
""?alert("语句1"):alert("语句2");//false
"hello"?alert("语句1"):alert("语句2");//true