zoukankan      html  css  js  c++  java
  • 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")

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

                                   --小小的,有大大的梦想!
  • 相关阅读:
    电路中的VCC和VDD
    动态数码管 什么是位选 段选
    pytest文档62-内置fixture之request
    pytest文档61-fixture之name参数使用别名
    pytest文档60-pytest.main()的使用
    python笔记49-yaml文件中变量的使用(锚点& 与 引用*)
    python笔记48-面试题:m1={'a':1,'b':2,'c':1} 将同样的value的key集合在list里,输出{1:['a','c'],2:['b']}
    jenkins学习15-Allure报告不用登陆也能给领导看
    python接口自动化35-pyppeteer-install下载没反应,r.html.render() 下载无反应问题解决
    kvm内存优化--KSM
  • 原文地址:https://www.cnblogs.com/ztlyz/p/1450815.html
Copyright © 2011-2022 走看看