这个JS表达是什么意思?我们回来了什么?
return dihy(year) in {353:1, 383:1};
答案 0 :(得分:3)
这是一个return
语句,它使包含函数返回一个布尔值。
dihy()
的值作为参数调用函数year
。353
还是383
(在对象文字中存在的属性的名称)。财产的价值无关紧要;它只需要存在于对象中。 (也就是说,1
只是一个任意值。)true
,否则返回false
。JavaScript程序员有时会使用这种方法,因为它比单独检查每个值更短,并且很容易以编程方式添加新值来检查:
var foo = {353: 1, 383: 1};
function bar(year) {
return year in foo;
}
alert(bar(1955)); // false
foo[1955] = 1;
alert(bar(1955)); // true
答案 1 :(得分:2)
如果对参数true
的函数dihy
的调用是对象year
和{353:1, 383:1}
的键,则为false
。 / p>
它可以像这样重写:
var result = dihy(year);
return result == 353 || result == 383;
答案 2 :(得分:1)
这是一个表达式:
dihy(year) in {353:1, 383:1}
dihy(year)
函数调用可能会返回Number值。如果该值为353
或383
,则表达式将评估为true
,否则评估为false
。
请注意,您的代码不是表达式,而是语句return
语句:
return expression;
因此,return
语句将返回true
或false
。
答案 3 :(得分:0)
返回true或false,具体取决于dihy()
返回353或383的结果(对于那两个,其他任何都是假的)。
这意味着......正是这个数据集中包含的这个函数的结果......
答案 4 :(得分:0)
此处没有理由使用对象,即{353: 1, 383: 1}
。实际上,1的值是令人困惑的,并且可以让没有经验的人认为1的值在它不是并且纯粹是任意的时候被返回。
以下是等效的:
dihy(year) in [353, 383]