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) 编辑 收藏 举报