一.类型检测
1.1使用constructor
constructor是Object类型的原型对象,它能够返回当前对象的构造器(类型函数)。
var o = [];
var a = {};
if(o.constructor == Array)
document.write('o是数组')
if(a.constructor == Object)
document.write('a是对象')
1.2使用toSting
二.类型转换
2.1转化为字符串
2.1.1使用加号运算符
(1)把数字转换为字符串,返回数字本身
(2)把布尔型转换为字符串,返回字符串'true'和'false'
(3)把数组转换为字符串,返回数组元素列表,以逗号分隔。如果是空数组,则返回空串。
(4)把函数转换成字符串,返回函数的具体代码字符串
(5)把对象转换成字符串,则返回的字符串会根据不同类型或定义对象的方法和参数而不同。
2.1.2使用toString()方法
var a = 123456;
a.toString();
console.log(a);//返回字符串'123456'
2.2转换成数字
常用值转换成数字:
转换前 | 转换后 |
1 | 1 |
0 | 0 |
true | 1 |
false | 0 |
'' '' | 0 |
underfined | NaN |
null | 0 |
NaN | NaN |
Infinity | Infinity |
2.2.1使用parseInt()
consolo.log(parseInt('123abc'));//返回数字123
consolo.log(parseInt('1.73'));//返回数字1
consolo.log(parseInt('.123'));//返回值NaN
2.2.2使用parseFloat()函数
2.3转换为布尔值
转换前 | 转换后 |
1 | true |
0 | false |
true | true |
false | false |
'' '' | false |
underfined | false |
null | false |
NaN | false |
Infinity | true |
2.3.1使用双重逻辑非
consolo.log(!!0);//返回false
2.3.2使用Boolean()函数
consolo.log( Boolean(0));//返回false
2.4转换为对象
使用new命令调用String,NUmber,Boolean类型函数,可以把字符串,数字和布尔值3类简单值封装为对应类型的对象。
var n ='123';
consolo.log(typeof new String(n));//返回object
consolo.log(typeof new Number(n));//返回object
consolo.log(typeof new Boolean(n));//返回object
consolo.log(Object.prototype.toString.call( new String(n)));//返回[object String]
consolo.log(Object.prototype.toString.call( new Numebr(n)));//返回[object Number]
consolo.log(Object.prototype.toString.call( new Boolean(n)));//返回[object Boolean]