$ {} (Dấu đô la và dấu ngoặc nhọn) có nghĩa là gì trong một chuỗi trong Javascript?


160

Tôi chưa thấy gì ở đây hoặc trên MDN. Tôi chắc chắn tôi chỉ thiếu một cái gì đó. Có phải có một số tài liệu về điều này ở đâu đó?

Về mặt chức năng, có vẻ như nó cho phép bạn lồng một biến bên trong một chuỗi mà không cần thực hiện phép nối bằng +toán tử. Tôi đang tìm tài liệu về tính năng này.

Thí dụ:

var string = 'this is a string';

console.log(`Insert a string here: ${string}`);


Bạn có thể đưa ra một số bối cảnh cho những gì bạn đang hỏi về? Câu hỏi này không rõ ràng bằng văn bản.
Sam Hanley


5
Đây không phải là một câu hỏi tồi. Đây là một tính năng mới và tôi chắc chắn không thể tìm thấy bản sao trên SO, mặc dù một ví dụ về những gì chính xác được nhìn thấy sẽ tốt.

@ squint, đồng ý, nhưng mã mẫu và tham chiếu đến nguồn sẽ hữu ích.
RobG

Ví dụ được thêm vào. Tham chiếu là trong một thách thức mã hóa nhưng nó là một thứ nhất định, như thể đó là thứ bạn vừa sử dụng. Không thấy gì trên đó và cũng không thể tìm thấy gì. (Trong nhiều năm qua tôi chưa bao giờ phải hỏi Q ở đây. SO dường như có hầu hết mọi thứ bây giờ ...)
Darren Joy

Câu trả lời:


192

Bạn đang nói về mẫu chữ .

Chúng cho phép cả chuỗi đa dòng và nội suy chuỗi.

Chuỗi đa dòng:

console.log(`foo
bar`);
// foo
// bar

Nội suy chuỗi:

var foo = 'bar';
console.log(`Let's meet at the ${foo}`);
// Let's meet at the bar


67
Một điều làm tôi bối rối trong một thời gian dài là các mẫu chữ sử dụng backtick, nằm ở bên trái của "1" trên bàn phím, thay vì dấu ngoặc kép đơn (').
Sydney

19
Tuyệt vời: Bạn thậm chí có thể "tiêm" mã:console.log(`Your array:\n ${arr.join('\n ')}`)
T4NK3R

5
Thật kỳ lạ khi Template Literalkhông được hỗ trợ trong IE hoặc có lẽ IE không hỗ trợ những thứ hay ho. Đọc thêm
Mohammad Musavi

12

Như đã đề cập trong một nhận xét ở trên, bạn có thể có các biểu thức trong chuỗi mẫu / chữ. Thí dụ:

const one = 1;
const two = 2;
const result = `One add two is ${one + two}`;
console.log(result); // output: One add two is 3


Có đúng không khi nói rằng các chuỗi mẫu có thể được sử dụng để tiêm mã vào chuỗi?
carloswm85

Bạn đang tiêm các biểu thức và biểu thức là mã. Bạn không thể tiêm bất kỳ loại mã nào, tuy nhiên, chỉ các biểu thức JavaScript.
Joel H

Tôi sẽ cố gắng để được cụ thể hơn. Khi sử dụng chuỗi ký tự, tôi có thể thêm các biểu thức như obj.value INSIDE bất kỳ chuỗi nào bằng cách sử dụng ký hiệu $ {}. Đúng?
carloswm85

Vâng, và bạn có thể thử nó ra cho chính mình trong giao diện điều khiển, ví dụ:hey ${obj.name}
Joel H

0

Bạn cũng có thể thực hiện Chuyển đổi loại ngầm định bằng chữ mẫu. Thí dụ:

let fruits = ["mango","orange","pineapple","papaya"];

console.log(`My favourite fruits are ${fruits}`);
// My favourite fruits are mango,orange,pineapple,papaya
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.