JavaScript中的值是什么'falsey',这意味着它们在表达式中评估为false if(value),value ?并且!value?
关于Stack Overflow上的falsey值的目的已有一些讨论,但没有详尽的完整答案列出所有的falsey值.
我在MDN JavaScript Reference上找不到任何完整列表,我很惊讶地发现在JavaScript中查找完整,权威的虚假值列表时的最佳结果是博客文章,其中一些有明显的遗漏(例如,NaN),并且没有一个像Stack Overflow这样的格式,可以添加评论或替代答案来指出怪癖,惊喜,遗漏,错误或警告.因此,制作一个似乎是有意义的.
document.all 是DOM中的非基本对象,是虚假的.
例如,此代码不执行任何操作:
if (document.all) {
alert("hello");
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么会这样吗?
我有以下代码片段:
if([]) {
console.log("first is true");
}
Run Code Online (Sandbox Code Playgroud)
该console说,first is true该装置[]是真实的。现在我想知道为什么:
if([] == true) {
console.log("second is true");
}
Run Code Online (Sandbox Code Playgroud)
和这个:
if([] === true) {
console.log("third is true");
}
Run Code Online (Sandbox Code Playgroud)
不是true。如果控制台登录first is true了第一个代码段,那意味着[]应该为真,对吗?那么为什么后两个比较失败?这是小提琴。
是否有一个对象的属性可以修改以指定该对象的真值。例如在里面添加一行:
var myObj{...}
Run Code Online (Sandbox Code Playgroud)
这样我就可以确定与以下 if 语句关联的代码块是否被执行:
if(myObj){
//dosomething
}
Run Code Online (Sandbox Code Playgroud)
Python 中类似的东西会覆盖该__bool__方法。
我想过滤一个包含零(0)的数组,同时捕获它们.
var arr1 = [-200, -163, -26, -4, 0, 7, 76];
var evens = arr1.filter(function(x) {
if (x % 2 === 0 || x === 0) {
return x;
}
})
console.log(evens);Run Code Online (Sandbox Code Playgroud)
为什么我的'evens'阵列中没有归零?如果零不被归类为偶数,则不应该是我的
|| x===0
Run Code Online (Sandbox Code Playgroud)
声明抓零?
谢谢Brad
我根据值是有条件地显示图像。该值是一个字符串。但是,它仅返回第一张图像。它不会遍历整个功能。
methods: {
resultImage(value) {
if (
value === 'Less likely' ||
'More likely light' ||
'More likely blue' ||
'More likely curly'
) {
return this.low
} else if (value === 'Average chance') {
return this.medium
} else if (
value === 'Somewhat more likely' ||
'Somewhat more likely brown' ||
'Somewhat more likely curly'
) {
return this.mediumHigh
} else if (
value === 'More likely' ||
'More likely dark' ||
'More likely brown' ||
'More …Run Code Online (Sandbox Code Playgroud) 如下面的第一个 if 语句所示,将 -1 用作返回值是什么意思?
MyLinkedList.prototype.get = function(i) {
if (i < 0 || i >= this.length) return -1;
if (i + 1 === this.length) return this.tail.prev.val;
let curr = this.head.next;
while (i--) curr = curr.next;
return curr.val;
};
Run Code Online (Sandbox Code Playgroud) 面对面试时,我感到很困惑
- if({})console.log("hello")
- if([])console.log("hello")
- if('')console.log("hello")
- if('')console.log("hello")
我知道前三个会打印你好,但我不知道评估的基础是什么.
甚至我想知道几个网站或网址,我可以从中获得这些棘手的问题和解决方案