簡體   English   中英

模板文字如何在 javascript 中工作?

[英]How do template literals work in javascript?

我只是好奇 JS 如何處理模板文字中的表達式。 一方面,

console.log(`hi ${3>5}`); //false

意味着邏輯表達式確實被評估了,並且

function myFunction()
{
      return("caca");
};

console.log(`${myFunction()}`);`

實際上產生了所需的“caca”,這意味着 function 的執行就像之前的邏輯表達式一樣被執行,但是

console.log (`${function() {return("caca");}}`); //returns function() {return("caca");}

才不是。 我知道將 function 表達式標記為自執行實際上會運行它,但我只是想知道為什么 JS 引擎會這樣。 我知道 JS 引擎不關心我的“直覺”,但我直觀地假設模板文字中的 function 表達式將被執行。

好吧,如果您要評估模板文字中“不起作用”的代碼,那么您實際上並沒有運行function。 舉個例子,這段代碼:

function myFunction()
{
      return("caca");
};

就其本身而言,這是一個 function,而不是字符串"caca" 只有當您運行 function 時,它才會返回該值。 在您的模板文字中,您只是定義了一個匿名 function。 要運行它,您需要執行以下操作:

console.log (`${(function() {return("caca");})()}`);

這會在定義 function 后運行它,並記錄函數的返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM