2013-07-12 40 views
7

Tôi luôn thấy kiểu ghi trong javascript nhưng tôi không biết tại sao mã như thế này. Ví dụ, tôi có một biến.Trích dẫn đơn hoặc trích dẫn kép trong javascript

var topic = "community"; 

Và khi tôi học javascript Tôi thấy ai đó được mã hóa trong jQuery như thế này, một số mã trong phần.

:contains("' + topic + '") 

Nhưng tôi nghĩ nó có thể viết mã như thế này.

:contains(topic) 

Hoặc : chứa ("chủ đề")

gì sự khác nhau giữa trên ba?

+0

Trùng lặp: http://stackoverflow.com/questions/242813/when-to-use-double-or-single-quotes-in-javascript –

+0

@JamieHutber Tôi không nghĩ đó là bản sao –

+0

Tôi nghĩ rằng toàn bộ mã là một cái gì đó như '.find (': contains ("' + topic + '")')'. –

Trả lời

6
:contains("topic") 

tìm kiếm này cho các yếu tố có chứa "chủ đề" chuỗi

nơi như

var topic = "community"; 
:contains(topic) 

chủ đề ở đây trở thành "cộng đồng" .. để nó tìm kiếm đã cho các phần tử có chứa "cộng đồng";

tốt cho việc này

:contains("' + topic + '") 

tôi đoán mã là không đầy đủ ..

$('div:contains("' + topic + '")')..; //div for example sake 

này trở nên

$('div:contains("community")')..; //<-- just to make sure the string is encoded with `""` 
+0

Không phải là trường hợp thứ hai lỗi cú pháp CSS thay vì hiển thị phần tử chứa cộng đồng? (CSS không yêu cầu trích dẫn của chuỗi?) – slebetman

+0

@slebetman Không. Bạn có thể chuyển URL và nội dung mà không có dấu ngoặc kép, mặc dù lưu ý đây không phải là CSS đúng, nhưng công cụ chọn Sizzle được jQuery sử dụng cung cấp API giống CSS – Bojangles

0

:contains("' + topic + '") sẽ tìm kiếm chuỗi '(VALUE của chủ đề) ', bao gồm cả dấu nháy đơn.

:contains(topic) 

sẽ tìm giá trị của chủ đề mà không có dấu ngoặc kép xung quanh.

:contains("topic") 

sẽ tìm chủ đề theo nghĩa đen.

0

Không có sự khác biệt giữa dấu ngoặc đơn và dấu ngoặc kép, cả hai được sử dụng để đánh dấu một phần tử dưới dạng một chuỗi.

var s = "hello" 
var m = 'hello' 
m === s // true 

ví dụ khác liên quan đến thoát một chuỗi, trong trường hợp:

contains("' + topic + '") 

chủ đề thực sự tham chiếu đến một biến và không phải là một chuỗi, do đó có dấu ngoặc kép phải được thoát ra để các chương trình để truy cập vào giá trị của biến. nếu không nó sẽ không đọc giá trị của chủ đề biến nhưng chỉ cần in chuỗi "chủ đề".

0

Dấu nháy đơn vs dấu ngoặc kép thường đã làm với hay không chuỗi thay thế sẽ xảy ra, nhưng trong JS nó không quan trọng như xa như tôi biết

sự khác biệt giữa 3 là một trong những đầu tiên là một nhiệm vụ thay đổi nơi thay thế chuỗi có thể xảy ra.điều thứ hai là thông qua một chuỗi như một cuộc tranh cãi và một phần ba là đi qua các biến hoặc hằng số chủ đề

var topicOne = "Community1"; 

function write(toOutput) { 
    document.write(toOutput); 
} 

write(topicOne); 
write("topicOne"); 
write('topicOne'); 

vì vậy đây là những gì mà 3 ý đầu ra:

Community1 
topicOne 
topicOne 

Trong PHP tuy nhiên cùng mã sẽ đóng vai trò khác nhau vì các dấu nháy kép ngụ ý chuỗi thay thế

<?php 
$topicOne = "community1"; 
$topicTwo = "community2$topicOne"; 


function write($toOutput) { 
    print $toOutput; 
} 
write($topicOne); 
write("$topicOne"); 
write('$topicOne'); 
write($topicTwo); 
write("$topicTwo"); 
write('$topicTwo'); 
?> 

sẽ sản xuất một sản lượng khác nhau

community1 
community1 
$topicOne 
community2community1 
community2community1 
$topicTwo 

xem sự khác biệt ở đâu?

Các vấn đề liên quan