问题非常简单。在Javascript中,为什么:
'string' + undefined
//=> 'stringundefined'
我本来希望只返回string
,或者至少是一个错误,指出你不能将undefined转换为字符串数据类型。
答案 0 :(得分:3)
由于您正在执行字符串连接,因此会发生强制类型转换。 undefined
正在转换为字符串值并添加到字符串
'string' + undefined
Step 1: 'string'
Step 2: undefined -> 'undefined'
Step 3: 'string' + 'undefined'
答案 1 :(得分:2)
当你连接字符串时,每个项目都会被强制转换为字符串,而未定义变为" undefined"。
String(undefined); // "undefined"
答案 2 :(得分:2)
有趣的问题。
因为ECMAScript使用内部ToString操作将原语转换为字符串。
undefined=> "undefined"
null=>"null"
boolean=>either "true" or "false"
number>the number as a string e.g. "1.765"