Javascript toString()、toLocaleString()、valueOf()三个方法的区别
Array、Boolean、Date、Number等对象都具有toString()、toLocaleString()、valueOf()三个方法,那这三个方法有什么区别???
一、JS Array
例子:
var array = new Array("niu","li","na");
console.log(array.valueOf());
console.log(array.toString());
console.log(array.toLocaleString());
结果:
- valueOf:返回数组本身 
- toString():把数组转换为字符串,并返回结果,每一项以逗号分割。 
- toLocalString():把数组转换为本地数组,并返回结果。 
二、JS Boolean
例子:
var boolean = new Boolean(); console.log(boolean.valueOf()); console.log(boolean.toString());
结果:
- valueOf:返回 Boolean 对象的原始值。 
- toString():根据原始布尔值或者 booleanObject 对象的值返回字符串 "true" 或 "false"。默认为"false"。 
- toLocalString():Boolean对象没有toLocalString()方法。但是在Boolean对象上使用这个方法也不会报错。 
三、JS Date
例子:
var date = new Date(); console.log(date.valueOf()); console.log(date.toString()); console.log(date.toLocaleString());
结果:

- valueOf:返回 Date 对象的原始值,以毫秒表示。 
- toString():把 Date 对象转换为字符串,并返回结果。使用本地时间表示。 
- toLocalString():可根据本地时间把 Date 对象转换为字符串,并返回结果,返回的字符串根据本地规则格式化。 
四、JS Math
例子:
console.log(Math.PI.valueOf());
结果:

- valueOf:返回 Math 对象的原始值。
五、JS Number
例子:
var num = new Number(1337); console.log(num.valueOf()); console.log(num.toString()); console.log(num.toLocaleString());
结果:
 
- valueOf:返回一个 Number 对象的基本数字值。 
- toString():把数字转换为字符串,使用指定的基数。 
- toLocalString():把数字转换为字符串,使用本地数字格式顺序。 
六、JS String
例子:
var string = new String("abc");
console.log(string.valueOf());
console.log(string.toString());
结果:

- valueOf:返回某个字符串对象的原始值。 
- toString():返回字符串。 
七、toString()方法与toLocalString()方法区别:
- toLocalString()是调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。 
- toString()方法获取的是String(传统字符串),而toLocaleString()方法获取的是LocaleString(本地环境字符串)。 
- 如果你开发的脚本在世界范围都有人使用,那么将对象转换成字符串时请使用toString()方法来完成。 
- LocaleString()会根据你机器的本地环境来返回字符串,它和toString()返回的值在不同的本地环境下使用的符号会有微妙的变化。 
- 所以使用toString()是保险的,返回唯一值的方法,它不会因为本地环境的改变而发生变化。如果是为了返回时间类型的数据,推荐使用LocaleString()。若是在后台处理字符串,请务必使用toString()。 
Javascript toString()、toLocaleString()、valueOf()三个方法的区别的更多相关文章
- 区分javascript中的toString(),toLocaleString(),valueOf()方法
		首先我们随意创建一个对象,这很简单,打开FF浏览器的Firebug切换到控制台或者打开webkit浏览器的审查元素功能. 输入以下内容: var obj1=[1,2,3,4,5] var obj2=[ ... 
- JavaScript toString、String和stringify方法区别
		<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ... 
- [转]Javascript定义类的三种方法
		作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html 将近2 ... 
- javascript中的call(),apply(),bind()方法的区别
		之前一直迷惑,记不住call(),apply(),bind()的区别.不知道如何使用,一直处于懵懂的状态.直到有一天面试被问到了这三个方法的区别,所以觉得很有必要总结一下. 如果有不全面的地方,后续再 ... 
- 《Java多线程面试题》系列-创建线程的三种方法及其区别
		1. 创建线程的三种方法及其区别 1.1 继承Thread类 首先,定义Thread类的子类并重写run()方法: package com.zwwhnly.springbootaction.javab ... 
- jQuery中detach&&remove&&empty三种方法的区别
		jQuery中empty&&remove&&detach三种方法的区别 empty():移除指定元素内部的所有内容,但不包括它本身 remove():移除指定元素内部的 ... 
- toString方法和valueof()方法的区别
		JavaScript引用类型之Array数组的toString()和valueof()方法的区别 一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().to ... 
- String、toString、String.valueOf()三个有啥区别?
		今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ... 
- JavaScript去除空格的三种方法(正则/传参函数/trim)
		方法一: 个人认为最好的方法.采用的是正则表达式,这是最核心的原理. 其次.这个方法使用了JavaScript 的prototype 属性 其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较 ... 
随机推荐
- 50道Java线程面试题(转载)
			1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成 ... 
- MyBatis的缓存分析
			一:MyBatis缓存简介 MyBatis支持声明式数据缓存(declarative data caching).当一条SQL语句被标记为“可缓存”后,首次执行它时从数据库获取的所有数据会被存储在一段 ... 
- Zookeeper核心原理
			Zookeeper 的核心原理 Zookeeper 的由来 各个节点的数据一致性 怎么保证任务只在一个节点执行 如果orderserver1挂了,其他节点如何发现并接替 存在共享资源,互斥性.安全性 ... 
- iOS 11 使用方法替换(Method Swizzling),去掉导航栏返回按钮的文字
			方法一:设置BarButtonItem的文本样式为透明颜色,代码如下: [[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegro ... 
- python 继承与多重继承
			当然,如果不支持python继承,语言特性就不值得称为“类”.派生类定义的语法如下所示: <statement-1> . . . <statement-N> 名称 BaseCl ... 
- This assembly may have been downloaded from the Web. ......
			错误消息例如: Error 6 Could not load the assembly file:///D:\me\Projects\DLL\Newtonsoft.Json\Portable40\Ne ... 
- 浅谈__dict__
			类的 __dict__ 先看一个例子: > class A(object): pass > ... > A.__dict__ dict_proxy({'__dict__': < ... 
- asp.net core发布到docker报Microsoft.ApplicationInsights.AspNetCore miss的错误
			dotnet core 2.1的asp.net core在docker下部署的时候发生下面的错误. Error: An assembly specified in the application de ... 
- 3.PO如何给开发团队讲好故事
			敏捷开发系列文章目录 讲出符合开发团队味口的故事. 上一章说了敏捷开发团队的构成与迭代过程,本章重点说一下迭代第一天的计划会议.熟话说“好的开始就成功了一半”,一个迭代的计划会议做得好不好确实直接注定 ... 
- Python学习之路:NumPy初识
			import numpy as np; //一维NumPy数组 myArray = np.array([1,2,3,4]); print(myArray); [1 2 3 4] //打印一维数组的形状 ... 
