最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript?原始包裝類型匯總

 更新時間:2022年05月26日 08:27:44   作者:??大力yy????  
這篇文章主要介紹了JavaScript?原始包裝類型匯總,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

前言:

引出問題: 如下一段簡單的代碼,變量a賦予了字符串類型原始值"str",通過控制臺打印輸出變量a,只有“str"。a并沒有定義slice這個方法,但是后續(xù)為什么變量a可以調(diào)用slice方法呢?

let a = "str";
console.log(a);  // "str"
console.log(a.slice(1))  // "tr"

針對以上問題,需要追溯到JavaScript中的原始包裝類型。

一、原始包裝類型

為了方便操作原始值,ECMAScript提供了3種特殊的引用類型:Boolean、Number 和 String

關(guān)于Boolean、Number 和 String涉及的方法和屬性很多,這里僅介紹三種引用類型的 valueOf() 方法和 toString() 方法。

1、Boolean

創(chuàng)建一個Boolean類型的對象實例時,傳入的參數(shù)按轉(zhuǎn)換為Boolean類型值的規(guī)則確實是true還是false

(1)valueOf() :返回一個原始值 true 或者 false

let a = new Boolean(true);
console.log(a.valueOf());  // true

(2)toString() :返回字符串 ‘true' 或者 'false'

let b = new Boolean(false);
console.log(b.toString());  // "false"

2、Number

(1)valueOf() :返回對象的原始數(shù)值

let a = new Number(12);
console.log(a.valueOf());  // 12

(2)toString() :返回相應(yīng)基數(shù)(進(jìn)制數(shù))的數(shù)值字符串

let b = new Number(123);
console.log(b.toString());  // "123"

3、String

valueOf() 、toString() 和 toLocalString() 都繼承自 Object,均返回對象的原始字符串值

let a = new String('str');
console.log(a.valueOf());  // str
console.log(a.toString());  // str
console.log(a.toLocaleString());  // str

二、原始包裝類型的特點

1、原始值為什么可以調(diào)用一些方法

let s = "str";
console.log(s.slice(1))  // "tr"

如上代碼,第二行中訪問a時,是以讀模式訪問的,也就是要從內(nèi)存中讀取變量保存的值。

在以讀模式訪問字符串值得任何時候,后臺都會自動執(zhí)行以下三步:

(1)根據(jù)字符串值創(chuàng)建一個 String 類型的實例
(2)調(diào)用實例上的特定方法
(3)銷毀實例

即相當(dāng)于執(zhí)行了以下三行代碼:

// 創(chuàng)建String實例
let s = new String("str");
// 調(diào)用特定方法
s.slice(1)
// 銷毀實例
s = null

這種行為則讓原始值擁有了對象的行為。

針對布爾值和數(shù)值,也會在后臺執(zhí)行相同的步驟。

2、引用類型和原始值包裝類型的區(qū)別

引用類型和原始值包裝類型的區(qū)別主要在于對象的生命周期

  • (1)通過new實例化引用類型后,得到的實例會在離開作用域時被銷毀
  • (2)自動創(chuàng)建的原始值包裝對象則只會存在于訪問它的那行代碼執(zhí)行期間。(所以運行時并不能給原始值添加屬性和方法)

3、原始包裝類型構(gòu)造函數(shù) 和 轉(zhuǎn)型函數(shù)

以Number為例:

  • (1)如果直接調(diào)用 Number(),執(zhí)行的是 Number()轉(zhuǎn)型函數(shù),強(qiáng)制數(shù)值類型轉(zhuǎn)換
  • (2)如果通過new 調(diào)用 Number(),執(zhí)行的是 Number() 構(gòu)造函數(shù),創(chuàng)建一個Number的實例
let a = Number(1);
console.log(typeof a);   // number
let b = new Number(1);
console.log(typeof b);   // object

一個簡單的知識點,主要自己之前學(xué)習(xí)太倉促,這些基礎(chǔ)知識點并沒有學(xué)習(xí)牢固,此復(fù)盤整理一下。

相關(guān)文章

  • JavaScript組件開發(fā)完整示例

    JavaScript組件開發(fā)完整示例

    這篇文章主要介紹了JavaScript組件開發(fā)的方法,結(jié)合完整實例形式分析了組件的原理與實現(xiàn)技巧,代碼包含的詳盡的注釋,便于理解,需要的朋友可以參考下
    2015-12-12
  • JavaScript如何讀取本地excel文件、txt文件的內(nèi)容

    JavaScript如何讀取本地excel文件、txt文件的內(nèi)容

    JavaScript是一種腳本語言,廣泛應(yīng)用于前端開發(fā),這篇文章主要給大家介紹了關(guān)于JavaScript如何讀取本地excel文件、txt文件的內(nèi)容,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • JS針對Array的各種操作匯總

    JS針對Array的各種操作匯總

    這篇文章主要為大家詳細(xì)介紹了JS針對Array的各種操作,如何創(chuàng)建Array,數(shù)組的一些簡單和基本的操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • fabric.js實現(xiàn)diy明信片功能

    fabric.js實現(xiàn)diy明信片功能

    這篇文章主要為大家詳細(xì)介紹了fabric.js實現(xiàn)diy明信片功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • 在chrome中window.onload事件的一些問題

    在chrome中window.onload事件的一些問題

    在寫一些關(guān)于圖片操作的代碼的時候,一般都需要在圖片加載完成之后再執(zhí)行程序。然而在Chorme中(貌似Safari也是)對window.onload的理解與IE和FF有偏差。
    2010-03-03
  • JS自定義滾動條效果

    JS自定義滾動條效果

    這篇文章主要為大家詳細(xì)介紹了JS自定義滾動條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 值得分享的JavaScript實現(xiàn)圖片輪播組件

    值得分享的JavaScript實現(xiàn)圖片輪播組件

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)圖片輪播組件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • javasciprt下jquery函數(shù)$.post執(zhí)行無響應(yīng)的解決方法

    javasciprt下jquery函數(shù)$.post執(zhí)行無響應(yīng)的解決方法

    這篇文章主要介紹了javasciprt下jquery函數(shù)$.post執(zhí)行無響應(yīng)的解決方法,需要的朋友可以參考下
    2014-03-03
  • JS 去前后空格大全(IE9親測)

    JS 去前后空格大全(IE9親測)

    本文為大家詳細(xì)介紹下JS去前后空格及所有空格,代碼在IE9環(huán)境下測試,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-07-07
  • js中的push和join方法使用介紹

    js中的push和join方法使用介紹

    push和join方法想必大家并不陌生吧,在本文將為大家詳細(xì)介紹下js中的push和join方法的使用,感興趣的朋友可以參考下
    2013-10-10

最新評論

海宁市| 保山市| 元江| 洪湖市| 伊川县| 襄垣县| 平泉县| 广元市| 临澧县| 龙南县| 岢岚县| 安化县| 阿拉尔市| 衡阳县| 库车县| 阳新县| 阿尔山市| 汝城县| 贡山| 政和县| 宜昌市| 聂荣县| 碌曲县| 贡山| 海淀区| 晋城| 肇州县| 东台市| 宜州市| 平昌县| 同心县| 武威市| 小金县| 大关县| 宁南县| 桐梓县| 陆河县| 遂平县| 奉新县| 无为县| 东山县|