You’re reading the English version of this content since no translation exists yet for this locale. Help us translate this article!
อักษรเป็นคุณตัวคุณแม่แบบคุณตัวอักษรของสตริงที่ช่วยให้หัวเรื่อง: การแสดงออกที่ฝังคุณตัวที่คุณคุณด้านใช้สตริงหลายคู่คุณสายและคุณสมบัติหัวเรื่อง: การแก้ไขสตริงกับพวกเขาพวกเขาถูกเรียกว่าได้ "สายแม่" ในรุ่นก่อน ES2015 ข้อกำหนด / ES6
วากยสัมพันธ์
`text` สตริง ` สตริงบรรทัดข้อความ 1 บรรทัดข้อความสตริง 2` `สตริงข้อความ $ {} แสดงออก text` สตริง แท็ก` ข้อความสตริง $ {} แสดงออก text` สตริง
ลักษณะ
ตัวอักษรแม่แบบจะถูกล้อมรอบ ด้วยกลับเห็บ ( ``) ( สำเนียงหลุมฝังศพ ) คุณตัวอักษรแทนคำพูดคู่หรือเดี่ยวคุณตัวอักษรเทมเพลตด้านมีคุณผู้ถือสถานที่เหล่านี้จะมีหัวเรื่อง: การสำคัญแสดงเครื่องหมายดอลลาร์และวงเล็บปีกกา ( ${expression}
) หัวเรื่อง: การแสดงออกในห้างหุ้นส่วนจำกัดคุณผู้ถือสถานที่และข้อความระหว่างพวกเขาได้รับหัวเรื่อง: การส่งทางทหารผ่านไปยังฟังก์ชั่หนังสือนฟังก์ชั่หนังสือนเริ่มคุณต้นเพียงเพลงแค่เชื่อมที่มีชิ้นส่วนลงไปในห้างหุ้นส่วนจำกัดคุณสายเดียวหากมีหัวเรื่อง: การแสดงออกก่อนหน้า: ภาพประกอบนี้คุณแม่แบบคุณตัว อักษร ( tag
ที่นี่) สตริงแม่แบบที่เรียกว่า "แม่แบบตัวอักษรที่ติดแท็ก" ในกรณีที่การแสดงออกแท็ก (มักจะเป็นฟังก์ชั่น) ได้รับการเรียกว่ามีแม่แบบ การประมวลผลที่แท้จริง ที่คุณคุณด้านซึ่งจัดการก่อนหัวเรื่อง: การสำคัญแสดงผลที่จะหลบหนีกลับเห็บในห้างหุ้นส่วนจำกัดคุณแม่แบบคุณตัวอักษรใส่เครื่องหมาย\ก่อนที่จะกลับเห็บ
`\` `===" `" // -> จริง
สตริงหลายสาย
อักษรบรรทัดคุณตัวใหม่ใด ๆ ที่แทรกในห้างหุ้นส่วนจำกัดขณะนี้ทางคดีแหล่งที่มาเป็นส่วนคุณหนึ่งของคุณแม่ที่แท้จริงโดยใช้คุณสายปกติที่ที่คุณคุณจะคุณต้องใช้ไวยากรณ์ต่อไปเพื่อให้ได้รับคุณสายหลายคุณสาย:
console.log ( "สตริงบรรทัดที่ 1 \ n ข้อความ" + "บรรทัดข้อความสตริง 2"); // "บรรทัดข้อความสตริง 1 // สตริงบรรทัดข้อความ 2"
ที่จะได้รับผลเช่นเดียวกันกับสตริงหลายคู่สายขณะนี้คุณสามารถเขียน:
console.log ( `สตริงบรรทัดข้อความ 1 บรรทัดข้อความสตริง 2`); // "บรรทัดข้อความสตริง 1 // สตริงบรรทัดข้อความ 2"
การแสดงออกของการแก้ไข
เพื่อฝังแสดงออกภายในสตริงปกติคุณจะใช้ไวยากรณ์ต่อไปนี้:
var A = 5; var B = 10; console.log ( "สิบห้าคือ" + (A + B) + "และ \ n ไม่" + (2 * A + B) + "."); // "สิบห้าคือ 15 และ // ไม่ได้ 20. "
ขณะนี้มีตัวอักษรของแม่แบบคุณสามารถที่จะทำให้การใช้งานของประโยคทำน้ำตาลแทนเช่นนี้สามารถอ่านเพิ่มเติมได้ที่:
var A = 5; var B = 10; console.log ( `สิบห้าคือ $ {A + B} และ \ n ไม่ $ {2 * A + B} .`); // "สิบห้าคือ 15 และ // ไม่ได้ 20. "
Tagged อักษรแม่แบบ
รูปแบบที่สูงสุดสูงขึ้นของคุณตัวอักษรของคุณแม่แบบที่มีหัวเรื่อง: การติดแท็กคุณตัวอักษรคุณแม่แบบกับพวกเขาที่คุณคุณด้านที่จะปรับเปลี่ยนหัวเรื่อง: การส่งออกของคุณตัวอักษรคุณแม่แบบโดยใช้ฟังก์ชั่หนังสือนอาร์กิวเมนต์แรกมีอาร์เรย์ของคุณตัว อักษรของสตริง ( "สวัสดี", "โลก" และ "" ในตัวอย่างนี้) ที่สองและแต่ละอาร์กิวเมนต์หลังจากที่ครั้ง แรกหนึ่งเป็นค่าของการประมวลผล (หรือบางครั้งเรียกว่าได้สุก ) การแสดงออกทดแทน ( "15" และ "50" ที่นี่) ในท้ายที่สุดการทำงานของคุณกลับ สตริง จัดการที่คุณคุณของไม่มีอะไรพิเศษเกี่ยวกับแท็กชื่อในห้างหุ้นส่วนจำกัดตัวอย่าง arrow ต่อไปนี้คือชื่อฟังก์ชั่หนังสือนอาจจะเป็นสิ่งที่ที่คุณคุณต้องการ
var A = 5; var B = 10; แท็กฟังก์ชั่น (สตริง ... ค่า) { console.log (สตริง [0]); // "สวัสดี" console.log (สตริง [1]); // "โลก" console.log (สตริง [2]); // "" console.log (ค่า [0]); // 15 console.log (ค่า [1]); // 50 กลับ! "Bazinga"; } tag`Hello $ {A + B} โลก $ {a * b} `; // "Bazinga!"
ฟังก์ชั่นแท็กไม่จำเป็นต้องกลับสตริงดังแสดงในตัวอย่างต่อไปนี้
แม่แบบฟังก์ชั่น (สตริง ... Keys) { ผลตอบแทน (ฟังก์ชั่น ( ... ค่า) { var Dict = ค่า [values.length - 1] || {}; var ผล = [สตริง [ 0]]; keys.forEach (ฟังก์ชั่น (คีย์, i) { ค่า var = Number.isInteger (กุญแจ) ค่า [สำคัญ]: Dict [สำคัญ]; result.push (ค่าสตริง [i + 1]) ; }); กลับ result.join ( ''); }); } var t1Closure = template` $ {0} $ {1} $ {0} `; t1Closure ( 'Y', 'A'); // "เย้!" var t2Closure = template` $ {0} $ { 'foo'} `; t2Closure ( 'สวัสดี' {foo: 'โลก'}); // "สวัสดีชาวโลก!"
สตริงดิบ
พิเศษraw
สถานที่ให้บริการที่มีขณะนี้บนอาร์กิวเมนต์ฟังก์ชั่หนังสือนแรกของแท็กคุณตัวอักษรคุณแม่แบบที่คุณคุณช่วยให้เข้าถึงสตริงดิบขณะที่พวกเขาเข้ามา
แท็กฟังก์ชั่น (สตริง ... ค่า) { console.log (strings.raw [0]); // "สตริงข้อความบรรทัดที่ 1 \ n บรรทัดข้อความสตริง 2" } tag`string บรรทัดข้อความ 1 \ n สตริงบรรทัดข้อความ 2`;
นอกจากนี้ {{jsxref ( "String.raw ()")}} วิธีการที่มีอยู่เพื่อสร้างสตริงดิบเช่นเดียวกับฟังก์ชั่นแม่แบบเริ่มต้นและสตริงจะสร้าง
String.raw`Hi \ n $ {2 + 3} `; // "สวัสดี \ N5!"
ข้อมูลจำเพาะ
สเปค | สถานะ | คิดเห็น |
---|---|---|
{{SpecName ( 'ES6', '# SEC-แม่แบบตัวอักษร', 'แม่แบบตัวอักษร')}} | {{Spec2 ( 'ES6')}} | คุณต้นเริ่มนิยามที่กำหนดไว้ในห้างหุ้นส่วนจำกัดหลายส่วนของสเปก: แม่แบบตัวอักษร , Tagged แม่ |
{{SpecName ( 'ESDraft', '# SEC-แม่แบบตัวอักษร', 'แม่แบบตัวอักษร')}} | {{Spec2 ( 'ESDraft')}} | ที่กำหนดไว้ในหลายส่วนของสเปก: แม่แบบตัวอักษร , Tagged แม่ |
ความเข้ากันได้เบราว์เซอร์
ลักษณะ | โครเมียม | ขอบ | Firefox (Gecko) | Internet Explorer | อุปรากร | การแข่งรถวิบาก |
---|---|---|---|---|---|---|
การสนับสนุนขั้นพื้นฐาน | {{CompatChrome (41)}} | {{}} CompatVersionUnknown | {{CompatGeckoDesktop ( "34")}} | {{}} CompatNo | {{CompatOpera (28)}} | {{CompatSafari (9)}} |
ลักษณะ | หุ่นยนต์ | โครเมี่ยมสำหรับ Android | Firefox มือถือ (Gecko) | IE มือถือ | Opera Mobile | ซาฟารีมือถือ |
---|---|---|---|---|---|---|
การสนับสนุนขั้นพื้นฐาน | {{}} CompatNo | {{CompatChrome (41)}} | {{CompatGeckoMobile ( "34")}} | {{}} CompatNo | {{CompatOpera (28)}} | {{CompatSafari (9)}} |
ดูสิ่งนี้ด้วย
- {{jsxref ( "สตริง")}}
- {{jsxref ( "String.raw ()")}}
- ไวยากรณ์คำศัพท์
- สตริงแม่แบบเหมือนในไวยากรณ์ที่เข้ากันได้ ES3
- "ES6 ในความลึก: สตริงแม่" ใน hacks.mozilla.org