亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我應該在javascript中的每個函數后使用分號?

為什么我應該在javascript中的每個函數后使用分號?

為什么我應該在javascript中的每個函數后使用分號?我見過不同的開發人員在javascript函數之后包含分號,而有些則沒有。哪個是最佳做法?function weLikeSemiColons(arg) {    // bunch of code};要么function unnecessary(arg) {   // bunch of code}
查看完整描述

3 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

分號后函數的聲明沒有必要的

a的語法FunctionDeclaration規范中描述為:

function Identifier ( FormalParameterListopt ) { FunctionBody }

語法上沒有分號,但可能想知道為什么?

分號用于將語句彼此分開,而a FunctionDeclaration不是聲明。

FunctionDeclarations在代碼進入執行之前進行評估,提升是用于解釋此行為的常用詞。

術語“函數聲明”和“函數聲明”經常被錯誤地互換使用,因為ECMAScript規范中沒有描述函數聲明,但是有些實現在語法中包含一個函數聲明,特別是Mozilla-但是這個是非標準的。

但是,在您使用的地方始終建議使用分號FunctionExpressions,例如:

var myFn = function () {
  //...};(function () {
  //...})();

如果在上例中的第一個函數之后省略分號,則會得到完全不希望的結果:

var myFn = function () {
  alert("Surprise!");} // <-- No semicolon!(function () {
  //...})();

第一個函數將立即執行,因為圍繞第二個函數的括號將被解釋為Arguments函數調用。

推薦講座:

查看完整回答
反對 回復 2019-08-29
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

我在函數變量聲明之后使用它們:

var f = function() { ... };

但不是經典風格的定義:

function f() {
    ...}


查看完整回答
反對 回復 2019-08-29
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

JS Lint是事實上的約定,它在函數體之后沒有分號。請參閱“分號”部分。


查看完整回答
反對 回復 2019-08-29
  • 3 回答
  • 0 關注
  • 789 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號