JavaScript第二天:
1.算术运算符:
数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
***** 算术运算符会给值进行隐形转换
- 求和 : +
- 求差: -
- 求积: *
- 求商: /
- 取模(取余数): % 例: 3%2 3除不尽2所以还有余数为1,结果就为1
开发中经常作为某个数字是否被整除
<script>
let a = 2, b = 1
console.log(a + b)
console.log(a - b)
console.log(a * b)
console.log(a / b)
console.log(a % b)
</script>
优先级:
- 同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级。
- 先乘除后加减,有括号先算括号里面的
<script>
console.log((2 + 1) / 3 * 1)
// 先算括号里2+1=3
// 乘除等级相同所以3除以3再乘1
// 结果为1
</script>
计算圆的面积:
转换为JavaScript写法 : 变量 * r * r
<script>
let r = 1
console.log(Math.PI * r * r)
</script>
2.赋值运算符
赋值运算符:对变量进行赋值的运算符
- =
- +=
- -=
- *=
- /=
- %=
<script>
// 之前我们让变量加1如何做的
let a = 1
a = a + 1
console.log(a)
</script>
<script>
// 现在我们让变量加1如何做的
let a = 1
a += 1
console.log(a)
</script>
3.一元运算符
目标: 能够使用一元运算符做自增运算
自增
-
符号: ++
-
作用:让变量的值 +1
-
++变量 : 写在变量前面 先自增再使用
<script> let a = 1 console.log(++a + 1); //结果为3 // 注意:a是2 // a先自加1 变成2之后,在和后面的1相加 </script> -
变量++: 写在变量后面 先使用再自增
<script> let a = 1 console.log(a++ + 1); //结果为2 // 注意:此时的a是1 // 先和1相加,运算输出完毕之后,a再自加为2 </script>
-
自减
-
符号:--
-
作用:让变量的值 -1
(自减同理)
4.比较运算符
作用:比较两个数据大小、是否相等
!!! 不同类型之间比较会发生隐式转换
尽量不要比较小数,因为小数有精度问题
-
大于:> 左边是否大于右边
-
小于:< 左边是否小于右边
-
大于或等于:>= 左边是否大于或等于右边
-
小于或等于:<= 左边是否小于或等于右边
-
等于:
- = 赋值
- == 左右两边是否相等,将两边的数据进行转换为数值
- === 左右两边是否类型和值都相等
-
不等于:
-
! 反值
-
!= 左右两边是否不全等 类型不比较
-
!== 左右两边是否不全等 类型也比较
!!! ** 比较结果为boolean类型,即只会得到true或false**
哪些值转布尔类型后 结果为 false 的有:
-
undefined
-
null
-
0
-
""或''
-
false
-
NaN
-
5.逻辑运算符
逻辑与:&&
-
日常读法: 并且
-
特点:
- 同时满足所有条件就成立 结果为true
- 有一个条件不满足就不成立 结果为false
-
短路:
-
左边为false 就短路(后面内容不执行)
-
逻辑或://
-
日常读法:或者
-
特点:
- 只要有一个条件就成立 结果为true
- 两个条件都不满足就不成立 结果为false
-
短路:
-
左边为true 就短路 (后面内容不执行)
-
逻辑非:!
- 日常读法:取反
- 特点:
- true变false 真变假
- false变true 假变真
6.分支:
if(bool值为条件)
获得bool值的方式:
- 直接赋值true/false
- 关系运算符表达式--比较运算符
- 逻辑运算符--多条件
- 判断具体的变量值:在js中false的值为
- undefined/null
- 0
- `` "" ''
单分支:
if(条件) {满足条件要执行的代码}
<script>
let age = +prompt('请输入工龄')
if (age >= 1) {
alert('年底奖金+2000')
}
</script>
双分支:
if(条件) {满足条件要执行的代码}........else{不满足条件要执行的代码}
<script>
let age = +prompt('请输入工龄')
if (age >= 1) {
alert('年底奖金+2000')
} else {
alert('没奖金')
}
</script>
多分支:
if(条件){满足条件要执行的代码}......else if(条件){满足另外条件要执行的代码}......else{条件都不满足要执行的代码}
<script>
let time = +prompt('请输入时间')
if (time === 24 || time >= 0 && time < 6) {
alert('凌晨好')
} else if (time >= 6 && time < 12) {
alert('早上好')
} else if (time >= 12 && time < 18) {
alert('下午好')
} else if (time >= 18 && time < 24) {
alert('晚上好')
}else {
alert('吊毛不要瞎填')
}
</script>
三元表达式:
其实是比 if 双分支 更简单的写法,有时候也叫做三元表达式
符号:? 与 : 配合使用
符号的理解:条件?满足条件执行的代码:不满足条件执行的代码
<script>
let numb1 = +prompt('输入第一个数'), numb2 = +prompt('输入第二个数')
// 如果numb1大于numb2输出的数字就是numb1;numb2则反
document.write(numb1 > numb2 ? numb1 : numb2)
</script>
补充说明:
- 如果做处理,代码只能写一句
- 可以写在模板字符串中
- 可以嵌套
7.while循环:
循环:重复执行某段代码, 而 while : 在…. 期间
-
while(条件){要重复执行的代码(循环体)} :
如果条件满足,就执行循环体,如果不满足就结束循环
-
循环三要素
- 变量初始值
- 终止条件(没有终止条件,循环会一直执行,造成死循环)
- 变量变化量(用自增或者自减)
<script> // 本来i的值是1 let i = 1 // 条件为i>10的时候终止循环,意思就是10次循环后停止循环 while (i <= 10) { document.write(`我要月薪过万<br>`) i++ //每一次循环i都会自己后增1个数 } // i在上面循环了10次,然后1+10=11的值 document.write(i) //值为11 </script>