• JavaScript Boolean (逻辑)对象


    今天,遇到需要将cookie里的某个值转换为JS的布尔值的问题,后来在网上搜到某人写的文章,说用Boolean()可以将值强制转换。于是信以为真,也根本没有怀疑过这里的正确性。代码一直出现莫名奇妙的问题(赋值总是固定的,从来不变)。但就是找不到原因。

    经过几番折腾,终于把问题锁定到了Boolean()上,自己写了个小测试,如下:
        <script type="text/javascript">
        var test = String("true");
        alert("(string)true: " + Boolean(test));          //弹出“true”
        test = String("false");
        alert("(string)false: " + Boolean(test));          //弹出“true”
        test = Number(0);
        alert("(Number)0: "+ Boolean(test));          //弹出“false”
        test = Number(1);
        alert("(Number)1: "+ Boolean(test));          //弹出“true”
        </script>

    真的很奇怪,为什么字符串“false”的结果也是“true”呢。实在是不理解了,于是在http://www.w3school.com.cn/上查找Boolean()的解释。

    才知道自己被人忽悠了。w3school里写到

    Boolean 对象

    您可以将 Boolean 对象理解为一个产生逻辑值的对象包装器。

    Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false)。

    使用关键词 new 来定义 Boolean 对象。下面的代码定义了一个名为 myBoolean 的逻辑对象:

    var myBoolean=new Boolean()

    注释:如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)!

    下面的所有的代码行均会创建初始值为 false 的 Boolean 对象。

    var myBoolean=new Boolean()
    var myBoolean=new Boolean(0)
    var myBoolean=new Boolean(null)
    var myBoolean=new Boolean("")
    var myBoolean=new Boolean(false)
    var myBoolean=new Boolean(NaN)

    下面的所有的代码行均会创初始值为 true 的 Boolean 对象:

    var myBoolean=new Boolean(true)
    var myBoolean=new Boolean("true")
    var myBoolean=new Boolean("false")
    var myBoolean=new Boolean("Richard")

    这次吃亏着实不小,浪费了很多的时间,却没有找到问题的所在。不过学到了东西总是好的。

                                   --小小的,有大大的梦想!
  • 相关阅读:
    MVC入门学习笔记(五)
    IIS搭配Serveru构建企业空间服务(一)
    HTMLTextBox基于WebBrowser的HTML编辑控件
    MVC入门学习笔记(一)
    MVC入门学习笔记(七)
    MVC入门学习笔记(十)
    关注以下.NET技术
    Notification状态栏通知
    Activity设置横屏显示
    通过xml文件与代码去除通知栏和标题全屏显示
  • 原文地址:https://www.cnblogs.com/ztlyz/p/1450815.html
Copyright © 2020-2023  润新知