有什么区别?

时间:2015-03-16 22:23:54

标签: javascript

我是javascript的初学者,所以我只需要理论解释。 什么意思 ;我为什么要把它放在那里?当我在PHP工作时,我不需要放;在这种情况下,在函数{}之后。

var orangeCost = function(price)
{
    var quantity = 5;
    console.log(quantity * price);
};
orangeCost(5);

我只是想知道这段代码是否合适,因为在这种情况下我无法获得理想的结果:

var orangeCost = function(price)
{
    var quantity = 5;
    console.log(quantity * price);
}
orangeCost(5);

2 个答案:

答案 0 :(得分:0)

将函数赋值给变量时,就像任何其他赋值一样。

var aMethod = function() { /*...*/ };
var aNumber = 123;

在这两种情况下,最后的分号都是可选的。建议添加它们以避免在删除换行符时(例如,在连接源代码的过程中)意外混合语句。

答案 1 :(得分:0)

添加分号;以标记语句的结尾。但是,这并不总是强制执行,并且几个js解析器只接受使用换行符作为语句的结尾。目前这被认为是一种不好的做法,因为在某些情况下,解析器无法区分编码换行符与文字换行符。例如,如果您尝试声明包含换行符的字符串,那么您将度过一段美好时光。

某些构造没有结束分号。 Funcion  声明(与示例中的函数表达式相反)不带尾随分号:

function orangeCost(price) {
    var quantity=5;
    console.log(price*quantity);
}

你不会在循环之后使用尾随分号,例如if / else,for或者切换。

这与PHP没有什么不同,完全没有。在PHP中,这同样适用于过程函数和lambda函数:

<?php
function orangeCost($price) {
   $quantity=5;
   echo $quantity*$price;
}

$orangeCost=function($price) {
   $quantity=5;
   echo $quantity*$price;
};

唯一的区别是,在PHP中,必须使用$orangeCost(5)而不是orangeCost(5)来调用lambda函数。