Javascript 为什么在这种情况下不会抛出“未定义对象”错误?

Javascript 为什么在这种情况下不会抛出“未定义对象”错误?,javascript,html,error-handling,try-catch,undefined-behavior,Javascript,Html,Error Handling,Try Catch,Undefined Behavior,如果没有try-catch,下面的代码段将抛出未捕获的ReferenceError:myObj未定义 试一试{ 如果myObj!==null&&typeof myObj!==undefined; }抓住e{ document.getElementById'error'.innerHTML=e.Message; } 错误是 e.消息中的消息为小写: 试一试{ 如果myObj!==null&&typeof myObj!==undefined; }抓住e{ document.getElementB

如果没有try-catch,下面的代码段将抛出未捕获的ReferenceError:myObj未定义

试一试{ 如果myObj!==null&&typeof myObj!==undefined; }抓住e{ document.getElementById'error'.innerHTML=e.Message; } 错误是
e.消息中的消息为小写:

试一试{ 如果myObj!==null&&typeof myObj!==undefined; }抓住e{ document.getElementById'error'.innerHTML=e.message; } 错误是
只需从exception对象中删除Message属性,只需将其本身删除即可

document.getElementById('error').innerHTML = e;
这将起作用

您应该使用e.message,因为e不包含属性名消息,所以未定义

试一试{ 如果myObj!==null&&typeof myObj!==undefined; }抓住e{ document.getElementById'error'.innerHTML=e.message; //或者您也可以直接使用e。 } 错误是
定义在哪里?@void是的,未定义。此代码将打印错误消息。一个指针。未定义本身就是一个对象。所以你应该使用myObj!==未定义id='error'的mark元素在代码运行时可能没有定义-是文件中标记之前的javascript吗?@student忽略这一点,只是尝试了一些东西。已编辑。无法决定最佳答案。你的回答包含了比要求更多的信息。有什么建议为什么不打印值吗?没有,我是说小提琴。没有错误!