小编的话:如果真正要自己写好JS,首先明白JS类型转换。首先贴出来JS对象的三大分类。
1.浏览器扩展对象:ActiveXObject,XML,Debug,Script,VBArray...
2.宿主对象:window,document,navigator
3.原生对象:
(1).构造函数:Boolean,String,Nunber,Object,Function,Array,Date,RegExp,Error
(2).对象:Math,JSON,全局对象,arguments
一、JS隐式类型转换
JS是一种非常灵活的弱类型语言,所以会自动的进行类型转换。我所记录的隐式类型转换通常分为几种场景:
(1). 点字符直接量隐式转为对象。example: var str = ‘abc‘; str.indexOf();
(2). if()表达式中会进行隐式转换 example: var str = ‘‘; if( Boolean( str ) ){... }; 会对字符串进行隐式转换。
(3). ==,+,-,也会进行隐式转换 example: var str = ‘abc‘;var num = 123; alert( str+num );
二、四种方法的类型识别(typeof、instanceof、Object.prototype.toString.call、constructor)
写一个简单的对传入参数的JS类型的判断区分
/*
* 输入格式:
* ‘2015-08-05‘
* 1438744815232
* {y:2015,m:8,d:5}
* [2015,8,5]
* 返回格式:Date
*/
function toDate( param ){
if( typeof(param) == ‘string‘ || typeof(param) == ‘number‘ ){
return new Date(param);
}
if(param instanceof Array){
var date = new Date();
date.setYear(param[0]);
date.setMonth(param[1] - 1);
date.setDate(param[2]);
return date;
}
if(typeof(param) == ‘object‘){
var date = new Date();
date.setYear(param.y);
date.setMonth(param.m-1);
date.setDate(param.d);
return date;
}
return -1;
}