Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 抛出错误(';msg';)与抛出新错误(';msg';)_Javascript_Exception - Fatal编程技术网

Javascript 抛出错误(';msg';)与抛出新错误(';msg';)

Javascript 抛出错误(';msg';)与抛出新错误(';msg';),javascript,exception,Javascript,Exception,有什么区别?在chrome控制台中查看它们,它们看起来一模一样。对象上的相同属性和相同的\uuuuu proto\uuu链。几乎像是错误像工厂一样运行 哪一个是正确的,为什么是正确的?两者都可以;这在以下文件中明确说明: 。。。因此,函数调用Error(…)相当于具有相同参数的对象创建表达式newerror(…) 两者都很好;这在以下文件中明确说明: 。。。因此,函数调用Error(…)相当于具有相同参数的对象创建表达式newerror(…) 错误的行为确实像工厂一样,就像其他一些本机构造函数一

有什么区别?在chrome控制台中查看它们,它们看起来一模一样。对象上的相同属性和相同的
\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的最高优先级。口头禅是“不要破坏网络。”