let num = 1
let st = 'data'
console.log(typeof `${num}`, typeof `${st}`)
第一个变量的输出应该是数字,但当我使用字符串插值时它打印字符串
console.log(typeof `${num}`)
它打印字符串,但当我写console.log(typeof num)
时它打印数字
有人可以解释一下为什么吗
字符串插值的结果(称为 模板文字)根据定义是一个字符串,因此这就是
typeof
返回的内容。插值的原始表达式的类型不可用。通常,您不只是将一个表达式放入模板中,还会有多个表达式和/或其他文本,因此来自插值表达式的类型甚至没有意义。例如。如果你这样做了
console.log(typeof `num = ${num}, st = ${st}`);
为什么您期望结果与
num
或 st
的类型相关?