在字符串插值中使用 typeof 运算符来检查运行代码输出时变量的数据类型不正确

问题描述 投票:0回答:1

let num = 1
let st = 'data'
console.log(typeof `${num}`, typeof `${st}`)

第一个变量的输出应该是数字,但当我使用字符串插值时它打印字符串

console.log(typeof `${num}`)
它打印字符串,但当我写
console.log(typeof num)
时它打印数字 有人可以解释一下为什么吗

javascript operator-keyword typeof
1个回答
0
投票

字符串插值的结果(称为 模板文字)根据定义是一个字符串,因此这就是

typeof
返回的内容。插值的原始表达式的类型不可用。通常,您不只是将一个表达式放入模板中,还会有多个表达式和/或其他文本,因此来自插值表达式的类型甚至没有意义。例如。如果你这样做了

console.log(typeof `num = ${num}, st = ${st}`);

为什么您期望结果与

num
st
的类型相关?

© www.soinside.com 2019 - 2024. All rights reserved.