2012-06-01 8 views
6

なぜ私は理解していないのですか、それを探すのが難しいと感じています。''、 '' "は何ですか、Javascriptでは引用符は意味しませんか?

+2

具体例はありますか? –

+4

文字列は '' ''や ''''のどちらでも使うことができますが、それは問題ではありません(あなたがエスケープする必要のあるものを選んでください( '' Mr. O'Neil ''や' '私は" ')。数値は引用する必要はありません。たとえば、' 12'です。 –

答えて

16

' '" "は同じものです。文字列リテラルを定義するために使用されます。

引用符のないものは、識別子、キーワード、非文字列リテラル、プロパティ名、または数字(欠落している可能性があります)があります。

例:

"hello world"  literal (string) 
'hello world'  literal (string) with same contents 
document    identifier (object) 
{ a: 1 }    property name 
if     keyword (start conditional statement) 
3.4     literal (number) 
/abc/    literal (regex object) 

一重引用符で囲まれている文字列リテラルは、例えば、エスケープされた二重引用符とその逆を必要としません:

'<a href="">click me</a>' HTML containing double quotes 
"It's going to rain"   String containing single quote 
+3

最後の2つは本当に識別子と見なされませんでしたか?最初の2つの文字列の例と同じように、個々の型(数字と正規表現)の文字通りの構文であると私には思われます。 –

+1

@amnotiamあなたは有効なポイントを作成します。私はリテラルとしてそれらを再分類しました:)ありがとう! –

+1

ああ、そこにいる。 +1引用符のないもののカテゴリの下にある他のもの(演算子と文の終了記号)は、あなたがそれを数えたいと思うならば、空白を仮定します。 –

5

"'は交換可能です(ただし、これに必要一緒に使用する)。

myObject["property"]およびmyObject.propertyもまた互換性がある。 $var foo = "property"; myObject[foo]も同様です(下記のコメントごと)。

+0

'myObject [property]'は、プロパティの値で指定されたmyObjectのプロパティを取得します – pbfy0

6

' '" "たとえば、文字列リテラルを引用するのに使用すると、変数(変数、定数の名前)は識別子として知っている引用符なしリテラルに対して、文字列(複数可)を表し

variable = 'Hello'; (Here `variable` is identifier and 'Hello' is string literal) 


var = "Ho There" 
ご質問かもしれません

、何があります特殊文字を持って、彼らが脱出する必要がある場合' (single quote)" (Double quote)

違いの違いは、"内の文字列です。例:

変数=「こんにちは」そこ "; --->ここにあなたが使用している場合、'はその後、(エスケープの必要はありませんしない限り、

Variable = "hi \" there"; 

のような文字列の中"を逃れるしかし、する必要があります)'文字列内の余分な。あなたは、単一引用符と二重引用符の両方が制御コードなどを脱出周り

var = 'Hello " World"'; 
0

のような迅速なjsfiddleをHVEでき

後日、二重引用符が使用されていないHTMLからエラーがありました。JSONの仕様を見ると、文字列リテラルを引用するときに二重引用符であることに気づくでしょう。だから歴史的な理由から私が思う大会ですが二重引用符です。

ただし、最近のサーバーサイドJSの記述では、Cのルーツと二重引用符に戻ってしまう傾向があることを認めなければなりません。エスケープされた文字と一重引用符の文字列が効果的にリテラルな文字で、本質的に非生産的な行動)。私のJSのほとんどは今日のcoffeescriptだが、これまでのところ、誰も優雅さのためにjavascriptを書いたことはなかった.CSは別の釜だ。