首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么jQuery的$ .type()定义为本机ECMAScript Error对象返回"object"而不是"error"?

这个问题涉及到jQuery库中的$ .type()函数,以及ECMAScript中的Error对象。

首先,jQuery库中的$ .type()函数用于判断一个对象的类型。它会返回一个字符串,表示该对象的类型。在这个问题中,$ .type()被用于判断一个本机ECMAScript Error对象的类型。

然而,由于一些历史原因,ECMAScript中的Error对象的类型被定义为"object",而不是"error"。这是因为在ECMAScript的早期版本中,Error对象实际上是一个对象,而不是一个真正的错误类型。因此,在这种情况下,$ .type()函数会返回"object"。

如果您需要检查一个对象是否是一个错误对象,可以使用JavaScript中的instanceof运算符,如下所示:

代码语言:javascript
复制
if (obj instanceof Error) {
  // obj是一个错误对象
}

总之,$ .type()函数返回"object"是因为ECMAScript Error对象的类型被定义为"object",而不是"error"。如果您需要检查一个对象是否是一个错误对象,可以使用instanceof运算符。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

js数据类型

x // 函数没有返回值时,默认返回undefined null 尚未存在对象 // 典型用法 (1) 作为函数参数,表示该函数参数不是对象。...undefined 与 null   null即是一个不存在对象占位符   ECMAScript认为undefined是从null派生出来,所以把它们定义相等。   ...// Number() 函数强制类型转换与 parseInt() 和 parseFloat() 方法处理方式相似,只是它转换是整个值,不是部分值。...'array' : (item instanceof 'object') } 4. constructor(根据对象constructor判断)   W3C定义:constructor 属性返回对创建此对象数组函数引用...判断是否数组 数组不是基础类型 typeof [] === 'object' // true 要判断一个变量是否数组,需要用 Array.isArray( var ) 如有建议或补充,欢迎留言交流~

3.5K10

Web 前端面试经历——百度

reg, error 全部被检测object类型,其他变量能够被正确检测出来。...Error]' : 'error' } 再来看看type方法: // type实现 type: function( obj ) { // 若传入是null或undefined,则直接返回这个对象字符串...到这儿,我们就应该明白为什么Object.prototype.toString.call和$.type那么像了吧,其实jquery中就是用Object.prototype.toString.call实现...如果构造函数没有返回对象,那么new出来结果步骤1创建对象。 (一般情况下构造函数不返回任何值,不过用户如果想覆盖这个返回值,可以自己选择返回一个普通对象来覆盖。...譬如可以在MDN上看到,以常规函数调用Date(即不加 new 操作符)将会返回一个字符串,不是一个日期对象,如果这样模拟的话会无效。 觉得看起来比较繁琐?可以看下图梳理: ? 那现在再回头看看。

