这个JS表达是什么意思?

时间:2011-01-19 21:08:03

标签: javascript

这个JS表达是什么意思?我们回来了什么?

return dihy(year) in {353:1, 383:1};

5 个答案:

答案 0 :(得分:3)

这是一个return语句,它使包含函数返回一个布尔值。

  1. 它使用变量dihy()的值作为参数调用函数year
  2. 它检查返回值是353还是383对象文字中存在的属性的名称)。财产的价值无关紧要;它只需要存在于对象中。 (也就是说,1只是一个任意值。)
  3. 如果是,则函数返回true,否则返回false
  4. 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
    

    您可能需要查看MDC documentation for the in operator

答案 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值。如果该值为353383,则表达式将评估为true,否则评估为false

请注意,您的代码不是表达式,而是语句return语句:

return expression; 

因此,return语句将返回truefalse

答案 3 :(得分:0)

返回true或false,具体取决于dihy()返回353或383的结果(对于那两个,其他任何都是假的)。

这意味着......正是这个数据集中包含的这个函数的结果......

答案 4 :(得分:0)

此处没有理由使用对象,即{353: 1, 383: 1}。实际上,1的值是令人困惑的,并且可以让没有经验的人认为1的值在它不是并且纯粹是任意的时候被返回。

以下是等效的:

dihy(year) in [353, 383]