JS判断,比较及逻辑运算

2020-03-11  本文已影响0人  是小张啊啊
判断语句 比较运算

在js中,凡是运算都会有返回值
在比较运算中,返回值是true或false 即布尔值

var a = 4,
    b = 10,
    c = 4,
    d = "4";
console.log(a == d);//当采用 == 判断两个变量的“值”是否相等时,会有一个变量会做隐式转换,即不完全等于
console.log(a === d);//不仅值相等,数据类型也要相等,即完全等于,其执行效率更高!!!!
if 语句

在if的(条件判断)会产生隐式类型转换!

if(document.getElementById('box')){}
if("false"){}

不执行if语句,执行else语句的几种情况:
1.false
2.空字符串
3.0
4.null 空指针

if(null){
  alert('hello')
}
else{
  alert("no!")
}

5.undefined
6.NaN

var n;
var nan = n + 1;
console.log(typeof nan);//不是数的数
if(nan){
  alert('hello')
}
else{
  alert("no!")
}
三目运算

条件 ? 真语句:假语句;其优先级高于赋值运算
注意::对于很长的比较语句,最好不要用三目运算!!!

oBox.title == "zhaosi" ? oBox.title = "lisi" : oBox.title = "zhaosi";


//先执行三目运算   再赋值
oBox.title =       oBox.title == "zhaosi" ? "lisi" : "zhaosi";
 
var bool = true;
bool = bool ? false : true;
switch 语句

替代多个if else 语句相比较的语句
每一个case 的break 必须写,表示退出此次switch循环

switch(a){
  case 1:
    console.log(1);
    break;
case 2:
    console.log(2);
    break;
case 3:
    console.log(3);
    break;
case 4:
    console.log(4);
    break;
default:
    console.log("所有情况都不符合时,默认进入defaule(其他)");
    break;
}
字符串比较

会按照 ASCII码表顺序挨个比较

var a = "abc";
var b = "acd";
console.log(a>b);
逻辑运算

逻辑运算优先级:
!优先级很高
先&& 再||

var a = 5 && 0 && 6;//0是假,返回当前值,返回a = 0

var a = 5 && document>getElementByTagName('p') && 6;
//找不到getElementByTagName('p'),但是返回的是一个空的类数组,是真,所以 a = 6

var a = 5 && document>getElementById('box') && 6;
//找不到document>getElementById('box'),返回的是null,是假
//停止,返回当前值,所以a = null

|| 两侧遇到真停止,返回当前值,到头之后返回最后一个值

var b = 0 || 4 || 5;
//返回b = 4

var b = 1 || 2 && 5;
//&&优先级高于||,先运算2&&5,得到5,再运算1||5,遇到真就停止,1为真,所以返回b = 1

var b = " " || 2 && 0;
//返回0,优先运算 2&&0,得到0,再运算" " || 0," "和0都为假,返回最后一个值0

!取反运算,返回布尔值

var c = "hello";
c = !c;
//得到的是fasle
上一篇 下一篇

猜你喜欢

热点阅读