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 日期时间 转换的方法

    当需要对 JavaScript 中的日期时间格式进行转换时,我们可以使用以下方法: 获取当前时间 使用以下方法可以获取到当前时间: const now = new Date(); 其中,now就是获取到的当前时间,它的格式是日期对象。可以通过该对象的方法来对时间进行处理。 时间戳转化为日期时间格式 时间戳指的是从1970年1月1日00:00:00开始所经过的…

    JavaScript 2023年5月27日
    00
  • Web安全测试之XSS实例讲解

    Web安全测试是指对Web应用程序进行安全风险评估的过程。其中,XSS(Cross-site scripting)是一种常见的Web安全漏洞,攻击者通过注入脚本代码实现攻击。以下是对“Web安全测试之XSS实例讲解”的完整攻略: 第一步:寻找输入点 首先根据Web应用程序的业务逻辑找到需要输入的点,例如登录、注册、用户评论等。在这些输入点中,可能会存在输入过…

    JavaScript 2023年6月11日
    00
  • js设置cookie过期当前时间减去一秒相当于立即过期

    设置Cookie的过期时间可以通过在Cookie中添加一个用于标识过期时间的Expires属性来实现。通常情况下,Expires属性的值可以是时间戳,表示Cookie的过期时间是基于指定的时间来计算。但如果我们需要相对于当前时间来设置Cookie的过期时间,那么就需要进行一些计算。 具体实现方法是:将当前时间的时间戳减去1秒的时间戳,然后将其转换为UTC格式…

    JavaScript 2023年5月27日
    00
  • JavaScript遍历对象的七种方法汇总

    当我们需要操作 JavaScript 对象的属性时,遍历对象是非常必要的。本文总结了JavaScript遍历对象的七种方法。下面进行详细讲解: 方法一:for…in 使用 for…in 循环对象的属性。 const person = { name: ‘John’, age: 30, gender: ‘male’ } for (let property…

    JavaScript 2023年5月27日
    00
  • 很好用的js日历算法详细代码

    如果你正在寻找一个简单易用且功能强大的js日历算法,那么你应该尝试使用这个“很好用的js日历算法”!这个算法不仅提供了完整的代码实现,还有详细的说明。在下面的步骤中,我们将详细的了解这个算法的使用方法。 步骤1: 下载日历算法代码 你可以在github上找到这个日历算法的代码,可以在你的本地环境中运行查看。你可以单击以下链接: 日历算法代码 然后,你需要从这…

    JavaScript 2023年5月27日
    00
  • uniapp跨页面传值uni.$emit和uni.$on的使用及踩坑实战

    uniapp 跨页面传值:uni.$emit 和 uni.$on 的使用 在一个完整的 uniapp 应用程序中,存在着多个页面组成的应用。有时候我们需要在不同的页面之间传递数据,这时候就要用到 uniapp 提供的跨页面传值方式 —— uni.$emit 和 uni.$on。 1. uni.$emit 和 uni.$on 概述 uni.$emit 和 un…

    JavaScript 2023年6月11日
    00
  • JS简单测试循环运行时间的方法

    下面是关于JS简单测试循环运行时间的方法的攻略。 1. 背景 在编写JavaScript程序的过程中,有可能需要对程序进行性能测试,以确定代码的运行时间。本文将介绍如何使用JavaScript来测试循环运行时间的方法。 2. 代码示例 示例 1: 下面就是一个通过比较时间差来测试循环执行时间的示例代码: // 定义一个需要测试运行时间的函数 function…

    JavaScript 2023年5月27日
    00
  • BootstrapValidator验证用户名已存在(ajax)

    让我来为你详细讲解“BootstrapValidator验证用户名已存在(ajax)”的完整攻略。 标题 首先,我们需要给这个攻略起个标题。根据内容,可以考虑起名为“BootstrapValidator验证用户名已存在(ajax)”。 说明 为了实现这个功能,我们需要用到以下内容: BootstrapValidator插件 Ajax请求来检查用户名是否已存在…

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