亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中object和Object的區別(詳解)

發布時間:2020-10-03 18:51:20 來源:腳本之家 閱讀:362 作者:jingxian 欄目:web開發

JavaScript中object和Object有什么區別,為什么用typeof檢測對象,返回object,而用instanceof 必須要接Object呢

JavaScript中object和Object的區別(詳解)

這個問題和我之前遇到的問題非常相似,我認為這里有兩個問題需要解決,一個是運算符new的作用機制,一個是function關鍵字和Funtion內置對象之間的區別。看了一些前輩的博客和標準,這里幫提問者總結一下。

1、new

new運算符的作用是創建一個對象實例。這個對象可以是用戶自定義的,也可以是帶構造函數的一些系統自帶的對象。如果 new 表達式之后的構造函數返回的不是JavaScript內置的引用對象(Object,String等)new會創建一個匿名對象并返回;如果是內置引用對象或者原始類型就會覆蓋匿名對象。(無 return 時其實為 return 原始類型 undefined)。new運算符詳細介紹

2、function和Function

ECMAScript 的Function實際上就是一個功能完整的對象。而function這個關鍵字是用來創建所有對象的構造函數或者普通函數要用的關鍵字ECMAScript如何定義類和對象,提問者var a=new function(){}實際上是用構造函數的方法創建了一個匿名對象的實例,而并不是系統內置對象Function的實例,所以a instanceof Function返回false,typeof返回"object"。

那么什么時候typeof返回"function"呢?當它真的是一個函數名的時候。

 

`function a (){}
//undefined
typeof a
//"function"`

 typeof 和 instanceof 這兩個功能就是完全不一樣的運算符。typeof 是為了檢查數據類型,instanceof是為了看一個變量是否是某個對象的實例。

typeof 的目的,是檢查數據類型,而它的輸出,非常確定的只有如下幾個:

•undefined

•object

•boolean

•number

•string

•function

•symbol(新)

typeof 返回的結果,是一個字符串。只要檢查的變量是一個對象,或者是 Null,那它就會返回 object,這當然不夠精確,所以有了 instanceof。

因為不存在 object 這個對象,所以會提示你 object is not defined 。而 Object 是 JavaScript 中一個重要的對象,其它對象都是基于它的,包括你創建的函數。你創建 a 的時候,使用的是 new 關鍵字,這相當于是一個 Function 引用類型的實例。所以 a instanceof Object 就會是 true。

區別是Object 是一種對象類型, "object"是一個字符串, 你不定義的話沒有意義。

以上這篇JavaScript中object和Object的區別(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新巴尔虎右旗| 遂宁市| 周至县| 岢岚县| 南江县| 柞水县| 武清区| 大埔区| 石河子市| 南华县| 内乡县| 遂川县| 宝坻区| 扶风县| 石狮市| 体育| 泗水县| 平遥县| 阳西县| 绥德县| 阿巴嘎旗| 陆河县| 岳池县| 邮箱| 鄂伦春自治旗| 沂南县| 宁远县| 瓮安县| 景泰县| 胶南市| 黄冈市| 洞口县| 海宁市| 定远县| 右玉县| 法库县| 紫阳县| 莒南县| 兰西县| 绥德县| 苍南县|