逻辑运算符:
1、非(!):非运算可以对一个布尔值进行取反,true变false false边true,当对非布尔值使用!时,会先将其转换为布尔值然后再取反,我们可以利用!来将其他的数据类型转换为布尔值(!!s);
2、与(&&):&&可以对符号两侧的值进行与运算,只有两端的值都为true时,才会返回true。只要有一个false就会返回false。如果第一个值是false,则不再检查第二个值,对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值(如果第一个值为false,则返回第一个值;如果第一个值为true,则返回第二个值);
3、或(||):||可以对符号两侧的值进行或运算,只有两端都是false时,才会返回false。只要有一个true,就会返回true。如果第一个值是true,则不再检查第二个值,对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值(如果第一个值为true,则返回第一个值;如果第一个值为false,则返回第二个值)
相等运算符:
1、"= =":相等,判断左右两个值是否相等,如果相等返回true,如果不等返回false。相等会自动对两个值进行类型转换,如果对不同的类型进行比较,会将其转换为相同的类型然后再比较,转换后相等它也会返回true;
2、"!=":不等,判断左右两个值是否不等,如果不等则返回true,如果相等则返回false,不等也会做自动的类型转换;
3、"= = =":全等,判断左右两个值是否全等,它和相等类似,只不过它不会进行自动的类型转换,如果两个值的类型不同,则直接返回false;
4、“! = =”:不全等,和不等类似,但是它不会进行自动的类型转换,如果两个值的类型不同,它会直接返回true。
特殊的值:
1、null和undefined:由于undefined衍生自null,所以null = = undefined 会返回true。但是 null = = = undefined 会返回false;
2、NAN:NaN不与任何值相等,包括它自身 NaN == NaN //false;(判断一个值是否是NAN,使用isNAN函数)。
三元运算符:
语法:条件表达式?语句1:语句2;
如果判断结果为true,则执行语句1,并返回执行结果
如果判断结果为false,则执行语句2,并返回执行结果



