JavaScript(4)运算符详解
1.关系运算符
用来比较两个值之间的关系
// 大于小于
let result = 5 > 10;
let result = 5 < 10;
// 大于等于,小于等于
let result = 5 >= 10;//<=
// 非数字
// 对非数值进行比较,先转换为数字,再比较
let result = '10' > 2;
let result = 10 > 'hello' // 任何值和NaN都是false
// 如果两边都是字符串,不会将其转换成数字,而是分别比较字符的unicode
console.log('1' < '5');
console.log('22' < '5');
// 比较字符编码
console.log('a' < 'b');
// 0061. 0041
console.log('a' < 'A'); // false
// 比较字符编码时候,是一位一位进行比较,如果两位一样,则比较下一位。
console.log('abc' < 'b');
console.log('bbc' > 'b');
// 可以比较英文名字,中文不行。
// 值得注意的是:
// 比较俩个字符串型的数字时候,会出现错误:
console.log('1231231' < '3');
// 所以,一定要转型
console.log('12313' > +'3');
2.三元运算符
条件表达式?语句1:语句2;
false ? console.log(1) : console.log(2);
//true输出语句1
//false输出语句2
3. 相等运算符
比较两个值是否相等。
// == 与 === 与 !=
console.log( 1 == 1);
console.log( '1' == 1);
// == 自动类型转换,再比较
console.log( true == '1' );
// 字符串转成了数字
console.log(true == '1');
console.log(true == '2');
console.log( true == 'hello');
console.log( null == 0); // false null=>空,准确来说不为0
console.log(undefined == null); // undefined衍生自null
// NaN 不和任何值相等,包括其本身
console.log( NaN == 1 );
console.log( NaN == NaN );
console.log(isNaN(NaN));
// != 不相等,与==类似
// === 不进行类型转换,再比较,全等,其他和==类似
console.log(undefined === null); //fasle 相等但不全等
4.# 运算符的优先级
console.log(1 + 2 * 3);
console.log(1 || 2 && 3);
var a = Number(true);
console.log(a);
console.log(3>2>0);
console.log(3>2>1-0);