js的运算法则

1. 相加:

  • 一个string和number相加,会自动转为string,最后返回的是一个字符串
  • 其他的相加返回的是number

2.进制间的转换

3.比较运算

3.1字符串和数值进行比较

3.2undefined(null的派生子类)和null比较

3.3字符串和字符串比较(拿第一位的ASCII码进行比较)

3.4布尔类型的值和null进行比较

3.5先转换数据类型再比较

3.6null和undefined跟0进行比较

4.逻辑运算

4.1 ||运算

4.2 与运算

4.3 !运算

有true则取第一个出现的值,全为false则取最后一个(遵循||运算,有真则为真,全假才假)

点击查看代码
//有true则返回true
var a=10, b=30;
console.log(a>b || 20);//20 前面是false,后面是true
console.log(0 || 10);//10
//如果两个都是false,取最后一个
console.log(undefined || "");//"" 
//如果两个都为true,则取第一个为true的值(||运算是有true则直接返回)
console.log('a'||'b');//a
console.log("" || "false" || "true");//false  空字符串是false,所以继续找下一个结果为true的值
//三目运算和逻辑运算优先级一样
var strr=(10>20? '':'123') || (30>20? '':'456');
console.log(strr);//123  相当于('123' || '')

取第一个为false的值(只要有false则取第一个为false的值,无论后面有没有true),全为true则取最后一个(遵循&&运算,有假则为假,全真才真)

点击查看代码
console.log(10 && 30);//全为true,取最后一个
console.log(0 && '');//全为false,取第一个
console.log(undefined && null);//undefined
console.log(null && 2);//null 有false则取第一个为false的值
console.log(2 && NaN);//NaN
console.log(3 && 'false' && undefined && null);//undefined

会转成boolean类型
console.log(!123);//false

posted @ 2022-07-26 19:59  喜欢四季的春天  阅读(69)  评论(0编辑  收藏  举报