如何使0在JavaScript中不计算为false?

如何使0在JavaScript中不计算为false?,javascript,Javascript,以下代码中的this.startOffset和this.endOffset是我用来选择节点中单个字符的值: this.startOffset = this.node.length - 1 || this.node.firstChild.length - 1 || this.node.childNodes.item(0).length - 1 || this.node.childNodes.item(0).firstChild.length - 1 this.endOffset =

以下代码中的
this.startOffset
this.endOffset
是我用来选择节点中单个字符的值:

this.startOffset = this.node.length - 1 ||
  this.node.firstChild.length - 1 ||
  this.node.childNodes.item(0).length - 1 ||
  this.node.childNodes.item(0).firstChild.length - 1

this.endOffset = this.node.length ||
  this.node.firstChild.length ||
  this.node.childNodes.item(0).firstChild.length
我在
this.startOffset
中使用
-1
,因为这是字符开头的值。(例如,
0,1
将选择节点中的第一个字符。)

但是,由于
this.node.childNodes.item(0).length-1在第一个字符中将变为0,因此它将返回
false
,而不是
0
,并且代码将到达
this.node.childNodes.item(0).firstChild.length-1
,从而导致错误


如何使
0
不返回false,而是将
设置为this.startOffset
设置为
0

如果关注文本节点,请尝试使用子节点

this.startOffset = this.children.length ||
  this.children.item(0).children.length;

这将跳过文本节点,并根据是否存在子节点及其子节点返回布尔值。

您可以使用三元运算符以值形式返回所需的任何值

this.startOffset = (condition) ? 1 : 0;

仅从条件中删除
-1
不是更干净吗?这应该help@gurvinder372你的意思是把它放在其他地方吗?因为代码过于复杂,如果结构正确,问题一开始就没有必要了。“如何使0不返回false,而是将this.startOffset设置为0?“第一个代码块中显示的代码仅将
startOffset
设置为数字,而不是
false
,前提是这些
length
属性都是数字。它将是第一个不是
0
,或
0
的数字(如果它们都是)。