分号和标识符在JavaScript中有什么作用?

时间:2017-09-30 17:09:04

标签: javascript

我刚开始从Lynda.com学习JavaScript,现在我正在研究有关功能的课程。

我对匿名功能感到困惑。当我在下面编写代码时,我的IDE显示了一些我不明白的警告。

var theBiggest = function(a,b) {
"use strict";
var result;
a>b ? result = ["a", a] : result = ["b", b];
console.log(result);    
})(5/7,18/25)

console.log(theBiggest);

警告是:

  

1)。代码第6行缺少分号。

     

2)。预期分配或函数调用,而是看到一个   在第4行表达。

     

预期标识符,而不是在第6行看到')'。

本教程与我的代码相同,但我的代码不起作用。

5 个答案:

答案 0 :(得分:3)

分号是&#34 ;;"结束陈述的字符。通常情况下,js并不真正关心你放了一个;在每个陈述的最后,但因为你使用严格模式,你有义务把它放在那里。

在第六行关闭} -bracket之后,我看到了一个关闭) - 但是它的开口括号无处可寻。你在这里做的是一个立即函数(函数定义和同时调用该函数)。通常在使用立即函数时,整个函数被()括号包围,以明确您实际调用函数而不将其赋值给变量(在本例中为theBiggest)

答案 1 :(得分:1)

你的结尾括号太多了

})(5/7,18/25)
 ^

除此之外,我建议使用ternay作为数组的赋值。



var theBiggest = function(a, b) {
    "use strict";
    var result = a > b ? ["a", a] : ["b", b];
    console.log(result);
    return result;
}(5 / 7, 18 / 25);

console.log(theBiggest);




答案 2 :(得分:1)

你在功能之前忘了打开括号:

var theBiggest = (function(a,b) {
"use strict";
var result;
a>b ? result = ["a", a] : result = ["b", b];
console.log(result);    
})(5/7,18/25)

console.log(theBiggest);

答案 3 :(得分:1)

  
      
  1. 代码第6行缺少分号。
  2.   

因为你需要在每个表达式(行)的末尾添加一个分号,后面跟着另一个表达式。因此(5/7,18/25)应为(5/7,18/25);

  
      
  1. 预期分配或函数调用,而是在第4行看到一个表达式。
  2.   

因为你不应该在三元运算符中使用赋值,事实上,你应该只使用返回值。

  
      
  1. 您有一个非必要的结束括号,您还需要返回结果。
  2.   



var theBiggest = function(a,b) {
    "use strict";
    var result = a>b ? ["a", a] : ["b", b];
    console.log(result);
    return result;
}(5/7,18/25);

console.log(theBiggest);




答案 4 :(得分:0)

这些是我看到的:

需要将

result指定为a>b ? ["a", a] : ["b", b]

的结果

您在函数末尾有一个额外的(

分号是需要在第6行添加的语句的结尾 - 在(5/7,18/25)之后。

该函数需要返回result



 var theBiggest = function(a,b) {
    "use strict";
    var result;
    result = a>b ? ["a", a] : ["b", b];
    console.log(result);
    return result;
    }(5/7,18/25);
    
    console.log(theBiggest);