js基础知识
一、运算符
1,算术运算符
数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
-
+:求和
-
-:求差
-
*:求积
-
/:求商
-
%:取模(取余数) -开发中经常作为某个数字是否被整除
<script> let num1=10, num2=2; // 乘法 console.log(num1*num2 ) // 除法 console.log(num1/num2 ) // 求余 console.log(num1%num2 ) // 加法 console.log(num1+num2 ) // 减法 console.log(num1-num2 ) </script>
JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行,先乘除后加减,有括号先算括号。
2,赋值运算符
赋值运算符:对变量进行赋值的运算符
已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个变量,使用这些运算符可以在对变量赋值时进行快速操作。
其他赋值运算符:
- +=
- -=
- *=
- /=
- %=
<script>
let num1=10;
// num1=num1+3
num1+=3;
console.log(num1)
// num1=num1-3
num1-=3;
console.log(num1)
// num1=num1*3
num1*=3;
console.log(num1)
// num1=num1/3
num1/=3;
console.log(num1)
// num1=num1%3
num1%=3;
console.log(num1)
</script>
3,一元运算符
前置自增:先自加再使用(记忆口诀:++在前 先加)
后置自增: 先使用再自加(记忆口诀:++在后 后加)
<script>
let i=1;
// 先自增在计算
console.log( ++i +2)
// 先计算在自增
console.log( i++ +2)
</script>
4,比较运算符
4.1 比较运算符的使用
-
> : 左边是否大于右边
-
<: 左边是否小于右边
-
>=: 左边是否大于或等于右边
-
<=: 左边是否小于或等于右边
-
==: 左右两边是否相等,将两边的数据进行转换为数值
-
===: 左右两边是否类型和值都相等
-
!==: 左右两边是否不全等
4.2 比较运算符的细节
比较结果为boolean类型,即只会得到true或false
-
字符串比较,是比较的字符对应的ASCII码
- 从左往右依次比较
- 如果第一位一样再比较第二位,以此类推
- 比较的少,了解即可
-
NaN不等于任何值,包括它本身
-
尽量不要比较小数,因为小数有精度问题
-
不同类型之间比较会发生隐式转换
- 最终把数据隐式转换转成number类型再比较
- 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
5,逻辑运算符
5.1 逻辑符的使用
符号 | 含义 | 规则 |
---|---|---|
&& | 逻辑与 | 一假为假 |
|| | 逻辑或 | 一真为真 |
! | 逻辑非 | 取反 |
5.2 逻辑运算符的短路运算
短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
符号 | 短路条件 |
---|---|
&& | 左边为false就短路 |
|| | 左边为true就短路 |
原因:通过左边能得到整个式子的结果,因此没必要再判断右边
运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值
二、语句
2-1、分支语句
分支语句可以让我们有选择性的执行想要的代码,if语句有三种使用:单分支、双分支、多分支。
2-1-1 单分支语句
- 但括号条件为true时,执行花括号的代码
- 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
<script>
let num=+prompt('请输入您高考分数')
if(num>=700){
alert( '蓝翔欢迎您')
}
</script>
2-1-2 双分支语句
- 当条件满足if括号的条件时,执行花括号程序,当条件不满足时,则执行else后花括号的程序。
<script>
let num=+prompt('请输入您高考分数')
if(num>=700){
alert( '蓝翔欢迎您')
}
else{
alert( '怀恨去北大')
}
</script>
2-1-3 多分支语句
- 先判断条件1,若满足条件1就执行代码1,其他不执行
- 若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
- 若依然不满足继续往下判断,依次类推
- 若以上条件都不满足,执行else里的代码n
- 注:可以写N个条件,但这里演示只写2个
<script>
let day=+prompt('请输入吃饭日期')
if(day===1){
alert('今天吃煲仔饭')
}
else if(day===2){
alert('今天吃生猛海鲜')
}
else if(day===3){
alert('今天吃烤全羊')
}
else if(day===4){
alert('今天吃炒河粉')
}
else if(day===5){
alert('今天吃老坛酸菜')
}
else if(day===6){
alert('今天舔老坛酸菜桶')
}
else if(day===7){
alert('今天吃牢饭')
}
</script>
2-1-4 三元运算符
- 其实是比 if 双分支 更简单的写法,有时候也叫做三元表达式
- 符号:? 与 : 配合使用,常用于取值
<script>
let num1=prompt('请输入第一个数');
let num2=prompt('请输入第二个数');
let num3;
// num1>num2?alert( num3=num1) :alert( num3=num2);
num3 = num1>num2?alert( num1) :alert( num2);
</script>