js运算符

1. 四则运算±*/%

取模(取余数),开发中经常用于作为某个数字是否被整除。

求%应用场景:

  • 发牌案例
  • 倒计时效果
  • 查找水仙花数(一个三位数,每一位上数的立方和等于它本身)
  • 查找回文(正读和倒读是一样的 1221)
let a = 55 - 60 + 20;
let b = 12;
let c = 13;
let d = "12";
//比较> < >= <= 1=(等价于-不判断类型) !==(等价===判断类型的)
console.log(b > c); //false
console.log(b < c); //true
console.log(b != c); //true1og
console.log(b != d); //false
console.log(b !== d); //true

js 小数在某些情况下,显示的是一个无限接近的数。类似:switch语句中case后面的值不能是小数。

console.log(0.1 + 0.2); //0.30000000000000004

1.1. 练习

弹框录入一个 3 位数,求每一位上的数相加的和。

  • 解决方法一

    //录入数据
    let num = prompt("请输一个三位数");
    
    //求每一位上的数
    let ge = num % 10;
    let shi = parseInt(num / 10) % 10;
    let bai = parseInt(num / 100) % 10;
    
    console.log("每一位上的数之和是:" + (ge + shi + bai));
    
  • 解决方法二

    let num = prompt("请输入一个3位数");
    let sum = 0;
    sum += parseInt(num[0]);
    sum += parseInt(num[1]);
    sum += parseInt(num[2]);
    console.log(sum);
    

2. 自增自减运算符

在自身的基础上加 1 或者减 1,语法:变量++ 或者 变量--

++在前,先自增再运算。

++在后,先运算再自增。

2.1. 练习

//计算最终a的值和b的值
var a = 5;
var b = ++a + a-- + a++;

console.log(a, b); //6,17

3. 比较运算符

结果是 boolean 类型。

运算符作用
>左边是否大于右边
<左边是否小于右边
>=左边是否大于或等于右边
<=左边是否小于或等于右边
===左右两边是否类型都相等(重点)
==左右两边是否相等
!=左右值不相等
!==左右两边是否不全等

了解:

NaN 比较 六亲不认 它的比较没有意义。

console.log(NaN === NaN); //false
console.log(NaN !== NaN); //true

4. 逻辑运算

与:&&当且仅当两边都为 true 才返回 true,同真为真,一假为假。

或:||一边为 true,返回 true,一真为真,同假为假。

非:!取反,真变假,假变真。

let d = "12";
let e = 0;
console.log(e && d); //0
console.log(e || d); //12
console.log(!e); //true

4.1. 应用

择偶标准 年龄在 20-30 岁之间。

let age = 50;
console.log(20 < age < 30); //true 只判断前面的,后面忽略
console.log(20 < age && age < 30); //false

判断闰年

弹框录入一个年份,判断这个年份是否是闰年

  1. 能被 4 整除,不能被 100 整除
  2. 能被 400 整除
let year = +prompt("请输入一个年份");
let flag = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
//   判断
if (flag) {
  alert(year + "年是闰年");
} else {
  alert(year + "年不是闰年");
}

4.2. 逻辑与短路问题

如果左边表达式不成立(已经确定了整个表达式是 false),右边就没有必要执行,就发生了短路,可以提高效率。

let num1 = 3;
let num2 = 4;
console.log(num1++ < 2 && num2++ > 3); //false
console.log(num1); //4
console.log(num2); //4  num2并没有参与运算

4.3. 逻辑或短路问题

如果左边表达式成立(已经确定了整个表达式是 true),右边就没有必要执行,就发生了短路,可以提高效率。

let num3 = 3;
let num4 = 4;
console.log(num3++ > 2 || num4++ > 3); //true
console.log(num3); //4
console.log(num4); //4  num4并没有参与运算

5. 基本赋值元素符

=赋值,=== 区别:

let num = 20;
console.log(num == 100); //false 比较运算符
console.log((num = 100)); //100 赋值运算符 最终结果是100(将100赋给num,然后再打印num的值)

6. 复合赋值运算符

+= 累加

-= 累减

*= 累乘

/= 累除

%=累取余

7. 三元表达式 a?b:c*

有三个元素参与元素。语法:表达式/变量a ? 表达式/变量b : 表达式/变量c

a 如果为 true,返回 b,否则返回 c

//使用三元求三个数的最大值
let n1 = 10;
let n2 = 30;
let n3 = 20;

//先求n1和n2最大值
let temp = n1 > n2 ? n1 : n2;
//再和n3进行比较
let res = n3 > temp ? n3 : temp;
console.log(res);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值