运算符系列加语句

243 阅读1分钟

运算符

1.算术运算符

加减乘除都是常规的

就是 %求余数有点难 个人理解:能整除就是零,不能整除就是相当于减然后余剩下的,如果数值比自身还大就剩余本身

 <script>
      // 算术运算符 加减乘除 求余 取模

      // let num1 = 10;
      // let num2 = 2;

      // // 加法
      // console.log(num1 + num2); // 12
      // // 减法
      // console.log(num1 - num2); // 8
      // // 乘法
      // console.log(num1 * num2); // 20
      // // 除法运算
      // console.log(num1 / num2); // 5

      // // 求余=取模   获得整数
      // // 除法运算 获取除法元素后 剩下余数
      // console.log(10 % 5);
      // console.log(10 % 3);

      // 如果一行内 出现了多个算术运算符
      // 先乘除后加减 如果有括号 就先算括号
      console.log(1 + 1 * 2);
      console.log((1 + 1) * 2);

      // 如果一行内 确实有很多个 算术运算符 都建议按照自己的想法来加括号
      console.log(1 + (2 * 3 + 3) / 4 + 4 * 4 + 5);
    </script>

2.圆的面积

圆的面积.png

3.赋值运算符:+=: 相当于 变量= 变量+ 值

 <script>
        // 总结:简单来说就是代码的简写,前提左边必须是一个变量
        let num = 10
        num += 1
        // num -= 2
        // num *= 4
        // num *= 5
        // num %=2
        console.log(num);
    </script>

4.一元运算符

1.对单变量进行操作

2.写在变量后面:先使用再自增:i++

3.写在变量前面,是先自增再使用:++i

  <script>
        // 一元运算符,如果只有自身,++在前面或者后面都没有什么区别,如果参与运算区别就出来了
        let i = 1
        // console.log(++i);  输出结果为2
        // console.log(i++);   输出结果为2
        // 参与运算的情况下有区别
        // console.log(++i +2);   输出结果为4
        因为前置是先自己加了再参与运算,后置式先运算再自加,所以log一下只是显示的i+2的结果,如果再log一下i会发现此时的i已经变2// console.log(i++ +1);    输出结果为3
    </script>
    let i=5
        console.log(--i);  输出结果为4
        console.log(i--);   输出结果还是为4(后置是先输出再增或者减)
        console.log(i);   这时候才是3

console.log(i++ + ++i + i);  输出结果为7
分析:1        3       3
    (i++) + (++i) +(i)


一元运算符.png

5.比较运算符

==比较值是否相等

===比较值和数据是否相等

!=不等于值

!==不等于值加数据所有

 <script>
      //  比较后的结果 其实是一个 bool 类型 true , false

      console.log(3 > 10); // 打印什么结果 false
      console.log(3 > 1); //  true

      console.log(3 < 10); //  true
      console.log(3 < 3); // false

      console.log(3 <= 3); // 小于或者等于 3

      // 判断是否相等 要用 两个 "="  号
      console.log(3 == 2); // false

      // let num = 4;
      // num = 5; // 只写一个等于号 赋值
      // console.log(num == 5); // 两个等于号才是判断

      // 判断 3 不等于 5
      // console.log(3!=5); // !=  不等于

      // 拿数字和字符串比较
      console.log(3 == '3'); // true  因为两个 == 只会判断值 而不会判断类型

      console.log(3 === '3'); //  flase  3个等于号  既要判断类型 也要判断值

      console.log(3 === 3); // true

      console.log(3 != 3); // false
      console.log(3 != '3'); // false

      console.log(3 !== '3'); // true

      console.log('============');

      //  比较 一般都是对数字做比较
      //  对于字符串做比较 更多是判断两者是否相等
      // console.log('A' === 'B');

      // 如果拿字符串去 大小的比较,判断的标准是
      // 先把字符串 拿去做 转数字
      // 转完了数字之后, 才根据数字做大小比较!

      console.log('A' > 'B'); // 81 > 82   了解即可 !!!
      console.log('斌斌' > '万旺');

      // NaN = A    ||    NaN = B
      console.log(NaN === NaN); // false 不能以为 两者代码一样就相等 (不是一个数字    )

      // js 处理小数 有问题 后面会补充 精度的问题!!
      console.log(0.4 + 0.2 === 0.6);

      // 类型转换
      // console.log(4 > '3');
      console.log(4 > Number('3'));
    </script>

比较运算符.png

比较运算符1.png

6.逻辑运算符

就是给两个条件判断,$$就是与 有一个条件不满足都会显示为false

​ || 就是或 相反 有一个条件满足都是true

​ !就是非 不管你结果是true还是false 一但加上得到的结果都为相反的

