JS基础(2) 运算符和表达式 流程控制

运算符和表达式

浮点数

会存在精度问题,建议不要直接使用浮点数参与运算。

 console.log(0.1+0.2);//0.30000000000000004
        console.log(0.07*100);//7.000000000000001
        //不能直接判断两个浮点数是否相等
        let num = 0.1+0.3;
        console.log(num == 0.3);//false

关于判断一个数是否是整数:使用取余符号来判断:%;

自增自减运算符:++,--

前置自增和后置自增如果单独使用 效果的是一样的,如果的出现在表达式,那么效果就不一样了,自减亦然。

e++:这是一个表达式 ,表达式必须会有一个值,表达式结束之后才会执行++;

例:

let e =10;

let f = e++ + ++e;

首先执行e++,e++是一个表达式,表达式必须返回一个值,所以执行完这个表达式后是这样:10+ ++e,此时执行完表达式后e++才能自增,所以说e=11,那么整个表达式就是这样:10 + ++11;接下来执行后面++e这个表达式,先自增后取值,那么就是12,所以最终就是 10+12=22;

比较运算符

<=, >=:小于等于 ,大于等于

==:js中==默认转换数据类型,会把字符类型转换成数字

18==‘18’//true,只要求值相等,数据类型可以不相等

=== :全等于,18==‘18’//false,值类型都得相等。

逻辑运算符

&&:逻辑与 ,两边为true才为true,反之都为false;

例:3>5 && 3>2; //false;

|| :逻辑或 ,两边为false才为false,反之都为true;

例:3>5 || 3>2; //true;

! :逻辑非, !true;取相反,不是false,就是true;

例:!3>5; //true;

 <script>
        let num = 9;
        let str = "为共产主义奋斗终身";
​
        alert(`num>5 && str.length >= num:${num>5 && str.length >= num}`);//true
        alert(`num<5 && str.length >= num:${num<5 && str.length >= num}`);//false
        alert(`!(num<10):${!(num<10)}`);//false
        alert('!num:'+!num);//true
        alert(`!num<10:${!num<10}`);//true :我猜想应该是这样:!num=false 然后false < 10 = true;(false 与 数字比较可能为true 但是false不能与数字进行比较,编译器会报错);
        alert(!(num<10 || str.length == num))//false
​
        //逻辑运算符中有一个特殊情况 短路运算,也就是说左边表达式可以确定全部表达式的值 那么逻辑运算符的右边就不会进行运算;
        console.log(123&&456);//表达式1为真 结果为真 则返回表达式2
        console.log(0 && 456);//表达式1为假 则返回表达式1
        console.log(123&&num++);//9 num = 10;
        console.log(0 && num++);//0 num = 10;
        alert(num);
        //反之||逻辑或亦然
        //逻辑或 表达式1为真 返回表达式1 ; 表达式1为假 结果为真 返回表达式2
​
    </script>

赋值运算符

= :自左向右;

+= , -= , *= , /= , %= ;

例 : num+=5;--->num = num+5;

逗号运算符

(1,2,3)的值为:3;(自左向右,取最后一个值)

运算符优先级

小括号()> 一元运算符(++,--,!) > 算数运算符(加减乘除取余) > 关系运算符 > 相等运算符 (== ,!== ..) > 逻辑运算符 (&&,||) > 赋值运算符 > 逗号运算符(,)

流程控制

顺序流程控制

一条一条按顺序执行

分支流程控制

根据条件的不同,选择执行语句的不同;

if—else if —else..

三元运算符:条件表达式 ? 表达式1 :表达式2;(条件表达式成立就返回表达式1,不成立返回表达式2)

switch:

 <script>
        let score = prompt('请输入你的成绩');
        let flag = 1;
        while(flag !=0){
        switch(parseInt(score/10)){
            case 10 :alert(`${score}分牛`); flag = 0;break;
            case 9 :alert(`${score}分顶尖`); flag = 0;break;
            case 8 :alert(`${score}分很认真了`);flag = 0; break;
            case 7 :alert(`${score}分可以还不错`); flag = 0;break;
            case 6 :alert(`${score}分还行吧`); flag = 0;break;
            case 5 :
            case 4 :
            case 3 :
            case 2 :
            case 1 :
            case 0 :alert(`${score}分药努力哦`); flag = 0;break;
            default : alert('输入不满足格式,再试一次吧'); break;
        }
        if(flag == 1){score = prompt('请输入你的成绩');12}
        }
    </script>

循坏控制流程

for循环(重点)

例: for(let i = 0;i<100;I++){...}

while循环

例:let i = 0;

while(i<100){ ...i++}

do...while循环

例:do{...i++} while(i<100);

continue

结束当前循环,进入下一次循环。

break

跳出当前循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值