当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JavaScript使用学习之类型转换

JavaScript使用学习之类型转换

2018年10月15日  | 移动技术网IT编程  | 我要评论

类型转换

转换和相等性:

(1)"=="等于运算符在判断两个值是否相等时有时会发生类型转换,"==="恒等运算符在判断相等时不会做任何类型转换。

(2)类型转换过程中,转换前的值并不等于转换后的值。

显式类型转换:

(1)显示类型转换可以使用boolean()、number()、string()或object()函数。例如:

number("3");

string(false);

string(true);

false.tostring();

true.tostring();

boolean([ ]);

boolean(null);

object(3); //等于new number(3)

(2)除了null和undefined之外任何值都有tostring()方法。tostring()与string()方法返回的结果一致。

(3)null和undefined直接转换为对象,则会抛出一个类型错误(typeerror)。如果使用object()函数,则不会抛出异常,它仅简单地返回一个新创建的空对象。

(4)tostring()方法可以接收转换基数(范围在2至36之间),tostring()方法默认转换为十进制的。例如:

var a = "2";

a1 = a.tostring(2); //二进制

a2 = "0" + a.tostring(8); //八进制

a3 = "0x" + a.tostring(16); //十六进制

隐式转换:

(1)+运算符的操作数中有一个是字符串,则会将其他操作数转换为字符串。

(2)一元“+”运算符将其操作数转换为数字。例如:+a 等价于number(a)

(3)一元“!”运算符将其操作数转换为布尔值并取反。例如:

!! x // 等价于 boolean(x). 注意是双叹号,x先转换为true(或者false),然后取反,变为false(或者true),此时已经是布尔值了,所以不用将操作数转换为布尔值,再次取反,还是得到true(或者false)。

对象转换为原始值

(1)所有的对象(包括数组和函数,包装对象)都会转换为true。

(2)所有的对象都会继承两个转换方法,分别是tostring()和valueof()。

tostring():

对象包括普通的对象,函数,数组。

对于部分对象:例如:({x:1, y:2}).tostring() // => "[object object]

对于regexp对象:转换为表示正则表达式直接量的字符串。例如:/\d+/g.tostring() // => "/\\d+/g"

对于数组:例如:var a = [11, 12, 13]; a.tostring(); // =>"11,12,13"(一个包含逗号的字符串)

对于函数:将用户自定义的函数转换为javascript源代码字符串。

例如:(function(x) { f(x); }).tostring() // => "function(x) {\n f(x);\n}"

对于日期类:返回了一个可被javascript解析的日期和时间字符串。

例如:new date(2010,0,1).tostring() // => "fri jan 01 2010 00:00:00 gmt-0800 (pst)"

valueof():

对于对象:如果对象是复合值(一般情况下对象均为复合值),valueof()方法默认返回对象本身。数组、函数和正则表达式的valueof()方法只是简单返回对象本身。日期类定义的valueof()方法返回自1970年1月1日以来的毫秒数。例如:new date(2018,5,27).valueof();

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网