简体   繁体   中英

What is difference between parameter with ' ' and parameter without ' ' in Template literals (js)

What is the difference between parameter with quotation and parameter without quotation in Template literals in JavaScript

Why when I put quotation >> ('${key}') it does the function >> fun('${key}') while when I delete quotation >> (${key}) it doesn't do the function >> fun(${key}) what different between parameter with quotation and parameter without quotation in Template literals with JavaScript

for ( let key in states) { 
console.log(key);
var n =states[key].name;
var cur = states[key].currency;
console.log()

con.innerHTML += `<div> <span>name : "  ${n}
     " </span> <br> <span>cur : "  ${cur}
     " </span> </div><br> <span>cur : "  ${key}
     " </span>  <button onclick= fun('${key}')> select </button><hr> `
}

function fun(o) { 
alert(states[o].name);
alert(states[o].currency);
}

the code above run the function >> fun('${key}')

 for (let key in states) { console.log(key); var n = states[key].name; var cur = states[key].currency; console.log() con.innerHTML += `<div> <span>name: " ${n} " </span> <br> <span>cur: " ${cur} " </span> </div><br> <span>cur: " ${key} " </span> <button onclick= fun(${key})> select </button><hr> ` } function fun(o) { alert(states[o].name); alert(states[o].currency); }

It just adds ' in the final string.

The reason why this works in your example, but when you omit them it doesn't is because you are using that to generate js code inside an HTML handler.

Your keys are strings, so in js they need to be enclosed in either ' or " . When you omit them they are treated as variables and most likely you don't have variables (or constants) with that name(s).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM