Template literals

There was a scripting error on this page. While it is being addressed by site editors, you can view partial content below.

This translation is incomplete. Please help translate this article from English.

{{JsSidebar ( "เพิ่มเติม")}}

อักษรเป็นคุณตัวคุณแม่แบบคุณตัวอักษรของสตริงที่ช่วยให้หัวเรื่อง: การแสดงออกที่ฝังคุณตัวที่คุณคุณด้านใช้สตริงหลายคู่คุณสายและคุณสมบัติหัวเรื่อง: การแก้ไขสตริงกับพวกเขาพวกเขาถูกเรียกว่าได้ "สายแม่" ในรุ่นก่อน 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 แม่

ความเข้ากันได้เบราว์เซอร์

{{}} CompatibilityTable
ลักษณะ โครเมียม ขอบ 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)}}

ดูสิ่งนี้ด้วย

Document Tags and Contributors

 ผู้มีส่วนร่วมกับหน้านี้: pawatzaza5
 อัปเดตล่าสุดโดย: pawatzaza5,