为了账号安全,请及时绑定邮箱和手机立即绑定

求JS大神给解释下一句简单的代码!

求JS大神给解释下一句简单的代码!

海绵宝宝撒 2018-10-29 05:57:57
这段代码 难道不是返回布尔值类型?为什么会返回一个对象? 在java或net里面 || 是返回布尔类型的 我记得要返回对象 需要这么用 因为 我记得我看JS书的时候 在进行bool计算的 任何对象都会转出bool类型document.head 会被转换 Boolean(document.head) 应该返回bool值才对啊 还望大神给解释下!
查看完整描述

3 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

在JS里面不一样,你这句话的意思是如果“document.head”不为空,就讲document.head赋值给head,如果空就是将后面的赋值给head。

换个简单例子:

var aa=null;

var b=aa||{};

经常通过这样的方式防止变量aa为空(数组是“||[]”),如果作为判断条件是true。

如果是if(document.head){alert( '1');}else{alert('2');},这种进行bool判断的时候是作为bool返回


查看完整回答
反对 回复 2018-10-31
?
心有法竹

TA贡献1866条经验 获得超5个赞

由&& 或者||运算符产生的值不是必须为Boolean类型,产生的值始终为两个运算表达式的结果之一。

 

 产生式 LogicalANDExpression : LogicalANDExpression && BitwiseORExpression 按照下面的过程执行 :

  1. 令 lref 为解释执行 LogicalANDExpression 的结果 .

  2. 令 lval 为 GetValue(lref).

  3. 如果 ToBoolean(lval) 为 false ,返回 lval.

  4. 令 rref 为解释执行 BitwiseORExpression 的结果 .

  5. 返回 GetValue(rref).

 产生式 LogicalORExpression : LogicalORExpression || LogicalANDExpression 按照下面的过程执行 :

  1. 令 lref 为解释执行 LogicalORExpression 的结果 .

  2. 令 lval 为 GetValue(lref).

  3. 如果 ToBoolean(lval) 为 true ,返回 lval.

  4. 令 rref 为解释执行 LogicalANDExpression 的结果 .

  5. 返回 GetValue(rref).


查看完整回答
反对 回复 2018-10-31
  • 3 回答
  • 0 关注
  • 606 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信