2015-11-20 100 views
0

我測試我爲安全起見,以及一邊做應用程序,我碰到這種情況就來了:有消息你好你怎麼樣差異()和alert``

<script> 
function myFunction() { 
    alert`"Hello\nHow are you?"`; 
} 
</script> 

結果彈出?

<script> 
function myFunction() { 
    alert("Hello\nHow are you?"); 
} 
</script> 

結果彈出與消息你好你怎麼樣?

爲什麼這兩個腳本會產生相同的結果?

使用此鏈接來進行測試: http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_alert2

+0

千萬要知道,即使是半舊的瀏覽器會在第一個語法上爆炸... – dandavis

+0

http://stackoverflow.com/questions/27678052/what-is-the-usage-of-the-backtick-symbol-in-javascript – harshal

回答

5

這就是所謂的tagged template string

模板字符串是寫入字符串文字的一種不同方式,它已在ES6中引入,它提供了額外的功能,例如您所描述的功能。

你在alert取回您的字符串的原因是因爲alert.toString荷蘭國際集團的對象被傳遞到它,這其實看起來更像

["\"Hello\nHow are you?\""]