Rumah > Artikel > hujung hadapan web > Mengapakah `console.log\\`1`` Mengembalikan Tatasusunan dalam JavaScript?
Backticcks dan Function Invocation dalam JavaScript
Apabila menggunakan backticks () untuk membalut rentetan literal dalam JavaScript, anda mungkin menghadapi tingkah laku yang tidak dijangka seperti templat bertanda sedang digunakan. Dalam kes ini, console.log1 menghasilkan output "console.log1`nVM12380:2 ["1", mentah: Array[1]]".
Templat Berteg dalam ES6
Penjelasan terletak pada konsep templat berteg, yang diperkenalkan dalam ES6. Templat berteg membolehkan anda menandai rentetan templat dengan fungsi. Apabila rentetan digunakan dengan fungsi, fungsi menerima nilai yang dihuraikan bagi rentetan templat dan nilai dalam rentetan.
Fungsi sebagai Tag
Dalam contoh yang disediakan, console.log digunakan sebagai fungsi tag. Ia dipanggil secara berkesan dengan nilai rentetan yang dihuraikan dan nilai rentetan literal sebagai tatasusunan. Fungsi kemudiannya boleh memanipulasi nilai ini dan mengembalikan rentetan baharu atau menghantarnya bersama untuk pemprosesan selanjutnya.
Array Dikembalikan
Fungsi console.log tidak melakukan apa-apa yang istimewa memproses nilai, jadi ia mengembalikan tatasusunan yang mengandungi nilai rentetan literal. Tatasusunan ini kemudiannya dicetak oleh console.log, menghasilkan output yang anda perhatikan.
Transpilasi dan Literal Templat
Apabila menggunakan ciri JavaScript moden seperti literal templat dengan huruf lama pelayar, Babel atau transpiler serupa digunakan untuk menukar kod kepada ES5, yang disokong oleh penyemak imbas ini. Kod transpil untuk contoh ialah:
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
Kod transpil ini mencipta tatasusunan yang mengandungi rentetan literal "1" dan menghantarnya ke console.log sebagai hujah.
Oleh itu, notasi backtick 1 menggunakan console.log sebagai fungsi templat bertanda, yang mengembalikan tatasusunan yang kemudiannya dicetak. Sifat mentah dalam tatasusunan yang dikembalikan mengandungi nilai rentetan literal.
Atas ialah kandungan terperinci Mengapakah `console.log\\`1`` Mengembalikan Tatasusunan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!