码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript的类型转换( 本贴来自网易前端微专业的个人学习笔记 )

时间:2016-01-03 02:46:56      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

小编的话:如果真正要自己写好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;
}

 

JavaScript的类型转换( 本贴来自网易前端微专业的个人学习笔记 )

标签:

原文地址:http://www.cnblogs.com/tianshuo/p/5095732.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!