运算符
算术运算符
它支持: 加(+) 减(-) 乘(*) 除(/) 求余数(%),另外+ -也能放到单个数据的前面表示正负,算术运算符的表达式一定返回数字,可以利用这一类型做类型转换,就是我们理解的隐式类型转换,代码如下
var a = +n //无论n是什么,都会被转换成数字,保存到a中
console.log(typeof(a))//打印出来的结果为number
var b = n + ''//无论n是什么,都会被转换成字符串,保存到b中
console.log(typeof(b))//打印出来的结果为string
var c = !!n//无论n是什么,都会被转换成布尔值,保存到c中
console.log(typeof(c))//打印出来的结果为boolean
字符串拼接
当 + 的两端是字符串时,不再进行算术运算,而变成字符串的拼接,表达式一定返回String,代码如下:
var d = 'a' + 'b'
console.log(typeof(d),d)//返回结果类型为string,值为'ab'
赋值运算
涉及的运算符: = += *= /= %=
细说下a += b, 等下于 a = a + b
//赋值表达式始终返回复制结果,我们可以利用这一点完成连续赋值
//例如将 6 同时赋值给 m n
m = n = 6
console.log(m,n)//6 6
比较运算
涉及到的运算符: == === != !== > >= < <=
//在开发中,不要使用==和!=,不严谨,保持习惯始终使用===和!==来比较相等和不相等
//另外比较运算符始终返回boolean,我们常利用这一点去完成某些判断逻辑
if(age === '18'){
userBoolean = true
}else{
userBoolean = false
}
//开发中更应该写简洁代码,代码复杂化很简单,但是把复杂的代码些简单却很难
//菜就多练,嘻嘻
//以上代码可以有一个简洁的写法
userBoolean = age === '18'
逻辑运算
逻辑运算符: !
对后面的数据取反,表达式一定返回boolean
运算符: &&
记住一点:真真为真,其他为假,具有短路规则,一项为假就不再执行后续逻辑。
//exp有值,判定为真,并输出值
exp && conlole.log(exp)
//以上代码相当于
if(exp){
console.log(exp)
}
运算符: ||
记住一点:假假为假,其他为真,也具有短路队则。
//短路规则可以帮助我们简化代码
// 举例,如果exp有值,就把它的值赋值给n,如果没有值,就给n赋值为默认值 1
//复杂代码
if(exp){
n= exp
}else{
n = 1
}
//简化代码
n = exp || 1
运算符: ? :,格式为 a ? b : c
其实就是三目运算,判定a ,为真时表达式返回b,否则返回c
如果exp为真,则把1赋值给n,否则,把2赋值给n
if(exp){
n = 1
}else{
n = 2
}
//正则简化
n = exp ? 1 : 2
布尔判定
所有涉及到真假的地方都会用到以下规则:
数据 | 判定 |
---|---|
false null undefine 0 NaN ’ ’ | false |
剩余所有数据 | true |
基于数据的运算写一些案例
/*
不使用if,判断一个年份是否是闰年,输出是或否
闰年规则:
1. 4年一闰,百年不闰
2. 400年必闰
上述两点满足其一即可
*/
function isLeapYear(year){
//四年一闰
let leap4 = year % 4 === 0
//百年不闰
let leap100 = !(year % 100 === 0)
//400年必闰
let leap400 = year % 400 === 0
//逻辑判断:4年一闰,百年不闰且不足百年不润 或者四百年笔闰
return (leap4 && leap100) || leap400 ? 'yes' : 'no'
}
console.log(2000)//yes
console.log(2010)//no
console.log(2020)//yes
结语:数据的运算在JavaScript中是通过各种运算符和规则来实现的。了解这些运算符和规则对于编写有效的JavaScript代码至关重要。在实际编程中,需要根据具体需求选择合适的运算符和规则来处理数据。