
赋值运算符
当遇到了=赋值的时候,先执行=右边的代码

自加一 变量++
num++ num+=1 num=num+1
num++后置加加 ++num 前置加加 都是变量自增1
前置加加 和 后置加加 的 区别

区别是 表达式的值不一样
++变量 --> 数据+1之后的结果
变量++ --> 数据本身的结果
小八股文

i++ 1 但此时输出i的值为2
++i 2+1=3 但此时输出i的值为3
1 3 3 =7

console.log(num1++ + ++num2)=11+14=25
console.log(num1)=12
console.log(num2)=14
18
2+3+3+4+6=18
<body>
<script>
let i = 1
console.log(++i + ++i + i++ + i++ + ++i)
</script>
</body>
比较运算符

两个数据之间的比较
通过比较运算符 将会得到一个布尔类型的数据 true/false
<body>
<script>
// 通过比较运算符 将会得到一个布尔类型的数据
let num1 = 100
let num2 = 200
console.log(num1 > num2)//num1是否大于num2--->false
</script>
</body>
<body>
<script>
// 通过比较运算符 将会得到一个布尔类型的数据
let num1 = '200'
let num2 = 200
console.log(num1 > num2)//num1是否大于num2--->false
console.log(num1 <= num2)//num1是否小于等于num2--->true
console.log(num1 == num2)//num1是否等于num2--->true两个==判断的是值
console.log(num1 === num2)//num1是否全等于num2--->false三个===判断的是类型和值
// 总结: =
// 1个等号: 赋值
// 2个等号:·只比较值, 不严格
// 3个等号:·比较值和类型, 严格
console.log(num1 !== num2)//num1是否 不全等于 num2--->true
</script>
</body>
字符串的比较

<body>
<script>
// 字符串间的比较:比较的是每个字符的ascII码 从左往右挨个字符进行对比
let str1 = 'aac' // 97
let str2 = 'abf' // 98
console.log(str1 > str2)//false
</script>
</body>
NaN不等于任何值 包括他自身
怎样判断一个值是不是NaN?
不等于自身的值false 为NaN
let tem='aa'-9
comsole.log(temp===temp)//false temp是否全等于自己
comsole.log(temp!==temp)//true temp是否 不全等于自己
尽量不要比较小数
小数的运算存在精度的问题 0.1+0.2---->0.300000004
如何解决 将一个小数乘上一个数-->整数 得到结果之后 再除回来 0.1*10+0.2*10-->3/10
<script>
let num1 = 0.1
let num2 = 0.2
//计算机在进行小数运算时,有时候会出现精度缺失的问题
//let result = num1 + num2 // 0.3
let result = (num1 * 10 + num2 * 10) / 10//解决 先变整数 再还原
console.log(result)
console.log(result === 0.3)//false
</script>
总结

逻辑运算符

&& 与 (并且)

有假则假
|| 或 (或者)
有真则真
! 非 ( 取反)
真变假假变真
逻辑运算符的练习

<body>
<script>
// 用户输入一个数字判断是4的倍数, 且不是100的倍数
let num = prompt('请输入一个数字:')
// num % 4 === 0//取余是第一步操作,之后要和0进行比较 true/false
// num%100!==0//判断这个数是否 不是 100的倍数
let result1 = (num % 4 === 0)
let result2 = (num % 100 !== 0)
console.log(result1 && result2)
</script>
</body>
