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

JavaScript?原始包裝類型匯總

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

前言:

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

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

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

一、原始包裝類型

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

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

1、Boolean

創(chuàng)建一個Boolean類型的對象實例時,傳入的參數按轉換為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() :返回對象的原始數值

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

(2)toString() :返回相應基數(進制數)的數值字符串

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、原始值為什么可以調用一些方法

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

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

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

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

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

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

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

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

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

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

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

3、原始包裝類型構造函數 和 轉型函數

以Number為例:

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

一個簡單的知識點,主要自己之前學習太倉促,這些基礎知識點并沒有學習牢固,此復盤整理一下。

相關文章

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

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

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

    JavaScript如何讀取本地excel文件、txt文件的內容

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

    JS針對Array的各種操作匯總

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

    fabric.js實現diy明信片功能

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

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

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

    JS自定義滾動條效果

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

    值得分享的JavaScript實現圖片輪播組件

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

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

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

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

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

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

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

最新評論

昭通市| 浦县| 洪雅县| 新邵县| 枣庄市| 郓城县| 抚顺县| 西林县| 焉耆| 利辛县| 南安市| 关岭| 新巴尔虎右旗| 江门市| 托里县| 东城区| 青浦区| 龙口市| 全南县| 阜宁县| 固始县| 台州市| 上饶市| 新田县| 义乌市| 大同市| 广南县| 双牌县| 云和县| 墨江| 清镇市| 射阳县| 广宗县| 南华县| 西峡县| 江都市| 东乡| 丰县| 美姑县| 和林格尔县| 镶黄旗|