JavaScript学习第三天:运算符
今天内容不多,明天相对会多一些!
目录
JavaScript学习Day2
运算符
算术运算符
赋值运算符
一元运算符(自增/自减运算符)
比较运算符
逻辑运算符
运算符优先级
JavaScript学习Day2
理解什么是流程控制,知道条件控制的种类并掌握其对应的语法规则,具备利用循环编写简易ATM取款机程序能力
-
运算符
-
语句
-
综合案例
运算符
算术运算符
数字是用来计算的,比如:乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。
算术运算符:也叫数学运算符,主要包括加、减、乘、除、取余(求模)等
运算符 | 作用 |
---|---|
+ | 求和 |
- | 求差 |
* | 求积 |
/ | 求商 |
% | 取模(取余数),开发中经常用于作为某个数字是否被整除 |
注意:在计算失败时,显示的结果是 NaN (not a number)
// 算术运算符console.log(1 + 2 * 3 / 2) // 4 let num = 10console.log(num + 10) // 20console.log(num + num) // 20// 1. 取模(取余数) 使用场景: 用来判断某个数是否能够被整除console.log(4 % 2) // 0 console.log(6 % 3) // 0console.log(5 % 3) // 2console.log(3 % 5) // 3// 2. 注意事项 : 如果我们计算失败,则返回的结果是 NaN (not a number)console.log('pink老师' - 2)console.log('pink老师' * 2)console.log('pink老师' + 2) // pink老师2
赋值运算符
赋值运算符:对变量进行赋值的运算符
= 将等号右边的值赋予给左边, 要求左边必须是一个容器
运算符 | 作用 |
---|---|
+= | 加法赋值 |
-+ | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取余赋值 |
<script>let num = 1// num = num + 1// 采取赋值运算符// num += 1num += 3console.log(num)</script>
一元运算符(自增/自减运算符)
我们常见的是二元运算:
num = 10 + 20
符号 | 作用 | 说明 |
---|---|---|
++ | 自增 | 变量自身的值加1,例如: x++ |
-- | 自减 | 变量自身的值减1,例如: x-- |
-
++在前和++在后在单独使用(单行)时二者并没有差别,而且一般开发中我们都是独立使用
-
++在后(后缀式)我们会使用更多
-
当然前置和后置也有区别:
-
前置自增是先自加后使用(++在前先加)
-
后置自增是先使用后自加(++在后后加)
-
注意:
只有变量能够使用自增和自减运算符
++、-- 可以在变量前面也可以在变量后面,比如: x++ 或者 ++x
<script>let num = 10// num = num + 1num += 1// // 1. 前置自增// let i = 1// ++i// console.log(i)let i = 1console.log(++i + 1) //结果为 3// 2. 后置自增// let i = 1// i++// console.log(i)let i = 1console.log(i++ + 1) //结果为 2// 了解 let i = 1console.log(i++ + ++i + i) //结果为 7</script>
console.log(++i + 1)
:i先自加,返回2,后参与运算,2+1=3。
console.log(i++ + 1)
:i先参与运算,返回1,1+1=2,再自加i=2。
console.log(i++ + ++i + i)
:i先参与运算,返回1,再自加为i=2,到++i
,i先自加为3,返回3,此时i=3,最后加上i,所以结果为1+3+3=7。
比较运算符
使用场景:比较两个数据大小、是否相等,根据比较结果返回一个布尔值(true / false)
运算符 | 作用 |
---|---|
> | 左边是否大于右边 |
< | 左边是否小于右边 |
>= | 左边是否大于或等于右边 |
<= | 左边是否小于或等于右边 |
=== | 左右两边是否类型 和值 都相等(重点) |
== | 左右两边值 是否相等 |
!= | 左右值不相等 |
!== | 左右两边是否不全等 |
比较字符串:
注意几点:
-
字符串比较,是比较字符对应的ASCII码
-
从左往右依次比较
-
如果第一位一样再比较第二位,以此类推
-
-
NAN不等于任何值,包括它本身
-
涉及到NAN的比较结果都是false
-
-
尽量不要比较小数,因为小数有精度问题
<script>console.log(3 > 5) // falseconsole.log(3 >= 3) // trueconsole.log(2 == 2) // true// 比较运算符有隐式转换 把'2' 转换为 2 双等号 只判断值console.log(2 == '2') // true// console.log(undefined === null)// === 全等 判断 值 和 数据类型都一样才行// 以后判断是否相等 请用 === console.log(2 === '2') // false 判断值和数据类型console.log(NaN === NaN) // falseconsole.log(2 !== '2') // trueconsole.log(2 != '2') // false console.log('-------------------------')console.log('a' < 'b') // true 97<98console.log('aa' < 'ab') // trueconsole.log('aa' < 'aac') // trueconsole.log('-------------------------')</script>
逻辑运算符
使用场景:可以把多个布尔值放到一起运算,最终返回一个布尔值
符号 | 名称 | 日常读法 | 特点 | 口诀 |
---|---|---|---|---|
&& | 逻辑与 | 并且 | 符号两边有一个假的结果为假 | 一假则假 |
|| | 逻辑或 | 或者 | 符号两边有一个真的结果为真 | 一真则真 |
! | 逻辑非 | 取反 | true变false false变true | 真变假,假变真 |
A | B | A && B | A || B | !A |
---|---|---|---|---|
false | false | false | false | true |
false | true | false | true | true |
true | false | false | true | false |
true | true | true | true | false |
<script>// 逻辑与 一假则假console.log(true && true)console.log(false && true)console.log(3 < 5 && 3 > 2)console.log(3 < 5 && 3 < 2)console.log('-----------------')// 逻辑或 一真则真console.log(true || true)console.log(false || true)console.log(false || false)console.log('-----------------')// 逻辑非 取反console.log(!true)console.log(!false)console.log('-----------------')let num = 6console.log(num > 5 && num < 10)console.log('-----------------')</script>
运算符优先级
运算符执行的顺序按优先级高低:
逻辑运算符优先级: !> && > ||