Javascript中的控制台日志比较程序布尔值

Javascript中的控制台日志比较程序布尔值,javascript,boolean,console.log,Javascript,Boolean,Console.log,不知何故,我通过谷歌搜索,并没有找到一个很好的答案。这里是Javadev,Javascipt的新成员 我有以下代码: console.log('this.props.projectData.length: ' + this.props.projectData.length); console.log('this.props.projectData.length >= 0 : ' + this.props.projectData.length >= 0); 输出: this.prop

不知何故,我通过谷歌搜索,并没有找到一个很好的答案。这里是Javadev,Javascipt的新成员

我有以下代码:

console.log('this.props.projectData.length: ' + this.props.projectData.length);
console.log('this.props.projectData.length >= 0 : ' + this.props.projectData.length >= 0);
输出:

this.props.projectData.length: 107
false
所以,首先,为什么它不记录第二行的字符串部分,其次,为什么它是假的,因为它显然是真的。长度为107,因此大于0。

尝试以下操作:

console.log('this.props.projectData.length: ', this.props.projectData.length);
console.log('this.props.projectData.length >= 0 : ', this.props.projectData.length >= 0);

只有一个变化

console.log('this.props.projectData.length >= 0 : ' + this.props.projectData.length);
你在这里检查长度,它正在变为真。 但现在它可以正常工作了

为什么它是假的,因为它显然是真的

这里的问题就是这个问题。为了简单起见,假设我们有这个数组

var arr = [1, 2, 3];
。。。其长度明显大于0

如果我们这样做:

var-arr=[1,2,3];

console.log(“长度>0:+arr.length>0)
魔法。。非常感谢。我将在10分钟内接受您的答案。@SteveWaters:在Java中,运算符优先级肯定是一件事,不是吗?如果答案能解释问题就好了。@rockstar,在Java中它的工作方式是:System.out.println(“projectData.length>=0:+this.props.projectData.length>=0);“@SteveWaters:我不是说语言必须工作相同。我只是说,我想象操作符有一些优先规则,这些规则对Java开发人员来说应该不是那么陌生。毫无疑问,这是一个令人惊讶的结果,但一旦表达式被分离,就应该非常清楚。无论如何,我仍然认为,尽管这是一个解决方案,但它并不是r等等,你刚刚删除了他问的比较,所以现在和他的第一行一样。