JavaScript第二天

1:余下的数不可能大于被除的数

例如:

78%3	//结果绝对不可能大于3也不能等于3,如果等于3就可以再上一位

2:运算符的运算顺序会先算乘性的(*/%)再算加性的(+-)

运算符分类

运算符大致可分为

  • 数学运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符
  • 按位运算符
  • 条件运算符

隐式转换

在js中就算不用parseInt字符串也可以和数字进行计算,这是因为中间字符串会自动进行一个隐式转换,把字符串转成数字进行计算,但是并没有parseint的效果

例如:

alert(3 *  "8");		//他一样会输出24,因为隐式转换把8这个字符串转成了数字
alert(3 * "8个");		//但是这样就可以输出了,因为隐式转换并没有parseint的功能,没有办法智能取整

在运算中不纯的字符串和undefined无法进行隐式转换,会输出NaN

无论哪种运算+-*/%只要undefined参与了结果都是NaN

关系运算符

> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
=== 全等于
!= 不等于
!== 不全等于

//==和===的区别就是,==会默认帮你进行隐式转换,而===会连类型也进行比较并且不做隐式转换
alert(8=="8")//true
alert(8==="8")//false
  • 表示相等会帮你进行隐式转换,而=表示全等不会转换

    !=是的反面,等于true的,!=就是等于false

    !=的反面,=等于ture的时候!就等于false

  • 关系运算符不可以连续使用绝对会出问题

    例如

    alert(3>2>1);//如果这样连续使用关系运算符,程序就会出问题
    //如果需要连续使用关系运算符,就要借助逻辑运算符
    

逻辑运算符

&& 与 并且

|| 或 或者

! 非 反之

//非运算符是,有真是假,有假是真
alert(!true);//结果就是flase
alert(!flase);//结果就是true

逻辑运算符的运算顺序是,非,与,或

布尔值

在隐式转换中true会被转换为1,false会被转换成0

短路算法

  • 逻辑与

    如果计算一个且运算的时候,比如a && b,a如果就是一个false,那么就不会管b是什么,直接输出false就行了,等于说直接输出a。

    如果计算一个且运算的时候,比如 a && b ,a如果就是一个true,那么也不用管b是什么,直接把b当做结果输出就行了。

    例如:

    alert (true&&8);//8
    alert(false&&8);//false
    
    1false && 8   //false  因为计算机发现,且运算a已经是false了,直接输出false
    2null && 8   //null  因为计算机发现,且运算a已经是false性的了,直接扔出来null
    3true && 13   //13   因为计算机发现,且运算a是true,所以总结果就是看b,直接扔出b
    412 && 13    //13   因为计算机发现,12当做true,所以总结果看b,直接扔出b
    513 && 12    //12   因为计算机发现,13当做true,所以总结果看b,直接扔出b
    6undefined && 哈哈  //undefined  不报错,因为a已经是负性的了,所以直接扔出a,哈哈不管
    7哈哈 && undefined  //报错
    true && NaN    //NaN  扔后面
    
    也就是说,本质上计算机进行a&&b运算的时候,不是在进行逻辑分析,计算机就想着要么扔a,要么扔b。如果a是负性的,那么直接扔出a;如果a是正性的,直接扔出b。
    						—— 短路语法。 要么a被短路,要么b被短路。	
    

    负性的:false,nall,0,NaN,空字符串(""),undefined

    ​ 除了以上的其他的全是正性的

  • 逻辑或

    ​ || 逻辑或的短路也是类似的,a||b

    ​ 计算机发现a是真,那么扔a;如果a是假,那么扔b

    10 || 18   //18 前面假,扔后面
    218 || 0   //18 前面真,扔前面
    3undefined || NaN    //NaN  前面假,扔后面
    NaN || undefined    //undefined 前面假,扔后面
    

    总结一下短路语法:

    a&&b, 计算机要么执行a要么执行b。a真执行b,a假执行a;

    a||b, 计算机要么执行a要么执行b。a真执行a,a假执行b。

    赋值运算符

    = 赋值

    += 简便写法 例如:a+=1 等于 a=a+1

    -= 简便写法 例如:a-=1 等于 a=a-1

    = 简便写法 例如:a"**"=1等于a=a""1

    /= 简便写法 例如:a/=1等于a=a/1

    %= 简便写法 例如:a%=1等于a=a%1

    ++ 简便写法 例如:a++等于a=a+1

    a++先用a的原值再+1,++a先+1再用a的新值

    -- 简便写法 例如:a--等于a=a-1

    ** 赋值运算的参与者是变量**

运算符的运算顺序

​ ++ == !贴身的 >>> 数学 >>>比较 >>> 逻辑 >>>赋值

分支语句

posted @ 2019-12-03 15:19  张贺zhanghe  阅读(50)  评论(0)    收藏  举报