Javascript “throw”和字符串串联的行为不清楚
我有以下代码:Javascript “throw”和字符串串联的行为不清楚,javascript,Javascript,我有以下代码: const func=()=>{ 抛出新错误('hey')+'boo' 返回“OK” } 试一试{ 常量val=func() console.log(val) }捕获(错误){ console.log(错误) }这是因为您正在执行新错误('hey')+'boo'并抛出该错误(这可能会令人惊讶)。下面是代码的作用: 创建错误对象 在错误对象上执行+和'boo',这会将错误对象转换为字符串(“error:hey”),并将“boo”附加到该字符串上 抛出生成的“Error:heyb
const func=()=>{
抛出新错误('hey')+'boo'
返回“OK”
}
试一试{
常量val=func()
console.log(val)
}捕获(错误){
console.log(错误)
}
这是因为您正在执行新错误('hey')+'boo'
并抛出该错误(这可能会令人惊讶)。下面是代码的作用:
- 创建错误对象
- 在错误对象上执行
和+
,这会将错误对象转换为字符串('boo'
),并将“error:hey”
附加到该字符串上“boo”
- 抛出生成的
字符串“Error:heyboo”
Error
对象
这段代码也做了同样的事情,希望通过将事情分解为多个步骤使其更清晰:
const func=()=>{
//创建错误
常量错误=新错误(“嘿”);
//将`“boo”`附加到它以获取字符串
常量str=错误+“boo”;
//抛开绳子
投掷str;
//这是永远达不到的
返回“OK”;
};
试一试{
常量val=func();
控制台日志(val);
}捕获(错误){
console.log(错误);
}
您可以使用检查语句执行的顺序。展开“要点”右侧的树: