js中toString()函数与valueOf()函数使用与区别

js中 toString() 函数与valueOf() 函数使用与区别

在JavaScript中,几乎所有的数据类型都是对象,除了null和undefined。这些对象的实例都继承自一个共同的Object原型对象,因此它们也会同时继承Object原型对象上的方法和属性。其中,toString()函数和valueOf()函数是两个非常重要的方法,下面我们来仔细了解一下它们的使用和区别。

toString() 函数

toString()函数是Object原型对象上的一个方法,它将一个对象的值转换为一个字符串。通常情况下,我们调用一个对象的toString()方法时,它将返回的是"[object Object]"这样的字符串,这并不是我们想要的结果。因此,对于不同类型的对象,我们需要分别处理它们的toString()方法。

对于字符串、数字、布尔值和函数对象,它们的toString()方法的返回结果都比较好理解。例如:

var str = "Hello World";
console.log(str.toString()); // "Hello World"

var num = 123;
console.log(num.toString()); // "123"

var bool = true;
console.log(bool.toString()); // "true"

function foo() {
  console.log("foo");
}
console.log(foo.toString()); // "function foo() {\n  console.log(\"foo\");\n}"

对于数组和对象来说,它们的toString()方法的结果通常比较特殊。对于数组对象来说,它的toString()方法将返回一个字符串,其中包含了数组中所有元素的值,多个值之间用逗号分隔。例如:

var arr = [1, 2, 3];
console.log(arr.toString()); // "1,2,3"

对于对象来说,默认情况下调用toString()方法将返回"[object Object]"。如果我们想要自定义对象的toString()方法,可以通过将对象的toString属性设置为一个函数来实现。例如:

var obj = {
  name: "Tom",
  age: 18,
  toString: function () {
    return "My name is " + this.name + ", age is " + this.age;
  }
};
console.log(obj.toString()); // "My name is Tom, age is 18"

valueOf() 函数

valueOf()函数也是Object原型对象上的一个方法,它将一个对象转换为它的原始值。对于数值、字符串和布尔类型的对象,它们的valueOf()方法的返回结果就是对应的基本数据类型值,例如:

var num = new Number(123);
console.log(num.valueOf()); // 123

var str = new String("Hello World");
console.log(str.valueOf()); // "Hello World"

var bool = new Boolean(true);
console.log(bool.valueOf()); // true

对于对象和数组来说,它们的valueOf()方法的结果通常并不是我们想要的值。对于数组对象来说,它的valueOf()方法返回的是数组对象本身,而不是它的元素值。例如:

var arr = [1, 2, 3];
console.log(arr.valueOf()); // [1, 2, 3]

对于对象来说,默认情况下调用valueOf()方法将返回对象本身。如果我们想要自定义对象的valueOf()方法,可以通过将对象的valueOf属性设置为一个函数来实现。例如:

var obj = {
  name: "Tom",
  age: 18,
  valueOf: function () {
    return this.age;
  }
};
console.log(obj.valueOf()); // 18

这里的valueOf()方法将返回对象obj中age属性的值,而不是对象本身。

区别

总的来说,toString()函数和valueOf()函数都是用来将对象转换为基本数据类型值的方法,但是它们的返回结果是不同的。toString()方法的返回结果通常是一个字符串,它将对象转换为符合人类可读的格式,而valueOf()方法的返回结果通常是一个基本数据类型值,它将对象转换为符合计算机运算的格式。

此外,对于很多JavaScript内置对象来说,它们默认的toString()和valueOf()方法的返回结果都不是我们想要的值。因此,我们可以通过自定义这些对象的toString()和valueOf()方法来获得我们想要的结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中toString()函数与valueOf()函数使用与区别 - Python技术站

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

相关文章

  • 用JavaScript操作WinRar

    使用JavaScript操作WinRAR需要使用WinRAR的命令行工具。WinRAR命令行工具具有压缩、解压缩文件的功能以及一些其他选项。下面是关于如何使用JavaScript调用WinRAR命令行工具的完整攻略。 1. 下载并安装WinRAR 要使用WinRAR命令行工具,需要安装WinRAR。WinRAR的官方网站为https://www.rarlab…

    JavaScript 2023年5月27日
    00
  • 总结JavaScript中BigIn函数常见的属性

    下面是讲解总结JavaScript中BigIn函数常见属性的完整攻略。 1. BigInt函数的介绍 BigInt是JavaScript中的一个新特性,是一种全新的数字类型。BigInt类型可以表示任意大的整数,而不是限制在Number类型的最大安全整数范围内。BigInt类型使用类似整数的语法来表示,但需要在数字末尾添加一个n后缀。 2. BigInt函数…

    JavaScript 2023年5月28日
    00
  • 微信小程序 自己制作小组件实例详解

    下面是关于“微信小程序自己制作小组件实例详解”的攻略: 什么是小组件 小组件是一种自由组合,具备特定功能的组合、封装后的组件库。作为组件库的一部分,一个好的小组件应该能够在各种应用场景下有良好的兼容和复用性。 制作小组件 1.创建小组件 使用命令行创建小组件(假设小组件名字为 my-component): # 使用命令行创建自定义组件 $ miniprogr…

    JavaScript 2023年6月11日
    00
  • Js+Jq获取URL参数的集中方法示例代码

    获取 URL 参数是前端开发中经常用到的操作,下面是使用 JavaScript 和 jQuery 获取 URL 参数的示例代码及详细说明。 JavaScript 获取 URL 参数 1. 使用 split 方法和正则表达式分隔字符串 JavaScript 中可以使用 split 方法和正则表达式来截断字符串,然后将获取到的参数与对应的值存储在一个对象中。示例…

    JavaScript 2023年6月10日
    00
  • 原生js实现节日时间倒计时功能

    对于网站开发者来说,实现节日倒计时功能是一个很有趣的项目。下面是实现节日时间倒计时功能的完整攻略: 1. HTML 结构 <p id="countdown"></p> 在 HTML 中建立一个计时器的 DOM 元素,在本例中是一个段落元素,被赋予 ID 为 countdown。 2. JavaScript 代码 创…

    JavaScript 2023年5月27日
    00
  • JavaScript针对网页节点的增删改查用法实例

    当我们开发一个网页时,我们经常需要对页面节点进行操作。例如,添加一个新的节点,删除一个旧的节点,修改一个已有节点,或查找某个特定的节点。JavaScript提供了强大的功能来完成这些任务。在这里,我将为你讲解如何使用JavaScript来增删改查网页节点。 增加节点 在JavaScript中,我们可以通过创建一个新的节点并将其附加到现有的节点上来添加新的内容…

    JavaScript 2023年6月10日
    00
  • Jquery响应回车键直接提交表单操作代码

    以下是关于Jquery响应回车键直接提交表单操作代码的完整攻略。 1. 实现方法 Jquery可以监听键盘事件,并且可以获取当前输入框的值,从而判断是否需要执行相应操作。 常用的键盘事件有keydown和keyup,分别代表按下和抬起键的时候触发。 代码实现如下: $(document).ready(function(){ //监听按键事件 $(‘input…

    JavaScript 2023年6月10日
    00
  • JavaScript实现简单购物小表格

    下面是“JavaScript实现简单购物小表格”的完整攻略: 1.准备工作 在HTML中,首先要准备一个表格元素,代码如下: <table> <thead> <tr> <th>商品</th> <th>价格</th> <th>数量</th> <th…

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