<script>
        /*
    有个数据  大于5 而且 小于 10
     */
        let num = 6;

        console.log(num > 5 && num < 10); // true

        console.log(num > 5 && num < 4); // 一假则假  false

        // 我有钱包    要不 等于 1块钱  要不就 等于  0

        let money = 10;
        // 一真则真
        console.log(money === 1 || money === 0); // 只要满足了随便一个条件 那么这个钱包就是我的

        let gender = true; // true 男生

        console.log(gender); // true 
        console.log((!gender));  // 取反了 false 
    </script>

逻辑运算符.png

7.短路运算符

1.$$:判断条件有一个错都会停下来

2.||:判断条件有错的还会往下判断,直至最后一个

3.这几个转为布尔类型都会显示为false:undefined null 0 空字符串 false NaN

 <script>
        // 一假则假  && 左边为false 右边就不再去执行
        // console.log(2 > 10 && 1 < 3 && 3 > 1 && 9 > 5 && 5 < 10 && 8 > 2);

        // 工作中常见的写法
        // 如果今天还下雨 那我就去吃海鲜
        //   不下雨 不去吃海鲜了
        // let rain = false;

        // 左边成立了 右边才会去执行
        // rain && console.log('下雨 去吃海鲜');

        // 逻辑或 一真则真
        // 只要 || 左边 成立了为true,右边就不再去执行
        // console.log(100 > 3 || 2 > 6 || 9 > 10 || 10 > 11 || 13 > 20);

        // 工作中 常用的技巧
        // 如果下雨,那么我就不玩了
        // let rain = false;
        // rain || console.log('去玩');

        // 两个短路运算  逻辑或 和 逻辑与
        //   工作中的语法  逻辑与来说   满足了 就去执行
        //   工作中的语法  逻辑或来说   不满足了 就去执行

        // 逻辑运算的最终结果

        // let result = 1 > 0 && 9 > 10; // false

        // 那段代码是最后执行即可
        // let result = 1 > 0 && 30;
        // let result = 1 > 0 && false && 30;
        // console.log(result);


        // 我们的 undefined  如果 转换成  布尔类型 其实是个false
        // 哪一些值转成 布尔类型后 false 
        // undefined null 0 空字符串 false  NaN 
        console.log(Boolean(undefined));
        console.log(Boolean(null));
        console.log(Boolean(0));
        console.log(Boolean(""));
        console.log(Boolean(false));
        console.log(Boolean(NaN));
        console.log(Boolean(''));
    </script>

8.运算符优先级

运算优先级.png

9.三元运算符

  <script>
      /* 
      条件 ?  满足条件执行的代码 : 不满足条件 执行的代码
       */

      //  if 方式 写一写
      // let num1 = 10;
      // let num2 = 9;

      // if (num1 > num2) {
      //   // console.log('num1 要大于 num2 ');
      //   console.log(num1);
      // } else {
      //   // console.log('num2 要大于或者等于 num1 ');
      //   console.log(num2);
      // }

      // 三元表达式
      // num1 > num2 ? console.log(num1) : console.log(num2);

      let num1 = 10;
      let num2 = 99;

      let num3; // 就要等于 num1 和 num2 中 大的值

      num3 = ( (num1 > num2) ? num1 : num2); 

      console.log(num3);
    </script>
 
自己做的三元运算符理解
 <script>
        let num1 = 10
        let num2 = 50
        // 三元运算符一般是用来取值:判断条件,num3取num1或者num2的值,谁大取谁
        num3 = num1 > num2 ? nun1 : num2
        document.write(num3)
    </script>

1648370961260.png

语句

1648368131689.png

1.if-单分支语句:if(bool值做为条件){操作}

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //条件: 颜值99恭喜成为我女朋友
        let a = +prompt('请输入你的颜值')
        // 判断条件
        if (a > 99) {
            alert('恭喜成为我女朋友')
        }
    </script>
</body>

</html>

2.if-双分支语句:if(条件){}else{}

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 需求:
        条件
        存款大于1000万成为有钱人
            存款低于1000万成为好人 -->
    <script>
        // 判断成功执行一,判断失败执行else
        let b = +prompt('请输入你的存款')
        if (b > 1000) {
            alert('恭喜成为有钱人')
        } else {
            alert('你是一个好人')
        }
    </script>
</body>

</html>

3.if-多分支语句:if(条件){}else if(条件){} ......else{}

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 星期1北京
        // 星期2上海
        // 星期3广州
        // 星期4深圳
        // 星期5杭州
        // 星期6.7家里蹲
        let day = +prompt('请输入星期几')
        // 多语句判断:if为开头  中间可以无数个判断   最后else收尾(超过中间范围的值都会执行else); 执行顺序从上到下
        if (day === 1) {
            console.log("北京");
        }
        else if (day === 2) {

            console.log("上海");
        }
        else if (day === 3) {

            console.log("广州");
        }
        else if (day === 4) {

            console.log("深圳");
        }
        else if (day === 5) {

            console.log("杭州");
        }
        else {

            console.log("家里蹲");
        }
    </script>
</body>

</html>