Javascript 抛出错误(';msg';)与抛出新错误(';msg';)
有什么区别?在chrome控制台中查看它们,它们看起来一模一样。对象上的相同属性和相同的Javascript 抛出错误(';msg';)与抛出新错误(';msg';),javascript,exception,Javascript,Exception,有什么区别?在chrome控制台中查看它们,它们看起来一模一样。对象上的相同属性和相同的\uuuuu proto\uuu链。几乎像是错误像工厂一样运行 哪一个是正确的,为什么是正确的?两者都可以;这在以下文件中明确说明: 。。。因此,函数调用Error(…)相当于具有相同参数的对象创建表达式newerror(…) 两者都很好;这在以下文件中明确说明: 。。。因此,函数调用Error(…)相当于具有相同参数的对象创建表达式newerror(…) 错误的行为确实像工厂一样,就像其他一些本机构造函数一
\uuuuu proto\uuu
链。几乎像是错误
像工厂一样运行
哪一个是正确的,为什么是正确的?两者都可以;这在以下文件中明确说明: 。。。因此,函数调用
Error(…)
相当于具有相同参数的对象创建表达式newerror(…)
两者都很好;这在以下文件中明确说明: 。。。因此,函数调用
Error(…)
相当于具有相同参数的对象创建表达式newerror(…)
错误
的行为确实像工厂一样,就像其他一些本机构造函数一样:数组
,对象
,等等。所有检查都像if(!(数组的此实例)){返回新数组(参数);}
。(但请注意,String(x)
和newstring(x)
是非常不同的,对于Number
和Boolean
也是如此)
也就是说,在发生错误的情况下,甚至不需要抛出错误
对象<代码>抛出“坏事情发生了”也可以运行您甚至可以抛出一个对象文本进行调试:
var err1 = Error('message');
var err2 = new Error('message');
错误
的行为确实像工厂一样,就像其他一些本机构造函数一样:数组
,对象
,等等。所有检查都像if(!(数组的此实例)){返回新数组(参数);}
。(但请注意,String(x)
和newstring(x)
是非常不同的,对于Number
和Boolean
也是如此)
也就是说,在发生错误的情况下,甚至不需要抛出错误
对象<代码>抛出“坏事情发生了”也可以运行您甚至可以抛出一个对象文本进行调试:
var err1 = Error('message');
var err2 = new Error('message');
所有本机构造函数都是在ECMAScript中定义的,包括在没有
new
的情况下调用时各自的行为。另请参阅,所有本机构造函数都是在ECMAScript中定义的,包括在没有new
的情况下调用时各自的行为。另请参阅,我恐怕不完全同意String(“abc”)
不创建String
对象,而new String(“abc”)
创建对象。@pimvdb:true,我已将其更改为object
=>对象(“foo”)
返回字符串对象。。。说到这里,几乎所有本机构造函数都有点错误<代码>数字,布尔
,日期
,字符串
都不...数组
,对象
和错误
都做了,但是事件
和所有DOMxxxx
api构造函数都会抛出错误。我还认为新数组(参数)
做的事情与数组(1,2,3)做的事情不完全一样。但我可能只是吹毛求疵:)关于抛出字符串的补充:@alex:grated,抛出非Error
实例(或字符串文本)会失去堆栈跟踪。只是对链接的文章吹毛求疵:arguments.callee
在严格模式下是被禁止的,恐怕我并不完全同意String(“abc”)
不创建String
对象,而new String(“abc”)
创建对象。@pimvdb:true,我已将其更改为object
=>对象(“foo”)
返回字符串对象。。。说到这里,几乎所有本机构造函数都有点错误<代码>数字
,布尔
,日期
,字符串
都不...数组
,对象
和错误
都做了,但是事件
和所有DOMxxxx
api构造函数都会抛出错误。我还认为新数组(参数)
做的事情与数组(1,2,3)做的事情不完全一样。但我可能只是吹毛求疵:)关于抛出字符串的补充:@alex:grated,抛出非Error
实例(或字符串文本)会失去堆栈跟踪。只是对链接的文章吹毛求疵:arguments.callee
在严格模式下是禁止的。这在ES6中也是正确的吗?是的。有关当前文档,请参阅:@paulmelnikow-Yes。向后兼容性是TC39的最高优先级。格言是“不要破坏网络”。这在ES6中也是真的吗?是的。有关当前文档,请参阅:@paulmelnikow-Yes。向后兼容性是TC39的最高优先级。口头禅是“不要破坏网络。”