热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JS高级050202Array类型转换方法

如前所述,所有对象都具有toLocaleString()、toString()和valueOf()方法。其中,调用数组的toString()方法会返回由

如前所述,所有对象都具有toLocaleString()、toString ()和 valueOf() 方法。其中,调用数组的toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。而调用valueOf() 返回的还是数组。实际上,为了创建这个字符串会调用数组每一项的toString ()方法。来看下面这个例子。

var colors = ["red", "blue", "green"]; //creates an array with three strings
console.log(colors.toString()); //red,blue,green
console.log(colors.valueOf()); //red,blue,green
console.log(colors); //red,blue,green

在这里,我们首先显式地调用了 toString() 和 valueOf() 方法,以便返回数组的字符串表示, 每个值的字符串表示拼接成了一个字符串,中间以逗号分隔。最后一行代码直接将数组传递给了 alert() 由于alert ()要接收字符串参数,所以它会在后台调用toString() 方法,由此会得到与直接调用toString() 方法相同的结果。

另外,toLocaleString() 方法经常也会返回与toString() 和valueOf() 方法相同的值,但也不总是如此。当调用数组的toLocaleString() 方法时,它也会创建一个数组值的以逗号分隔的字符串。而与前两个方法唯一的不同之处在于,这一次为了取得毎一项的值,调用的是每一项的toLocaleString() 方法,而不是toString() 方法。请看下面这个例子。

var person1 = {toLocaleString: function() {return "Nikolaos";},toString: function() {return "Nicholas";}
};
var person2 = {toLocaleString: function() {return "Grigorios";},toString: function() {return "Greg";}
};var people = [person1, person2];
console.log(people); //Nicholas,Greg
console.log(people.toString()); //Nicholas,Greg
console.log(people.toLocaleString()); //Nikolaos,Grigorios

我们在这里定义了两个对象:person1和person2。而且还分别为每个对象定义了一个toString() 方法和一个toLocaleString() 方法,这两个方法返冋不同的值。然后,创建一个包含前面定义的两个对象的数组,在将数组传递给alert() 时,输出结果是"Nicholas , Greg",因为调用了数组每一项 的toString ()方法(同样,这与下一行显式调用toString()方法得到的结果相同)。而当调用数组 的toLocaleString() 方法时,输出结果是"Nikolaos, Grigories",原因是调用了数组每一项的 toLocaleString() 方法。

数组继承的toLocaleString()、toString()和valueOf()方法,在默认情况下都会以逗号分隔的字符串的形式返回数组项,而如果使用join()方法,则可以使用不同的分隔符來构建这个字符串。join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。请看下面的例子:

var colors = new Array(); //create an array
var count = colors.push("red", "green"); //push two items
console.log(count); //2count = colors.push("black"); //push another item on
console.log(count); //3var item = colors.pop(); //get the last item
console.log(item); //"black"
console.log(colors.length); //2

在这里,我们使用join()方法重现了 tostring()方法的输出。在传递逗号的情况下,得到了以逗号分隔的数组值。而在最后一行代码中,我们传递了双竖线符号,结果就得到了字符串“redl I green I I blue”。如果不给join()方法传入任何值,或者给它传入undefined,则使用逗号作为分隔符。IE7及更早版本会错误的使用字符串"undefined"作为分隔符。

如果数组中的某一项的值是 null 或者 undefined,那么该值在join()、 toLocaleString()、toString() 和 valueOf() 方法返回的结果中以空字符串表示。


推荐阅读
  • 优化JavaScript中的多条件判断逻辑
    本文探讨了在JavaScript中遇到复杂逻辑判断时,如何通过不同的方法优化if/else或switch语句,以提高代码的可读性和可维护性。 ... [详细]
  • iOS 开发技巧:TabBarController 自定义与本地通知设置
    本文介绍了如何在 iOS 中自定义 TabBarController 的背景颜色和选中项的颜色,以及如何使用本地通知设置应用程序图标上的提醒个数。通过这些技巧,可以提升应用的用户体验。 ... [详细]
  • 本文介绍了如何使用JFreeChart库创建一个美观且功能丰富的环形图。通过设置主题、字体和颜色等属性,可以生成符合特定需求的图表。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 掌握Mosek矩阵运算,轻松应对优化挑战
    本篇文章继续深入探讨Mosek学习笔记系列,特别是矩阵运算部分,这对于优化问题的解决至关重要。通过本文,您将了解到如何高效地使用Mosek进行矩阵初始化、线性代数运算及约束域的设定。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • Vue 3.0 翻牌数字组件使用指南
    本文详细介绍了如何在 Vue 3.0 中使用翻牌数字组件,包括其基本设置和高级配置,旨在帮助开发者快速掌握并应用这一动态视觉效果。 ... [详细]
  • js常用方法(1)startWithJava代码varstartsWithfunction(str,regex){if(regexundefined||strundefined|| ... [详细]
  • 本文介绍了如何计算给定数组中所有非质数元素的总和,并提供了多种编程语言的实现示例。 ... [详细]
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
  • Python基础教程:条件语句与函数进阶
    本文深入探讨了Python中的基本操作与函数特性,包括条件语句的扩展使用及函数的多种定义方式。 ... [详细]
  • 最近同事提了一个需求过来,他觉得项目对于第三方日志记录的太多了,只想记录一些业务相关的日志减少对于框架日志的显示。具体要求就是对于框架日志只显示warn等级以上的,而业务日志显示info等级以上 ... [详细]
  • Java中String类为何设计为final?其不可变性与其他包装类的特性
    探讨Java中String类设计为final的原因及其不可变性,同时分析其他基本数据类型包装类及枚举类型的不可变性。 ... [详细]
  • 深入解析ES6至ES8的新特性与应用
    本文详细介绍了自2015年发布的ECMAScript 6.0(简称ES6)以来,JavaScript语言的多项重要更新,旨在帮助开发者更好地理解和利用这些新特性进行复杂应用的开发。 ... [详细]
author-avatar
手机用户2602934117
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有