中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

秦皇岛市| 桓仁| 抚远县| 皮山县| 新闻| 清涧县| 渑池县| 建湖县| 蚌埠市| 五常市| 万山特区| 石阡县| 南昌县| 右玉县| 华容县| 方正县| 郎溪县| 南溪县| 伊宁县| 鸡泽县| 崇明县| 六安市| 临沭县| 漳浦县| 烟台市| 莆田市| 绥化市| 柯坪县| 武胜县| 阳信县| 方山县| 三河市| 罗平县| 凤台县| 宜良县| 霍州市| 桑日县| 黎城县| 郯城县| 长寿区| 忻州市|