JavaScript基础学习(第二天)

139 阅读4分钟

jvaascript学习第二天

1总结
javascript中运算符
运算符(operator)也被称作操作符,是用于实现赋值,比较或者执行算术等等功能的符号。
(1).算术运算符
+ - * / %
++ --  
var num = 10;
num++ + 10 = 20; 优先级冲突!!! 

var i; i = num = 10; num = num+1; i + 10 = 20

(2)关系运算符
>= <= == != === !==

(3)逻辑运算符
&& || !
 逻辑运算符两边都是 true或者false
    true && true  = true
    false && true = false
    false && false = false

    true || true = true;
    false || true = true;
    false || false = false;

逻辑运算符两边不是true或者false
    如果第一个值为true, 就是表达式2
    110 && 120 = 120
    0 && 120 = 0

    110 || 120 = 110  110已经算是true,如果第一值为true,则就是表达式1
    0 || 0 || 0 || 120 = 120   如果第一值为false

(4)赋值运算符
*=
+=
-=
/=
%=

2内容
1)算术运算符(加减乘除,取余)
 console.log(1 + 1);
 console.log(1 - 1);
 console.log(1 * 1);
 console.log(1 / 1);
 // 1.% 取余
 console.log(4 % 2); // 0
 console.log(5 % 2); // 1
 console.log(3 % 5); // 3
 2)表达式
   // 表达式 是由数字、运算符、变量等能够求得数值
        console.log(1+1)
        var num = 1 + 1;
3)递增递减运算符
        var num = 1;
        num  = num + 1;
        num = num + 1;

        var age = 10;
        age++; // age = age + 1; // 先计算
        console.log(age) // 11
        // 
        ++age;
        console.log(age) // 12
         var age = 30;
        age--; // age = age - 1;
        console.log(age)

        --age;
        console.log(age)
4)比较运算符
        console.log(3 >= 5); // 布尔值true
        console.log(10 >= 5); // true

        // >= <= > < ==(等于) !=(不等于) === !==
        console.log(3 == 5); // false
        console.log("林志玲" == "凤姐")// false
        console.log(18 == 18); //
        console.log(18 ==  "18")// true 前面是一个数字,后面是字符串!!!
        console.log(15 != 18)// false


        //  === 三个等于号,不仅要判断数值,而且要判断数据类型!!!
        console.log(18 === "18") // false

        console.log(18 !== "18") // 18 === "18"(!false)=>true
5)逻辑运算符(与或非)
         // && || !
        // 1.&& 并且 and
        // 如果想要整体打印出true,&& 两边都要为true,如果有一边为false,那么打印出来就是false
        console.log(5 > 3 && 10 > 5) // true
        console.log(3 < 5 && 3 > 2); // true

        // 2. || 或者 or , 如果想要整体打印出true,|| 两边只要有一个为true就打印true,如果两个都为false,
        // false
        console.log(3 > 5 || 3 > 6); //false

        console.log(3 > 5 || 3 < 10); // true

        // 3. ! 非 not
        console.log(!(3 > 5));
6)逻辑中断
        // 1.true && false
        // 2. 数字 && 数字 数字 && 字符串
        // 3. 数字 || 数字

        // 1)逻辑与 如果表达式1结果为真,则返回表达式2
        // 如果表达式1结果为假,则返回表达式1
        console.log(110 && 120); // 120
        console.log(0 && 456); // 0

        console.log(0 && 1 + 2 && 456 * 56789); // 0

        // 2)逻辑或的短路运算
        // 如果表达式1为真,则直接返回表达式1
        // 如果表达式1为假,则返回表达式2
        console.log(123 || 456)//123
        console.log(123 || 456 || 456 + 789)//123
        console.log(0 || 456 || 456 + 789); //456
7)运算符优先级
        // 算术运算符 、 比较运算、逻辑、赋值
        // 1 -- 括号()
        // 2.一元运算符  ++ -- !
        // 3.算术运算符 
        // 4.关系运算符 > < =
        // 5.相等运算符 == != === !==
        // 6.逻辑运算符 && || 先 && 后 ||
        // 7.赋值 =
8)按位运算符
        // 1.左移 右移
        // 2.& | 
        var num1 = 1;
        // << 左移两位
        var num2 = num1 << 2;
        var num3 = num2 >> 1;
        console.log(num2)
        console.log(num3)

        var num4 = 10;
        // 00001010
        var num5 = 20;
        // 00010100 
        // 00011110
        // & 的意思就是如果都为1则为1,如果有一个不为1,则为0
        var num6 = num4 | num5;
        console.log(num6)
9)if语句
  var age = prompt("请输入你的年龄");
        if(age >= 18) {
            console.log("带你去KTV唱一首好听的歌曲")
        }else {
            console.log("滚回家学习去!!!")
        }
10)else if语句
  if(条件表达式1) {
            console.log()
        }else if(条件表达式2) {
            console.log("")
        }else if(条件表达式3) {
            console.log("...")
        }else {
            // 
        }
11)三元运算符
 // 语法结构
        // 表达式1 ? 表达式2: 表达式3
        // 表达式1如果为true, 则返回表达式2,否则返回表达式3
        var num = 10;
        var num2 = num >= 20 ? 10: num;
        console.log(num2)
12)switch语句
    // switch 语法不一样,执行性能更高
        var str = 10;
        // str和case 后面的数值不仅要一样,而且类型也要一样!!!
        // ===
        switch (str) {
            case "苹果":
                console.log("苹果7块一斤!!")
                // break 断开!!! 每一个分支都要加上break
                break;
            case "香蕉":
                console.log("香蕉10块钱一斤!!!")
                break;
            case "口罩":
                console.log("口罩7块一个!!!!");
                break;
            case '10': 
                console.log("这是一个数字");
                break;
            default:
                console.log("没有匹配到任何一个结果")
                break;
        }
13)案例
 // 非常重要的面试题!!!
        // 在编程语言里面进行计算,是要先将0.1 二进制 0.2 二进制
        // 二进制 + 二进制 = 二进制 => 十进制!!!


        console.log(0.1 + 0.2); // 0.30000000000000004
        var num1 = 0.1;
        var num2 = 0.2;
        var str1 = num1.toString(2)
        // console.log(str1)  // 0.0001100110011001100110011001100110011001100110011001101
        var str2 = num2.toString(2);
        // console.log(str2) // 0.001100110011001100110011001100110011001100110011001101

        // 在javascript中最大值的存储位数为53位,
        // 需要将多余的位数进行截取,截取之后才能进行二进制相加
        // 溢出!!!
        // 小数和二进制的转换  2^   10^-x
        // 0.30000000000000004
        console.log(str1.length)//57位
        console.log(str2.length)//56位