iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript 原始包装类型汇总
  • 125
分享到

JavaScript 原始包装类型汇总

2024-04-02 19:04:59 125人浏览 独家记忆
摘要

目录一、原始包装类型1、Boolean2、Number3、String二、原始包装类型的特点1、原始值为什么可以调用一些方法2、引用类型和原始值包装类型的区别3、原始包装类型构造函数

前言:

引出问题: 如下一段简单的代码,变量a赋予了字符串类型原始值"str",通过控制台打印输出变量a,只有“str"。a并没有定义slice这个方法,但是后续为什么变量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

创建一个Boolean类型的对象实例时,传入的参数按转换为Boolean类型值的规则确实是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时,是以读模式访问的,也就是要从内存中读取变量保存的值。

在以读模式访问字符串值得任何时候,后台都会自动执行以下三步:

(1)根据字符串值创建一个 String 类型的实例
(2)调用实例上的特定方法
(3)销毁实例

即相当于执行了以下三行代码:

// 创建String实例
let s = new String("str");
// 调用特定方法
s.slice(1)
// 销毁实例
s = null

这种行为则让原始值拥有了对象的行为。

针对布尔值和数值,也会在后台执行相同的步骤。

2、引用类型和原始值包装类型的区别

引用类型和原始值包装类型的区别主要在于对象的生命周期

  • (1)通过new实例化引用类型后,得到的实例会在离开作用域时被销毁
  • (2)自动创建的原始值包装对象则只会存在于访问它的那行代码执行期间。(所以运行时并不能给原始值添加属性和方法)

3、原始包装类型构造函数 和 转型函数

以Number为例:

  • (1)如果直接调用 Number(),执行的是 Number()转型函数,强制数值类型转换
  • (2)如果通过new 调用 Number(),执行的是 Number() 构造函数,创建一个Number的实例
let a = Number(1);
console.log(typeof a);   // number
let b = new Number(1);
console.log(typeof b);   // object

一个简单的知识点,主要自己之前学习太仓促,这些基础知识点并没有学习牢固,此复盘整理一下。

--结束END--

本文标题: JavaScript 原始包装类型汇总

本文链接: https://www.lsjlt.com/news/149728.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript 原始包装类型汇总
    目录一、原始包装类型1、Boolean2、Number3、String二、原始包装类型的特点1、原始值为什么可以调用一些方法2、引用类型和原始值包装类型的区别3、原始包装类型构造函数...
    99+
    2024-04-02
  • JavaScript原始包装类型实例分析
    这篇文章主要讲解了“JavaScript原始包装类型实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript原始包装类型实例分析”吧!引出问题: 如下一段简单的代...
    99+
    2023-06-30
  • JavaScript 引用类型之原始值包装类型String
    目录String 原始值包装类型String 原始值包装类型 操作方法1.字符串编码常规化函数 normalize()方法2.字符串拼接函数concat()3.字符串提取子...
    99+
    2024-04-02
  • javascript有什么原始类型
    小编给大家分享一下javascript有什么原始类型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • javascript原始类型有哪些
    javascript中的原始类型有:1.number,数值对象;2.string,字符串对象;3.boolean,布尔对象;4.undefined,未定义类型;5.null,空类型;6.symbol,唯一标识符;javascript中的原始...
    99+
    2024-04-02
  • 详解JavaScript原始数据类型Symbol
    目录简介描述信息命名冲突私有属性总结简介 创建symbol变量最简单的方法是用Symbol()函数。sysmbol变量有两点比较特别: 1.它可以作为对象属性名。只有字符串和 sym...
    99+
    2024-04-02
  • JavaScript原始值与包装对象介绍
    这篇文章主要介绍“JavaScript原始值与包装对象介绍”,在日常操作中,相信很多人在JavaScript原始值与包装对象介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • javascript中原始类型指的是什么
    这篇文章主要介绍了javascript中原始类型指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、类型说明boolean布尔,值为 true 或 false&nbs...
    99+
    2023-06-15
  • javascript中原始类型和引用类型有什么区别
    小编给大家分享一下javascript中原始类型和引用类型有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、区别(1)原始类型存储的是值,引用类型存储的...
    99+
    2023-06-15
  • MongoDB索引类型汇总分享
    目录单字段索引在单个字段上创建升序索引在嵌入式字段上创建索引在内嵌文档上创建索引复合索引多键索引文本索引2dsphere索引创建测试数据添加2dsphere索引利用2dsphere索...
    99+
    2024-04-02
  • Python数据类型转换汇总
    目录1.int,float相互转换2.int,string相互转换3.float,string相互转换4.string,list相互转换5.string,tuple相互转换6.tup...
    99+
    2024-04-02
  • JavaScript原始数据类型Symbol的用法详解
    目录Symbol介绍与创建设置Symbol属性的注意点Symbol属性名的遍历Symbol内置值Symbol.hasInstanceSymbol.isConcatSpreadable...
    99+
    2022-11-13
    JavaScript Symbol JS Symbol
  • JavaScript中原始数据类型Symbol如何使用
    本文小编为大家详细介绍“JavaScript中原始数据类型Symbol如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript中原始数据类型Symbol如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-07-05
  • JavaScript原始值与包装对象的详细介绍
    目录前言正文原始类型 (Primitive types)原始值 (Primitive values)包装对象 (Wrapper objects)对象 (Object)构造函数 (Co...
    99+
    2024-04-02
  • JavaScript新引入的原始数据类型Symbol详解
    目录SymbolSymbol转换Symbol属性名属性名遍历Symbol.for()与Symbol.keyFor()Symbol内置值Symbol.hasInstanceSymbol...
    99+
    2023-01-28
    JS Symbol JS Symbol类型
  • JavaScript中怎么将对象转换为原始类型
    这篇文章将为大家详细讲解有关JavaScript中怎么将对象转换为原始类型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。说明将原始类型的对象转换为内置的[ToPrimitive]函数。使用S...
    99+
    2023-06-20
  • 详解JavaScript中原始数据类型Symbol的使用
    目录SymbolSymbol转换Symbol属性名属性名遍历Symbol.for()、Symbol.keyFor()Symbol内置值Symbol.hasInstanceSymbol...
    99+
    2023-02-22
    JavaScript原始数据类型Symbol JavaScript原始数据类型 JavaScript Symbol
  • JavaScript原始值与包装对象的示例分析
    这篇文章主要介绍JavaScript原始值与包装对象的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript有什么特点1、js属于一种解释性脚本语言;2、在绝大多数浏览器的支持下,js可以在多种平...
    99+
    2023-06-15
  • sql将时间类型转换为字符串类型汇总
    日期时间转字符串复制代码 代码如下:Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Selec...
    99+
    2022-11-15
    SQL 时间类型 字符串类型
  • 获取基于原始类型的类型的reflect.Kind
    在PHP编程中,获取基于原始类型的类型的reflect.Kind是一项重要的技能。reflect.Kind是PHP提供的反射类库中的一个属性,它可以用来确定一个变量的数据类型。通过使用...
    99+
    2024-02-09
    overflow
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作