关于JavaScript的变量的数据类型的判断方法


Posted in Javascript onAugust 14, 2015

  虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number、String、Boolean、Object、Udefined、Null。其中,Object属于复杂数据类型,Object   由无序的键值对组成。其余几种都属于简单数据类型。注意:变量类型首字母大写,而变量值首字母是小写的。
  JavaScript不支持自定义类型,所以JavaScript中的所有值都属于这六种类型之一。
  要搞清楚一个变量是何种数据类型,就要使用typeof操作符了,注意,尤其要注意的是,typeof是操作符,不是方法,因此,typeof中的字母'o'是小写的。
  语法:typeof temp;  //temp是一个变量,这里可以不加括号,但是为了程序的可读性,最好还是加上括号。

JavaScript 本身可以用它typeof来检测变量的类型,但是有些结果却让人疑惑,例如,数组的类型居然是"Object"。

下面是用typeof对各种数据类型的判断结果

var myFunction = function() {
  console.log('hello');
};

var myObject = {
  foo : 'bar'
};

var myArray = [ 'a', 'b', 'c' ];

var myString = 'hello';

var myNumber = 3;

typeof myFunction;  // 返回 'function'
typeof myObject;   // 返回 'object'
typeof myArray;   // 返回 'object' -- 小心哦!
typeof myString;   // 返回 'string';
typeof myNumber;   // 返回 'number'

typeof null;     // 返回 'object' -- 小心哦!


if (myArray.push && myArray.slice && myArray.join) {
  // 很可能是一个数组
  // 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。
}

if (Object.prototype.toString.call(myArray) === '[object Array]') {
  // 肯定是一个数组!
  // 这是判断一个变量是否为数组的最可靠方法
}

 

Javascript 相关文章推荐
有趣的JavaScript数组长度问题代码说明
Jan 20 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
Dec 10 Javascript
js自定义方法通过隐藏iframe实现文件下载
Feb 21 Javascript
JS中操作JSON总结
Dec 06 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
Mar 13 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 Javascript
Vue.js第四天学习笔记(组件)
Dec 02 Javascript
详解在vue-cli项目中安装node-sass
Jun 21 Javascript
实现jquery放大镜的两种方法
Feb 22 jQuery
详解用js代码触发dom事件的实现方案
Jun 10 Javascript
js中复选框的取值及赋值示例详解
Oct 18 Javascript
js实现表单检测及表单提示的方法
Aug 14 #Javascript
JavaScript中的this关键字使用详解
Aug 14 #Javascript
JS实现双击编辑可修改状态的方法
Aug 14 #Javascript
JavaScript变量的作用域全解析
Aug 14 #Javascript
DEDECMS如何为文章添加HOT NEW标志图片
Aug 14 #Javascript
JavaScript实现给按钮加上双重动作的方法
Aug 14 #Javascript
详解jQuery中的元素的属性和相关操作
Aug 14 #Javascript
You might like
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
PHP实现递归的三种方法
2020/07/04 PHP
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
python修改字典内key对应值的方法
2015/07/11 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
Python内建模块struct实例详解
2018/02/02 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
关于python字符串方法分类详解
2019/08/20 Python
python实现淘宝购物系统
2019/10/25 Python
python 实现按对象传值
2019/12/26 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
职业技术学校毕业生推荐信
2013/12/03 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
2016年元旦寄语
2015/08/17 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书