我是靠谱客的博主 完美钢笔,最近开发中收集的这篇文章主要介绍JavaScript布尔型数据与==运算符。 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


今天在蓝色中看到一篇文章,对js 中布尔型及==运算符进行了一番比较分析。

不看不知道,一看吓一跳,平时还真的没有注意到这么细节的东西:

所谓大牛与菜鸟,估计这是重要的区别之一了。

说到布尔型,估计不少人都知道JS中非0即为true,那么请您运行一下下面这两行代码:

复制代码
1  var  iTest = 2 ;
2  if (iTest)
3  {
4     alert( true );
5  }
6  if (iTest == true )
7  {
8     alert( true );
9  }
复制代码

 

你觉得答案是多少呢?

   答案是: true true

   ----对不起,其实答案是 true false,但我相信,上面才是不少人以目中的第一答案。

  为了让大家,也为了让我能记住,或者是知道有这么一些我们容易忽略的东西,我将记录一下这些区别或细节:

  一、单纯的布尔值运行,的确是非0为true,如:
 

复制代码
 1     var  i1 = 1 ;
 2     var  i2 =- 1 ;
 3     var  i3 = 0 ;
 4    alert(Boolean(i1));  // true
 5    alert(Boolean(i2));  // true
 6    alert(Boolean(i3));  // false
 7     if (i1){}   // true
 8     if (i2){}  // true
 9     if (i3){}  // false 
复制代码

 

   二、==运算符并不是简单的将非0的转为true,反之为false,反而是:

     1、If Type(x) is Boolean, return the result of the comparison ToNumber(x) == y.
          If Type(y) is Boolean, return the result of the comparison x == ToNumber(y).

         也就是说:如果某一个操作数为bool型,那么它会被转换成数字进行比较,而规则是:true->1 false->0

         如:

       

复制代码
 1  var  i1 =- 2 ;
 2  var  i4 = 2 ;
 3  var  i2 = 1 ;
 4  var  i3 = 0 ;
 5  if (i1 == true ) {}  // 将把true->1,因此 1!=-2 false
 6  if (i2 == true ) {}  // 将把true->1,因此1==1  true
 7  if (i3 == true ) {}  // 这个很明显了。 false
 8  if (i4 == true ){]   // 将把true->1,因此2!=1  false
 9  // //但是,下面就不同了:
10  if (i1){}  // 相当于Boolean(-2) ,非0,因此为true   true
11  if (i2){}  // 非0,因此为ture
12  if (i3){}  // 0,因此为false
13  if (i4){}  // 非0,因此为true
复制代码

 

    2、If Type(x) is Number and Type(y) is String, return the result of the comparison x == ToNumber(y).
        If Type(x) is String and Type(y) is Number, return the result of the comparison ToNumber(x) == y.

        也就是说某一操作数为字符串,另一个是number时,字符串为转换为number,如:
    

复制代码
1  var  a  =   " 1 " ;
2  var  b  =   " 001 " ;
3  var  c  =   "" ;
4 
5  if (a == 1 ){}  // a=>number(a) true
6  if (b == 1 ){}  // b=>number(b) true
7  if (c == 1 ){}  // b=>0 false
复制代码

 

    3、非空字符串会被转换成true(而null和undefined为false),如:
  

1  var  a = " a " ;
2  var  b = "" ;
3  if (a){}  // true
4  if (b){}  // false

 

 

------

 说到这里,想起jQuery的$,这个东东选取元素时,结果返回jQuery对象,无论元素是否存在。

 因此不能用if($('#id'))来判断是否选取到。而可以用$('#id').length>0来判断.

  原文章地址:http://www.blueidea.com/tech/web/2010/7576.asp

------

最后

以上就是完美钢笔为你收集整理的JavaScript布尔型数据与==运算符。 的全部内容,希望文章能够帮你解决JavaScript布尔型数据与==运算符。 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部