第四章 Javascript的运算符

(一)数学运算符

1、加减乘除

var a = 100,b = 200

console.log(a+b)  //300
console.log(a-b)  //-100
console.log(a*b)  //20000
console.log(a/b)  //0.5

2、取余%

var a = 100
console.log(a%3)  // 1

3、说明

(1)在number 和 boolean类型相加时,会自动将 true 转化为1;

(2)若是 number 和 string相加,则变成了字符串拼接,而* / -均变为number;

4、优先级问题

进行运算时,要注意运算的优先级,稍有不慎,可能会出现意想不到的结果。

console.log(1+"2"*3+4)   //11  Number
console.log("1"+2*3+4)   //164  String

 在以上运算中,前者先进行乘法运算,将数据类型转化为了Number,之后全是Number的相加,结果为正常的理想数据。

后者在加法中混入了字符串,因此“+”变成了字符串拼接。

 (二)赋值运算符

1、简单赋值

var a = 1
console.log(a)  //1

2、自运算

(1)自加 +=

var a = 1
a += 3
console.log(a)  //4

(2)自减 -=

var a = 2
a -= 1
console.log(a)  //1

(3)自乘 *=

var a = 2
a *= 3
console.log(a) //6 

(4)自除 /=

var a = 6
a /= 2
console.log(a)  // 3

(5)++与--

若自加/自减 1,也可以使用++ / --

var a = 2

a++
console.log(a)  // 2

a--
console.log(a)  //1

3、i++ 与 ++i

当 i++ 与 ++i 单独一行执行时,i++与++i并无差别;

当 i++ 与 ++i 与其他语句写在一行时,两者有差别。

(1) i++ 或 ++i 单独一行执行时

var a = 10

a++
document.write(a)  // 11

++a
document.write(a)  // 12

(2)两者和其他语句同写在一行上出结果时,差别如下

若为 i++,则先执行完整行语句,再相加;

若为 ++i,则先相加,再执行完整行语句。

var a = 10
document.write(a++)  //  10 打印完才执行
document.write(++a)  //  12 有一个1是上一句执行完+1的结果

(3)综合运用

在简单语句中,比较容易比较 ++i 与 i++的区别,但是在复杂语句中,稍有不慎,就容易犯错。 

var a = 10
var b = ++a + a++ + ++a
console.log(b)   // 35

 运算过程:

++a => 10+1=11

a++ => 加的时候是11,执行完加法才变成12

++a => 12+1=13

总的:11+12+13=35

(三)比较运算符

1、相等和严格相等

“==”只比较是否相等,不比较数据类型;

“===”不仅比较是否相等,还比较数据类型是否一致

(1)相等 ==

var a = "100"
console.log(a == 100)  //true

“==”同样可以对所有数据类型的值对应的布尔值进行判断。 

console.log(true == 1)  //true
console.log(false == "") //true

(2)严格相等 ===

var a = "100"
console.log(a===100)  //false

由于数据类型不同,不能用“===”判断数据对应的布尔值

console.log(true === 1) //false
console.log(false === "") //false

 2、不相等和严格不相等

与“==”和“===”对应

“!=”只比较是否相等,不比较数据类型;

“!==”不仅比较是否相等,还比较数据类型是否一致

 (1)不相等

var a = "100"
console.log(a != 100)  //false

(2)严格不相等

var a = "100"
console.log(a !== 100)  //true

(四)逻辑运算符

1、与&&,全部为true才为true

console.log(true && true)  //true
console.log(true && false) //false
var a = 100
var b = "test"
console.log(a==100 && b=="test") //true

2、或||,只要包含一个true就是true

console.log(true || false)  //true
console.log(false || false) //false
var a = 100
var b = "test"
console.log(a == 90 || b == "test") //true

3、非!

var test = null
console.log(test == 0)  //true
console.log(!test == 1)  //true

(五)三元运算符

 三元运算符又称为“三目运算符”和“条件运算符”,主要的作用是:用于判断,可理解为简单运算版本的if

格式:判断语句 ? 正确时执行 : 错误时执行

10 < 20 ? console.log("正确") : console.log("错误")

三目运算符可嵌套,但是会提高代码复杂性,不易读,建议复杂判断使用if语句。

var a = 99
var res = a > 200 ? a++ : (a > 100 ? a++ : a--)
console.log(a)  //98
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值