js基础运算符与语句

125 阅读2分钟

算术运算符

数学运算符也叫算术运算符,只要是加减乘除

+:求和 -:求差 *:求积 /:求商 %:取模(取余数) 如:

5 % 3 =2

%开发中经常用来判断是否被某个数整除

算术运算符的优先级

同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级 JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执

  • 乘、除、取余优先级相同
  • 加、减优先级相同
  • 乘、除、取余优先级大于加、减
  • 使用 () 可以提升优先级

总结:先乘除后加减,有括号先算括号

赋值运算符

简单赋值运算符=

sum = 0;

+=

sum += 1 //即是sum = sum + 1

-=

sum -= 1 // sum = sum - 1

*=、/=、%= 由此类推,使用赋值运算符能简化代码

一元运算符

一元运算符都用自增减操作

自增:符号++

let i = 0
i++  //i1操作

自减:符号--

let i = 1
i--  //i1操作

开发中经常用于计数操作,多用于循环体

自增减分为前后置

前置自增:

let num = 1
let i = 0
num = ++i //此时i先自增再赋值,num = 2

后置自增:

let num = 1
let i = 0
num = i++ //此时i先赋值再自增,num = 1

自减也是由此

经典案例:

let i = 1
console.log(i++ + ++i + i);//7 这确实有点懵,多理解理解

比较运算符

左边是否大于右边
<左边是否小于右边
>=左边是否大于或等于右边
<=左边是否小于或等于右边
==左右两边是否相等
===左右两边是否类型和值都相等
!==左右两边是否不全等

比较的结果为布尔值(boolean类型):true、false

  1. 字符串比较,是比较的字符对应的ASCII码

  2. NaN不等于任何值,包括它本身 (但NaN的布尔值为false)

  3. 尽量不要比较小数,因为小数有精度问题

  4. 不同类型之间比较会发生隐式转换

    1. 最终把数据隐式转换转成number类型再比较
    2. 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==

= 、== 、===的区别:

  1. =是赋值
  2. ==是判断值是否相等
  3. ===是全等判断值和类型是否相等

逻辑运算符

符号名称日常读法特点口诀
&&逻辑与并且符号两边都为true结果才为true一假则假
逻辑或或者符号两边有一个true就为true一真则真
逻辑非取反true变false、false变true真变假,假变真

逻辑运算符的短路

&&、||满足以下条件会短路操作

符号短路
&&左边为false时
左边为true时

案例:

&&

console.log(false && 20);//false
console.log(5 < 3 && 20);//false
console.log(10 && 20);//20

||

console.log(false || 20);//20
console.log(5 < 3 ||20);//20
console.log(10 ||20);//10

逻辑运算符练习小案例(判断是否闰年)

<script>
// 闰年的判断条件能被4整除(%4==0)且不能被100整除(%100!=0)或者能被400整除(%400==0)
let year = prompt(' 请输入年份:')
if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
document.write(`${year}年是闰年`)
} else {
document.write(`${year}年不是闰年`)
}
</script>

运算符的优先级

优先级运算符顺序
1小括号()
2一元运算++ - !
3算数运算符先*/%后+ -
4关系运算符> >= < <=
5相等运算符== != === !==
6逻辑运算符&&
7赋值运算符=

一元运算符里面的逻辑非优先级最高 逻辑与比逻辑或优先级高

案例:

let a = 3 > 5 && 2 < 7 && 3 == 4
console.log(a);  //flase
​
let b = 3 <= 4 || 3 > 1 || 3 != 2 
console.log(b); //true
​
let c = 2 === "2"
console.log(c);  //false
​
let d = !c || b && a 
console.log(d);//true

语句

表达式

表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果

x = 7
1 + 1
num++

语句

js 整句或命令,js 语句是以分号结束(可以省略)

如:if语句、for循环

分支语句

if语句

if语句有三种使用:单分支、双分支、多分支

单分支:

if(条件){
}

多分支:

if(条件){
}esle if(条件){
}...{
}esle{
}

*小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型

三元运算符

格式:条件 ?满足条件执行的代码 :不满足条件执行的代码

2 < 3 ? console.log("3比较大") : console.log("2比较大")

案例:

let num1 = prompt(""), num2 = prompt("")
let max = num1 > num2 ? num1 : num2
console.log(`最大的数是:${max}`);

分支语句实战案例:

简易计算机:

//接收用户选择的运算方式与计算的数字
let cout = prompt('选择运算+、-、*、/'), num1 = +prompt('数字1'), num2 = +prompt('数字2')
//判断用户选择的运算方式+、-、*、/
if (cout == '*') {
alert(`${num1}*${num2}=${num1 * num2}`)
} else if (cout == '+') {
alert(`${num1}+${num2}=${num1 + num2}`)
} else if (cout == '/') {
alert(`${num1}/${num2}=${num1 / num2}`)
} else {
alert(`${num1}-${num2}=${num1 - num2}`)
}