JavaScript包装对象使用介绍

当在 JavaScript 中使用基本数据类型时,例如数字、字符串和布尔值时,这些类型会被自动转换为对应的包装对象类型 Number、String 和 Boolean。这些包装对象类型在需要调用其原型链上的方法时特别有用。下面介绍一下 JavaScript 包装对象的使用方法。

JavaScript 包装对象概述

在 JavaScript 中包装对象类型是一种对象类型,算是基本数据类型的衍生,其中包装了对应基本数据类型的值,同时提供了一些常用的方法。它们依照对应的基本数据类型,分别为 NumberStringBoolean。这些对象与普通对象之间的区别在于,对这些对象进行属性的引用等操作时,都是临时转换为对应的基本数据类型,不会改变原包装对象实例中存储的数据类型。

例如,当一个字符串被转化为一个 String 对象时,即使对这个对象进行了某些方法调用,原始字符串也不会改变。当我们调用该对象的某些方法或者属性时,比如 length 或者 charAt,它会先将原始字符串转化为 String 对象,然后对这个对象进行操作,同时并不会改变原始字符串本身。

JavaScript 包装对象的使用

创建一个包装对象

包装对象可以通过直接在基本类型值周围添加对应的对象构造函数来创建,如下所示:

const numObj = new Number(27);
const strObj = new String('hello');
const boolObj = new Boolean(true);

我们还可以使用字面量的(literal)形式来创建包装对象,如下所示:

const numObj = 27;
const strObj = 'hello';
const boolObj = true;

然后可以使用 typeof 运算符来检测这些包装对象类型:

console.log(typeof numObj);
console.log(typeof strObj);
console.log(typeof boolObj);

答案将会是:

object
object
object

访问包装对象值

我们可以使用到包装对象的属性和方法,举个例子:

const numObj = new Number(27);
console.log(numObj.valueOf()); // 返回一个 Number 对象的原始值,也就是数字 27。
console.log(numObj.toFixed(2)); // 返回一个保留了两位小数的字符串 "27.00"。

包装对象与基本类型

javascript 在使用基本类型时,在实际运算时会进行隐式转换,它会自动将基本类型封装成对应类型的对象,进行操作。在使用基本类型时就能够使用到对应类型的方法。例如:

const numObj = 27;
console.log(numObj.toFixed(2));

在这个例子中,numObj 就是一个基本类型的值,而不是一个 Number() 对象。但是 numObj.toFixed() 却可以正常运行,这是因为在使用 numObj 进行运算时,JavaScript 自动把 numObj 转化为一个 Number 对象,让 toFixed() 方法在它上面运行。

同样的,我们还可以使用 String()Boolean() 方法来操作基本类型:

const strObj = String('hello');
const boolObj = Boolean(true);
console.log(strObj.toUpperCase()); // HELLO
console.log(boolObj.toString()); // true

总结

JavaScript 包装对象真正的功能就是帮助我们操作基本类型的值,让我们可以像操作对象一样的方法和属性来处理基本类型。虽然这些包装对象默认情况下都是对象,但它们不能具有基本类型的行为特征。例如:在条件语句中只会根据临时对象的值的真假来判断 ifelse 分支进行执行,而临时对象永远不会转换为真实存在的包装对象。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript包装对象使用介绍 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript中的delete使用详解

    当我们在JavaScript中使用delete关键字时,它有两种用途: 删除对象的属性 删除对象本身 下面,我们将逐一介绍这两种情况。 删除属性 在JavaScript中,我们可以删除一个对象的属性。我们可以使用delete关键字来删除属性。如下: let obj = { foo: true, bar: false }; delete obj.bar; co…

    JavaScript 2023年5月28日
    00
  • 纯JS打造网页中checkbox和radio的美化效果

    让我来详细讲解一下“纯JS打造网页中checkbox和radio的美化效果”的完整攻略。 1. 美化checkbox 1.1 隐藏原生checkbox 首先,需要隐藏原生的checkbox,在CSS文件中添加以下样式: input[type="checkbox"] { visibility: hidden; position: absol…

    JavaScript 2023年6月11日
    00
  • 我的第一个项目(十一) :飞机大战分包完成(简单阐述分包思路以及过程)

    好家伙,   代码已开源 Git: https://gitee.com/tang-and-han-dynasties/panghu-planebattle-esm.git NPM: panghu-planebattle-esm – npm (npmjs.com)   现在,比如说,我用Vue写好了个人博客主页的前端 我想在这个主页里面加点东西,让我的博客更缤…

    JavaScript 2023年4月19日
    00
  • Js 时间间隔计算的函数(间隔天数)

    下面我来详细讲解“Js 时间间隔计算的函数(间隔天数)”的完整攻略。 1. 需求分析 首先,我们需要明确这个函数的具体需求。根据题目,我们需要实现一个函数来计算两个日期之间的间隔天数。例如,对于输入的日期字符串 “2021-01-01” 和 “2021-01-05″,函数应该返回 4。 2. 时间格式转换 首先,我们需要将日期字符串转换成 JavaScrip…

    JavaScript 2023年5月27日
    00
  • Javascript正则表达式验证账号、手机号、电话和邮箱的合法性

    下面是关于Javascript正则表达式验证账号、手机号、电话和邮箱的合法性的完整攻略。 介绍 正则表达式是一种用于匹配文本的工具,它可以用于验证表单输入、处理文本等任务。在Javascript中,可以使用RegExp对象来定义正则表达式,并使用match()、search()、replace()等方法来操作字符串。下面将介绍如何使用正则表达式来验证账号、手…

    JavaScript 2023年6月10日
    00
  • JavaScript的Module模式编程深入分析

    JavaScript的Module模式编程深入分析 Module模式是JavaScript中常用的一种编程模式,它能够帮助我们解决变量作用域、命名冲突、代码复用等问题。在本文中,我们将深入分析JavaScript的Module模式编程,包括如何创建一个模块、模块的特点和示例说明。 如何创建一个模块 创建一个Module模式的关键是使用闭包。闭包可以在函数执行…

    JavaScript 2023年5月27日
    00
  • js关闭浏览器窗口及检查浏览器关闭事件

    要实现JavaScript关闭浏览器窗口以及检查浏览器关闭事件,可以使用window.close()方法和window.onbeforeunload事件。 使用window.close()方法关闭浏览器窗口 使用window.close()方法可以轻易地关闭当前窗口或打开的窗口。但要注意,在现代浏览器中,该方法只能关闭由JavaScript打开的窗口,不能关…

    JavaScript 2023年6月11日
    00
  • VueJs单页应用实现微信网页授权及微信分享功能示例

    下面我来为你详细讲解“VueJs单页应用实现微信网页授权及微信分享功能示例”的完整攻略。 简介 微信网页授权和微信分享功能是开发微信公众号和小程序时常用的功能,本文将介绍如何在VueJS单页应用中实现这两个功能。 微信网页授权 在公众平台中注册一个微信公众号,并且在公众号设置中添加JS接口安全域名,否则无法使用微信JS-SDK功能。 在网页中引入微信JS-S…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部