何時在JavaScript中使用雙引號或單引號?

console.log("double"); vs console.log('single'); javascript

我看到愈來愈多的JavaScript庫在處理字符串時使用單引號。 是什麼緣由致使一我的又一我的使用? 我認爲它們幾乎能夠互換。 php


#1樓

做爲雙引號轉換爲單引號的一個緣由,您可能還要考慮的另外一件事是服務器端腳本的流行度增長。 使用PHP時,您能夠傳遞變量並使用PHP中的字符串和變量解析javascript函數。 java

若是您編寫一個字符串併爲PHP使用雙引號,則無需轉義任何單引號,PHP會自動爲您檢索變量的值。 jquery

示例:我須要使用服務器中的變量來運行javascript函數。 程序員

public static function redirectPage( $pageLocation )
{
    echo "<script type='text/javascript'>window.location = '$pageLocation';</script>";
}

這爲我省去了處理鏈接字符串的麻煩,並且我能夠有效地從PHP調用JavaScript。 這僅是一個示例,但這多是程序員默認在javascript中使用單引號的幾個緣由之一。 web

來自PHP文檔的引文 :「雙引號字符串的最重要特徵是變量名稱將獲得擴展。有關詳細信息,請參見字符串解析。」 express


#2樓

從技術上講,沒有區別,只是樣式和約定。 服務器

Douglas Crockford建議對內部字符串使用單引號,對外部字符串使用雙引號(「外部」是指要顯示給應用程序用戶的信息,例如消息或警報)。 函數

我我的遵循。 post

更新:彷佛克羅克福德先生改變了主意 ,如今建議在整個過程當中使用雙引號:)


#3樓

我但願我沒有添加明顯的東西,可是我一直在爲此而努力地使用DjangoAjax和JSON。

假設您在HTML代碼中確實像往常同樣使用雙引號,那麼我強烈建議對JavaScript中的其他部分使用單引號。

所以,我贊成@ady的意見,但要謹慎。

個人底線是:在JavaScript中可能不要緊,可是一旦將其嵌入HTML或相似內容中,就會開始遇到麻煩。 您應該知道其實是在轉義,閱讀,傳遞字符串。

個人簡單案例是:

tbox.innerHTML = tbox.innerHTML + '<div class="thisbox_des" style="width:210px;" onmouseout="clear()"><a href="/this/thislist/'
                   + myThis[i].pk +'"><img src="/site_media/'
                   + myThis[i].fields.thumbnail +'" height="80" width="80" style="float:left;" onmouseover="showThis('
                   + myThis[i].fields.left +','
                   + myThis[i].fields.right +',\''
                   + myThis[i].fields.title +'\')"></a><p style="float:left;width:130px;height:80px;"><b>'
                   + myThis[i].fields.title +'</b> '
                   + myThis[i].fields.description +'</p></div>'

您能夠在showThis的第三個字段中找到\\'。

雙引號無效!

很清楚爲何,可是也很清楚爲何咱們應該堅持單引號.....我想..

這種狀況是很是簡單的HTML嵌入,該錯誤是由「雙引號」 JavaScript代碼中的簡單複製/粘貼產生的。

因此要回答這個問題:

嘗試在HTML中使用單引號。 它可能會節省幾個調試問題...


#4樓

這主要是風格和喜愛問題。 其餘答案中還有一些至關有趣且有用的技術探索,所以也許我惟一要添加的就是提供一些世俗的建議。

  • 若是您在公司或團隊中編碼, 那麼遵循「房屋風格」多是一個好主意。

  • 若是您獨自一我的攻克一些附帶項目, 那麼看看社區中的一些傑出領導人。 例如,假設您進入Node.js。 看一下核心模塊,例如underscore.js或express,看看它們使用什麼約定,並考慮遵循。

  • 若是兩種約定均被使用, 則請遵循您的我的習慣
    偏心。

  • 若是您沒有我的喜愛, 那就擲硬幣。

  • 若是您沒有硬幣, 啤酒就在我身上;)


#5樓

讓咱們看一下參考的做用。

在jquery.js中,每一個字符串都用雙引號引發來。

所以,從如今開始,我將使用雙引號引發來的字符串。 (我正在使用單身!)

相關文章
相關標籤/搜索