Javascript概念的声明

时间:2017-06-27 14:01:59

标签: javascript

WIKI:

  

在计算机编程中,语句是最小的独立语句   表达一些命令式编程语言的元素   要采取的行动。这是一个高级写的指令   命令计算机执行指定操作的语言。

W3C

  

分号分隔JavaScript语句。最后添加一个分号   每个可执行语句

几乎恢复了我的想法,但我很想在这些情况下与你们分享一些想法。

案例1:

var MyPromise = GetPromise(); //first statement
MyPromise.then(function(){

}); //second statement

案例2:

GetPromise()
.then(function(){

}); //first statement

维基源声称在讨论陈述时会考虑高级语言(如报道)

  

这是用高级语言编写的指令..

实际上我不知道源是多么可信,但如果我考虑高级javascript代码(不是解释器生成的机器代码),这两种情况产生相同的行为,这里显然我们有两个不同的语句第一个块,第二个块。

2个代码块之间是否有任何差异?是否有任何理由选择一个代替另一个(而不是可读性)?

1 个答案:

答案 0 :(得分:1)

  

分号分隔JavaScript语句

不,多亏了ASI,我们不需要分号(在大多数情况下,使用分号更好):

alert("two")
alert("statements")

所以分号不是要走的路。让我们来看看这个案例

alert(test)

有多少陈述?一个或两个?这是因为:

test

也是一个陈述。准确地说是表达式语句。但它的共同语言只是称它们为表达式。[1]语句的数量(不是表达式语句)可以自由变化,例如:

a();
b();

"vs."

a(),b();
  

我假设语句流程可以由程序员以某种方式控制。

是的。叫做编程。

  

是否有任何理由选择一个代替另一个(而不是可读性)?

可读性! 两个语句一个包含两个表达式的语句之间没有区别。

但是在你的情况下:

var MyPromise = GetPromise(); 
MyPromise.then(function(){
});

MyPromise存储在窗口对象中,因此在某些时候它不会被回收。所以你告诉解析器你可能想在其他地方使用它。如果你不这样做,将它存储在窗口中是没有意义的。

1:What is the difference between an expression and a statement?