if语句介绍、“==”和“===”的区别

2019-07-16  本文已影响0人  冰冰凉凉的

if条件语句

JavaScript的威力在于可以根据人类给出的条件作出相应的决策判断,JavaScript使用条件语句来做判断。
条件语句(conditional statement)通过判断表达式的值来决定执行还是跳过某些语句,包括if语句和switch语句。

if语句

最常见的就是if语句。if语句的条件只能放在圆括号内,条件的结果永远是一个布尔值,即只能是true或flase。花括号中的语句不管有多少条,只有在条件的结果为true时才执行。

if (expression) {
    statements;
}

if语句根据表达式的值改变程序流程。当expression的值为true时执行在其后的代码块,当expression的值为false时执行else后的代码块。

if (expression){
  statements;
} else {
  statements;
}

javascript中if/else匹配规则是:else总是和最近的if匹配

if (i == j){
  if(j == k) {
    console.log( 'i == k');
  else {
    console.log('i != j'); // error
}

if(xxx){

}

// 题目1:如下代码输出什么?
if ("hello") {
    console.log("hello")
}

// 题目2:如下代码输出什么?
if ("") {
    console.log('empty')
}

// 题目3:如下代码输出什么?
if (" ") {
    console.log('blank')
}

// 题目4:如下代码输出什么?
if ([0]) {
    console.log('array')
}

// 题目5:如下代码输出什么?
if('0.00'){
  console.log('0.00')
}

括号里的表达式,会强制转为布尔值

原理

类型 结果
undefined flase
null false
Boolean 直接判断
number +0, −0, 或者 NaN 为 false, 其他为 true
string 空字符串为 false,其他都为 true
Object true

相等 ==

x == y

x y 结果
null undefined true
Number String x==toNumber(y)
Boolean (any) toNumber(x)==y
Object String or Number toPrimitive(x)==y
otherwise otherwise false

toNumber

类型 结果
undefined NaN
Null 0
Boolean true -> 1,flase -> 0
String "abc" -> NaN, "123" -> 123

toPrimitive
对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果

上一篇 下一篇

猜你喜欢

热点阅读