64610
  • JS与ES6高级编程学习笔记(一)——JavaScript核心组成

    因为它们值都是 5,因此返回 true。 然后,当我们使用 === 操作符时,两者值以及类型都应该是相同。new Number() 是一个对象不是 number,因此返回 false。...2.3、运算符 (1)、逻辑运算符非布尔类型运算 JavaScript在语法上没有严格要求逻辑运算表达式必须布尔类型,返回结果也不是一定为布尔类型,可以根据规则转换。...||在是逻辑运算符,表示"或"意思,当运算符同为false时结果false否则为真,但或运算如果不是针对逻辑值运算时,如果第一个值是true,则直接返回第一个值,如果第一个值是false,则直接返回第二个值...//创建对象obj1 var obj1 = {}; //对象obj1定义name属性 Object.defineProperty(obj1, 'name', { writable: false...(2)、querySelectorAll()方法 方法querySelectorAll()与jQuery$(selector)类似,接受参数是一个CSS选择符,返回是所有匹配元素集合不仅仅是一个元素

    2K20

    大话 JavaScript(Speaking JavaScript):第二十六章到第三十章

    例如: if (x) return x; 更喜欢字面量不是构造函数 几个字面量产生对象也可以通过构造函数创建。...来自 ECMAScript 规范: [[Match]]内部属性值是RegExp对象模式实现相关表示。 唯一没有内部属性内置构造函数是ErrorObject。...在前面的交互中,Error返回了一个具有自己属性实例,但它是一个新实例,不是e。...前者更像是一种类型,构造函数是实现类一种方式。JavaScript 内置定义方法有限,这就是为什么有许多 API 来帮助完成这个任务。...因此,EIA 是最接近语言标准,不是 ECMA-262 一部分。该 API 已经设计用于与 ECMAScript 5 和 ECMAScript 6 一起使用。

    15710

    基础 |判断 JS 中变量类型竟然可以如此简单

    这次,我们也使用typeof检测变量类型: 从输出结果来看,arr, json, nul, date, reg, error 全部被检测object类型,其他变量能够被正确检测出来。...Return Result (2) 上面的规范定义Object.prototype.toString行为: 首先,取得对象一个内部属性[[Class]],然后依据这个属性,返回一个类似于”[object...05 jquery中$.type实现 在jquery中提供了一个$.type接口,来让我们检测变量类型: 看到输出结果,有没有一种熟悉感觉?...我们来看看jquery(2.1.2版本)内部是怎么实现$.type方法: 我们先来看看jQuery.each这部分: 再来看看type方法: 当typeof obj === "object"...到这儿,我们就应该明白为什么Object.prototype.toString.call和$.type那么像了吧。

    1.8K10

    【JS进阶】你真的掌握变量和类型了吗

    、Function等都属于特殊对象 二、为什么区分原始类型和对象类型 2.1 不可变性 上面所提到原始类型,在ECMAScript标准中,它们被定义primitive values,即原始值,代表值本身是不可被改变...0.1二进制 是这么多位不是更多位???...在ECMAScript关于类型定义中,只给出了Object类型,实际上,我们平时使用很多引用类型变量,并不是Object构造,但是它们原型链终点都是Object,这些类型都属于引用类型。...如果此方法在自定义对象中未被覆盖,toString() 返回 "[object type]",其中type对象类型。...取得类型,借助一个class2type对象将字符串多余代码过滤掉,例如[object function]将得到array,然后在后面的类型判断,如isFunction直接可以使用jQuery.type

    3.2K30

    AJAX

    ,是一个jsonobject对象,ajax方法就会默认地把它编码成某种格式 (urlencoded:?...默认不需要显性指定这个属性,ajax会根据服务器返回content Type来进行转换; 比如我们服务器响应content Typejson格式,这时ajax方法就会对响应内容...Typetext/html,所以返回是String;但如果我们想要一个json对象 设定dataType:"json"即可,相当于告诉ajax方法把服务器返回数据转成json对象发送到前端....结果object 当然, return HttpResponse(json.dumps(a),content_type="application/json") 这样就不需要设定...,也就是datetime对象json.dumps是无法处理这样在类型,那就需要通过自定义处理器来做扩展,如下: class JsonCustomEncoder(json.JSONEncoder

    4.4K70

    谈谈 Object.prototype.toString 。

    [[Class]] [[Class]]是一个内部属性,值一个类型字符串,可以用来判断值类型。 有这么一段详细解释: 本规范每种内置对象定义了 [[Class]] 内部属性值。...宿主对象 [[Class]] 内部属性值可以是除了 "Arguments", "Array", "Boolean", "Date", "Error", "Function", "JSON", "Math...; 令 tag Get(O, @@toStringTag) 返回值( Get(O, @@toStringTag) 方法,既是在 O 是一个对象,并且具有 @@toStringTag 属性时,返回...language type or of specific ECMAScript specification type values 大概意思是:Internal slots 对应于与对象相关联并由各种...ECMAScript规范算法使用内部状态,它们没有对象属性,也不能被继承,根据具体 Internal slot 规范,这种状态可以由任何ECMAScript语言类型或特定ECMAScript规范类型值值组成

    51620

    JS进阶 你真的掌握变量和类型了吗

    Array、Function等都属于特殊对象 二、为什么区分原始类型和对象类型 2.1 不可变性 上面所提到原始类型,在ECMAScript标准中,它们被定义primitive values,即原始值...计算出 0.1二进制 是这么多位不是更多位???...在ECMAScript关于类型定义中,只给出了Object类型,实际上,我们平时使用很多引用类型变量,并不是Object构造,但是它们原型链终点都是Object,这些类型都属于引用类型。...如果此方法在自定义对象中未被覆盖,toString() 返回 "[object type]",其中type对象类型。...取得类型,借助一个class2type对象将字符串多余代码过滤掉,例如[object function]将得到array,然后在后面的类型判断,如isFunction直接可以使用jQuery.type

    2.7K30

    stuts2返回json数据简单实现

    基本流程是在Action定义一个对象属性,例如map类型一个成员变量,提供getter方法,然后配置actionresult试图类型json,这样在页面上访问Action这个map成员变量时,...以下例子就是Action中定义了一个Map类型result成员,对应action视图类型json,那么在JSP页面的ajax请求响应success分支中,获取到就是json格式数据。...上述配置,action配置中success和error类型都是JSON,这样不管Action走入是return SUCCESS还是ERROR分支,都会把成员变量result对象转化成JSON返回给页面的...那么问题来了:为什么配置errorerror.jsp时候,ajax请求走入了error分支呢?...还有个问题就是,action哪些成员变量会被转化成JSON数据返回给页面呢?如果我定义了多个关联对象,那么是不是它们都会放入json返回值中呢?待验证。

    1K70

    ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13新特性大全

    ECMAScript 2022(ES13)提案阶段,更倾向于面向对象 声明类字段:类字段可以在类顶层被定义和初始化 私有方法&字段:用#前缀来定义私有方法和字段 类静态公共方法和字段:增加了静态公共字段...(object, property):使用 Object.hasOwn 替代 Object.prototype.hasOwnProperty.call Error Cause:为了便捷传递导致错误原因...左侧 运算符求值undefined或null,返回其右侧 可选链接:?....():去掉开头结尾空格文本 String.prototype.matchAll:所有匹配匹配对象返回一个迭代器 Symbol.prototype.description:只读属性,回 Symbol...对象可选描述字符串 Object.fromEntries():返回一个给定对象自身可枚举属性键值对数组 可选 Catch JSON Superset 超集 JSON.stringify() 加强格式转化

    2.3K10

    Django之json、Ajax简介及实例介绍

    Typetext/html,所以返回是String;但如果我们想要一个json对象 设定dataType:"json"即可,相当于告诉ajax方法把服务器返回数据转成json对象发送到前端...()函数返回String类型,返回将表单元素编码后可用于表单提交文本字符串。...一般情况下,我们希望这个script标签能够动态调用,不是像上面因为固定在html里面所以没等页面显示就执行了,很不灵活。...,服务端则会返回以你定义回调函数名方法,将获取json数据传入这个方法完成回调: 将8001f()改写: function f(){ addScriptTag("http...,jsonpCallback是前端定义回调函数方法名'SayHi',server端接受callback键对应值后就可以在其中填充数据打包返回了; jsonpCallback参数可以不定义jquery

    6.6K20

    jquery ajax参数详解

    beforeSend(XHR) type:Function 发送请求前可修改 XMLHttpRequest 对象函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一参数。...如果你明确地传递了一个content-type给 $.ajax() 那么他必定会发送给服务器(即使没有数据要发送) context type:Object 这个对象用于设置Ajax相关回调函数上下文...提供data和type两个参数:data是Ajax返回原始数据,type是调用jQuery.ajax时提供dataType参数。函数返回值将由jQuery进一步处理。...在1.4中,JSON就会生成一个JavaScript对象script则会执行这个脚本。随后服务器端返回数据会根据这个值解析后,传递给回调函数。...用于重写或者提供一个增强XMLHttpRequest 对象。这个参数在jQuery 1.3以前不可用。 xhrFields type:map 一对“文件名-文件值”在本机设置XHR对象

    2.5K10

    37个JavaScript基本面试问题和解答(建议收藏)

    将该对象传递给Object.keys将返回一个包含这些设置键数组(即使它们值未定义)。 14、下面的代码将输出到控制台,为什么?...当在内部方法中调用fn()时,该函数在全局级别作为参数传递,this.length将有权访问在Object obj中定义var length = 10(全局声明)不是length = 5。...但请注意潜在缺陷:Object.clone()只会执行浅拷贝,不是深拷贝。这意味着嵌套对象不会被复制。...JavaScript引擎将使阵列插槽3至9成“空插槽”。 b)在这里,a [6]将输出未定义值,但时隙仍空,不是定义。在某些情况下,这可能是一个重要细微差别。...该表达式将被评估true,因为NULL将被视为任何其他未定义变量。 注意:JavaScript区分大小写,我们在这里使用NULL不是null。 36、代码返回后会怎么样?

    3K10

    深入了解“前端模块化”发展体系

    . // 当代码运行到这时,当前 module 会导出 someFunc 不是默认对象 })(module, module.exports); return module.exports;...在服务端可能这不是一个问题(因为服务器文件都是存放在本地,并且是有缓存),但在浏览器环境下,这会导致阻塞,使得我们后面的步骤无法进行下去,还可能会执行一个未定义方法导致出错。.../inventory"], function(cart, inventory) { //通过返回一个对象定义你自己模块 return { color...ECMAScript6 Module ECMAScript6 标准增加了 JavaScript 语言层面的模块体系定义,作为浏览器和服务器通用模块解决方案它可以取代我们之前提到 AMD ,CMD ,...,对于使用上有疑问可以看看 ES6 Module 入门,阮一峰[11],当然你也可以查看 TC39官方文档[12] 为什么要在标准中添加模块体系定义呢?

    72740
    领券