Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah `console.log\\`1`` Mengembalikan Tatasusunan dalam JavaScript?

Mengapakah `console.log\\`1`` Mengembalikan Tatasusunan dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-23 06:24:18620semak imbas

Why Does `console.log\`1`` Return an Array in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn