摘要:三包裝對象的概念在中,一切皆對象,包括三種原始類型的值數值字符串布爾值,在一定條件下,也會自動轉為對象,也就是原始類型的包裝對象。每當讀取數字字符串和布爾值的屬性或方法時,創建的臨時對象稱做包裝對象。
一、ECMAScript數據類型
(1)最新的 ECMAScript 標準定義了 7 種 數據類型:
6種 原型類型:
Boolean. 布爾值,true 和 false.
null. 一個表明 null 值的特殊關鍵字。 JavaScript 是大小寫敏感的,因此 null 與 Null、NULL或其他變量完全不同。
undefined. 變量未定義時的屬性。
Number. 表示數字,例如: 42 或者 3.14159。
String. 表示字符串,例如:"Howdy"
Symbol ( 在 ECMAScript 6 中新添加的類型).。一種數據類型,它的實例是唯一且不可改變的。
以及 Object 對象
(2)這7種數據類型中,對象為“引用類型”,其他六種為“原始類型”(或叫“基本類型”)。
二、原始類型沒有屬性和方法(1)按原始類型和引用類型的定義來說,只有引用類型(對象)才有屬性和方法,原始類型是沒有屬性和方法的。
(2)但是我們也能經??吹接邢旅孢@樣的寫法。
(3)我們使用 toString() 方法,將 num 這個數值類型轉換成了字符串類型,如此我們用 原始類型 num 調用了 toString() 方法,那么是不是原始類型也能調用方法呢?答案是否定的。仍然只有對象才能擁有屬性和方法。
(4)【疑問】為什么 num 調用了 toString() 卻沒有報錯呢?這就需要我們了解包裝對象的概念了。
三、包裝對象的概念(1)在JavaScript中,“一切皆對象”,包括三種原始類型的值(數值、字符串、布爾值),在一定條件下,也會自動轉為對象,也就是原始類型的“包裝對象”。
(2)包裝對象是特殊的引用類型。每當讀取數字、字符串和布爾值的屬性或方法時,創建的 臨時對象 稱做包裝對象。
四、包裝對象 4.1 構造函數(1)為了便于引用字符串的屬性和方法,JavaScript將字符串值通過調用 new String() 的方式 轉換成對象,這個對象繼承了字符串的屬性和方法,并被用來處理屬性和方法的引用。數值和布爾值也是如此。
(2)雖然包裝對象看上去和原來的值一模一樣,顯示出來的也是一模一樣,但他們的 類型 已經變為 object !
(3)【注意】包裝對象和原始值用 === 比較會返回 false。
4.2 數據類型轉換(1)Number、String 和 Boolean,如果不作為構造函數調用(即調用時不加 new);此時,Number()、Boolean() 和 String() 被當做普通函數,把任何類型的數據轉換為 number、boolean和string類型(注意不是其包裝類型)。
4.3 總結(1)這三個包裝對象作為 構造函數 使用(帶有 new)時,可以將 原始類型的值轉為對象;
(2)作為 普通函數 使用時(不帶有 new),可以將任意類型的值,轉為原始類型的值。
五、包裝對象的銷毀(1)【注意】一旦包裝對象的屬性或方法的引用結束,這個新創建的對象就會銷毀。
(2)【說明】在上面的例子中,代碼第二行 name 屬性賦值時,包裝對象就會登場,創建一個 str 對應的臨時對象,當然,這行代碼執行完成,這個對象也就被銷毀。然后在第三行則會創建一個新的包裝對象,這個對象當然沒有 name 屬性,所以輸出的是 undefined。
六、包裝對象的目的 6.1 涵蓋所有值(1)包裝對象的最大目的,首先是使得 JavaScript 的對象涵蓋所有的值。
6.2 方便調用方法(1)其次使得原始類型的值可以方便地調用某些方法。
閱讀更多
參考文章
包裝對象 -- JavaScript 標準參考教程(alpha)
javascript類型系統——包裝對象 小火柴的藍色理想
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107837.html
摘要:目錄導語包裝對象的理解三大包裝對象的知識點小結導語包裝對象是為了彌補基本數據類型的非對象特性而產生的,對于基本類型值而言,本來是不存在屬性和方法的,但是我們可以在使用字面量創建字符串時,調用例如的方法,那么其內在原理究竟是什么呢閱讀完本篇文 目錄 導語 1. 包裝對象的理解 2. 三大包裝對象的知識點 3. 小結 導語 包裝對象是為了彌補基本數據類型的非對象特性而產生的,對于基本類型...
摘要:你不知道的基本包裝類型聲明本文的大部分內容參考自高級程序設計第三版中文版,中間夾雜一些自己閱讀這部分內容時的思路。而且,上面的步驟同樣適用于類型的類型對應的布爾值和數字值。 JavaScript 你不知道的基本包裝類型 聲明:本文的大部分內容參考自《JavaScript 高級程序設計(第三版)》(中文版 P.118),中間夾雜一些自己閱讀這部分內容時的思路。 JavaScript 中共...
摘要:中的對象類型分為內置類型和對象類型,其中內置類型包括五種對象類型包括等等,統稱為類型。如下面代碼為字符串添加一個屬性并賦值為上面的代碼我們可以分解為創建包裝對象為字符串添加一個屬性并賦值為釋放包裝對象自此我們不難理解為什么的值為 javascript中的對象類型分為內置類型和對象類型,其中內置類型包括sting number boolean null undefined五種;對象類型包...
摘要:知道了這些知識看看上面的題目為什么結果是包裝對象存取字符串,數字,布爾值的屬性時創建用構造函數來創建的臨時對象稱作包裝對象。 來自網絡 var s=test;//創建字符串類型變量 s.len=4;//創建包裝對象,為包裝對象添加屬性len //引用完畢,銷毀包裝對象 console.log(s.len);//創建包裝對象,查找其len屬性,沒有找到,返回undefined ...
摘要:被識別為結束符。變量時被認為時有名字的容器。常量一旦被聲明初始化,值并不能被改變。字符串可以看成右字符組成的數組,可能被誤認為可變的。表達式沒有顯示的返回任何內容。 Java script 簡介 Javascript 是一門跨平臺,面向對象的輕量級腳本語言,運行于Javascript解釋權/引擎 avascript內置了一個包含一系列對象的標準庫,比如數組,日期,數字和一個語言元素合...
閱讀 2487·2021-10-19 11:45
閱讀 2464·2021-09-30 09:56
閱讀 1432·2021-09-30 09:47
閱讀 591·2019-08-30 15:53
閱讀 1834·2019-08-30 15:44
閱讀 584·2019-08-30 12:52
閱讀 1084·2019-08-30 11:16
閱讀 1605·2019-08-29 16:36