js字符串转换成数字,数字转换成字符串

时间:2022-09-12 06:17:31

在JavaScript中,主要有三种方法能让任意值转换为字符串.本文讲解了每种方法以及各自的优缺点.



1.转换字符串的三种方法 

这三种将value转换为字符串的方法是: 



1.value.toString() 

2."" + value 

3.String(value) 



第一种方法存在的问题是,它不能把null和undefined转换为字符串.还有第二种和第三种方法,这两种方法的效果基本一样. 



•""+value: 使用加法运算符配合一个空字符串可以把任意值转换为字符串,我觉得这种方法代码的可读性很差,但相对String(value)来,还是有一些人更喜欢用这种转换方式. 

•String(value): 这种方法可读性更好,唯一的问题是,这种函数调用可能会迷惑一些人,尤其是那些熟悉Java的程序员,因为String同时也是一个构造函数.要注意的是它作为普通函数和作为构造函数时的表现完全不同: 



代码如下: 

> String("abc") === new String("abc") 
false

> typeof String("abc")
'string'
> String("abc") instanceof String
false

> typeof new String("abc")
'object'
> new String("abc") instanceof String
true





String作为普通函数时会产生一个字符串(一个原始值).作为构造函数时会产生一个String对象的实例.后者在JavaScript中很少用到,所以基本上你可以忽略掉String作为构造函数的用法,但一定要记得它是个转换函数. 



2.""+value 和 String(value)的细微差别 

到现在你已经知道了+ 和 String()都可以将它们的“参数”转换为字符串.但他们的转换方式还是着有细微的差别,不过几乎所有的情况下,转换结果都是一样的. 



2.1 将原始值转换为字符串 

这两种方法都是使用引擎内部的ToString()操作将原始值转换为字符串的.“内部操作”的意思是:这个操作函数是在ECMAScript 5.1 (§9.8)中定义的,但ES语言本身并不能访问到它.下面这个表格解释了ToString()是如何转换原始值的. 
============

 将字符串转换成数字,得用到parseInt函数。

parseInt(string) : 函数从string的开始解析,返回一个整数。

 

举例:parseInt('123') : 返回 123(int);

     parseInt('1234xxx') : 返回 1234(int);

 

如果解析不到数字,则将返回一个NaN的值,可以用isNaN()函数来检测;

 

举例 :

 var i = parseInt('abc');

 if (isNaN(i))

 {

    alert('NaN value');

 }

 

同样的parseFloat函数是将字符串转换成浮点数。

举例:parseFloat('31.24abc') : 返回 31.24;

 

js数字转换成字符串

 

    将字符串转换成数字,得用到String类的toString方法

举例:

var i = 10;

var s = i.toString();

alert(typeof s);     //将输出 String

 

js数字与字符串的区别

    js的数字的加法与字符串的连接都是 + 符号, 所以究竟是加还是字符串的连接就取决与变量的类型。

举例:

var a = 'abc' + 'xyz';    //a的值为:abcxyz,字符串与字符串是连接

var a = 10 + 5;           //a的值为:15,数字是加

var a = 'abc' + 10;       //a的值为:abc10,字符串与数字,自动将10转换成字符串了

var a = 'abc' + 10 + 20 + 'cd';  //a的值为:abc1020cd

var a = 10 + 20 + 'abc' + 'cd';  //a的值为:30abccd,可以数字加的先数字加,然后再连接

 

如果从html页面元素得到的值,想按数字加,就需要先转换为数字,因为从页面得到的值默认是字符串。