美文网首页饥人谷技术博客
js中关于if(xx)和 a==b

js中关于if(xx)和 a==b

作者: 平头弗洛伊德 | 来源:发表于2018-02-11 16:51 被阅读48次

if判断

在js中一般不使用if(变量)的方式使用if条件语句,容易产生你所不希望的结果,
先来看看如下的代码

if ("hello") {
    console.log("hello")
}//1
if ("") {
    console.log('empty')
}//2
if (" ") {
    console.log('blank')
}//3

看了上面三个if语句,你能准确得出结果吗?
来看第一个,if('hello')if(" ")和if从直观上应该是输出结果,if("")应该是不输出结果的,经过测试的却如此。那么再看下面的代码

if ([0]) {
    console.log('array')
}

if('0.00'){
  console.log('0.00')
}

这里就比较模糊了,按理说还是输出结果的,但是没有特别确定,经过测试都输除了结果。

那么上面的if是按照什么原理的呢?
js是把括号里面的变量转化成布尔类型的变量然后进行判断的。

类型 结果
Undefined false
Null false
Boolean 直接判断
String 除了空字符串为false,其他为true
Number 除了0,-0,+0,Nan其他为 true
Object true

记住这些以后看到if(变量)就可以轻松的得到结果了,当然最好还是避免使用判断语句中直接使用变量的情况。

相等运算符 ==

下面来看看不严格相等符号
==在比较相同类型的数据时,和===是一样的结果。不同的数据类型===会直接返回false,而==则不一样,有如下的规则

  • 原始类型的值
    原始类型的数据会转换成数值类型再进行比较。
  • 对象与原始类型值比较
    对象(这里指广义的对象,包括数组和函数)与原始类型的值比较时,对象转化成原始类型的值,再进行比较。
  • undefined 和 null
    undefined和null与其他类型的值比较时,结果都为false,它们互相比较时结果为true。

相等运算符的缺点:
相等运算符隐藏的类型转换,会带来一些违反直觉的结果。

0 == ''             // true
0 == '0'            // true

2 == true           // false
2 == false          // false

false == 'false'    // false
false == '0'        // true

false == undefined  // false
false == null       // false
null == undefined   // true

' \t\r\n ' == 0     // true

所以日常最好使用严格相等运算符===。

相关文章

  • js中关于if(xx)和 a==b

    if判断 在js中一般不使用if(变量)的方式使用if条件语句,容易产生你所不希望的结果,先来看看如下的代码 看了...

  • 2019-04-07

    JS中关于if(xx)与a==b的判断 if(xx)的判断 1.if(number) 当if中是number为+0...

  • 关于JS中if(xx)和 a==b的判断

    1. if结构 if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。 基本形式 注意点:对于i...

  • JS中关于if(xx)和 a==b的判断

    一、JS中关于if(xxx)的判断: js是如何处理的?我们先来看几道测试题 以上题目代码的输出结果为: 题目1的...

  • js中if(xx)和 a==b 小结

    hello注: "hello"为String,被转换为True等同于 if (true) {console.lo...

  • JS中关于if(xx)和 a==b的类型转换

    if(XX)——不推荐该用法 语法:if(condition){statement} 以上condition可以是...

  • JavaScript 中关于 if(xx) 和 a==b

    if(xx)的判断 对于括号里的表达式,会被强制转换为布尔类型原理: 题目: a==b的判断 相等运算符用来比较相...

  • 2019-05-17

    关于if(xx)和 a==b的判断 if(xx)的判断 括号中的xx会被强制转换为布尔类型,true 或者 fal...

  • 2018-03-14

    if(xx)和a==b的判断 在JS中,if语句是最常见的编程语句,语法为if(condition){//true...

  • 关于if(xx)与a==b的判断

    关于if(xx)与a==b的判断 简单介绍下if(xx)和a==b的相关判断 if(xx)的判断 1.if(num...

网友评论

    本文标题:js中关于if(xx)和 a==b

    本文链接:https://www.haomeiwen.com/subject/lvtltftx.html