javascript之Boolean

今日在牛客网做了一js道题,很基础但是可惜做错啦!废话不多说,上题:

  var x = new Boolean(false);
  if (x) {
    alert('hi');
  }
  var y = Boolean(0);
  if (y) {
    alert('hello');
  }

看以上js输出结果?

答案是:hi

看到结果扎心了,赶忙巩固了一下,boolean有2种调用方式:

第一种:做为一个构造函数即带new的方式调用,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象,

    var obj = new Boolean();

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

  例:    

    var obj = new Boolean();
    var obj = new Boolean(0);
    var obj = new Boolean(null);
    var obj = new Boolean("");
    var obj = new Boolean(NaN);
  以上obj的值都为false,注意此时obj是对象,是对象,是对象。所以上面的程序题中x即为对象,那么if(x){alert(‘hi’)}就会输出值。

第二种:作为一个函数即不带new的方式调用,Boolean() 只将把它的参数转换成一个原始的布尔值,并且返回这个值。

  所以var y = Boolean(0),返回值即为false,即y值为false,所以此时hello不输出。

 

posted on 2017-05-03 10:11  zhoujian917  阅读(234)  评论(0编辑  收藏  举报

导航