Zdałem sobie sprawę, że przełączam się między nimi bez zrozumienia, dlaczego tak się dzieje i trudno mi je znaleźć.co oznacza "" i "" oraz brak cudzysłowów w JavaScript?
Odpowiedz
' '
i " "
to to samo; są używane do definiowania literałów łańcuchowych.
Rzeczy bez cudzysłowów mogą być identyfikatorem, słowem kluczowym, literałem innym niż ciąg znaków, nazwą właściwości lub numerem (mogą być pomijane).
Przykłady:
"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)
napisowych, które są zamknięte w apostrofach nie potrzebują uciekły cudzysłowów i versa Visa, np
'<a href="">click me</a>' HTML containing double quotes
"It's going to rain" String containing single quote
Dwa ostatnie nie byłyby naprawdę uważane za identyfikatory, prawda? Wydaje mi się, że są dosłowne składni ich poszczególnych typów (liczba i wyrażenie regularne), podobnie jak pierwsze dwa ciągi znaków. –
@amnotiam podasz prawidłowy punkt; Przeklasyfikowałem je jako literały :) dzięki! –
Ach, jesteśmy. +1 Tylko inne rzeczy (które mogę wymyślić) w kategorii * rzeczy bez cytatów * byłyby operatorami i terminatorami oświadczeń ... i przypuszczam, że spacja, jeśli chcesz to policzyć. –
"
i '
są wymienne (ale trzeba być używane razem).
myObject["property"]
i myObject.property
są również wymienne. $var foo = "property"; myObject[foo]
również (za komentarzem poniżej).
'myObject [właściwość]' dostaje właściwość myObject o wartości właściwości – pbfy0
' '
i " "
wykorzystywane zacytować napis dosłowny i reprezentuje ciąg (s), natomiast dosłowny bez środki są zmienne (nazwa zmiennej, stałej) wie, jak identyfikator, przykład
variable = 'Hello'; (Here `variable` is identifier and 'Hello' is string literal)
var = "Ho There"
Możecie pytanie, jaka jest Różnica między ' (single quote)
i " (Double quote)
Różnica jest, ciągi znaków w ciągu "
, jeśli mają znak specjalny, a następnie muszą uciec. Przykład:
Zmienna = „hi” tam "; ---> tutaj trzeba uciec "
wewnątrz łańcucha jak
Variable = "hi \" there";
Ale jeśli używasz, '
wtedy nie ma potrzeby ucieczki (chyba że jest to extra '
w ciągu). można hve jak
var = 'Hello " World"';
Szybka jsfiddle wokół i zarówno pojedyncze i podwójne cudzysłowy uciec kody sterujące itp
W ostatnich dniach pojawiły się błędy z HTML, w których nie użyto podwójnych cudzysłowów, a jeśli spojrzysz na specyfikację dla JSON, zauważysz, że jest to podwójny cudzysłów, o który prosi się przy cytowaniu literałów łańcuchowych. Tak więc, z przyczyn historycznych, jest to konwencja, którą myślę.
Jednak! W dzisiejszych czasach pisania po stronie serwera JS muszę przyznać, że jestem przywiązany do moich korzeni C i podwójnego cudzysłowu, w którym chciałbym uniknąć znaków i pojedynczych cudzysłowów, które są faktycznie literalnymi znakami i nigdy nie zawierają znaków zbiegów (mimo że jest to zasadniczo zachowanie nieproduktywne). Poza tym, mimo że większość moich JS jest obecnie w coffeescriptu, nikt nigdy nie napisał javascript dla elegancji, CS to jednak inny czajnik.
Czy możesz podać konkretny przykład? –
Struny mogą używać '' "' lub '''', to nie ma znaczenia (wybierz tę, która sprawia, że potrzebujesz mniej ucieczki ('" Mr. O'Neil "' lub '' ja powiedziałem "cześć" ' '). Numery nie muszą być cytowane, np.' 12'. –