关于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 相关文章推荐
jQuery 判断元素上是否绑定了事件
Oct 28 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
Jun 15 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
May 16 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 Javascript
你可能不知道的JSON.stringify()详解
Aug 17 Javascript
解决VUEX兼容IE上的报错问题
Mar 01 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
webpack DllPlugin xxx is not defined解决办法
Dec 13 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
Sep 01 Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 Javascript
js动态添加带圆圈序号列表的实例代码
Feb 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
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
php中函数前加&符号的作用分解
2014/07/08 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python Property属性的2种用法
2015/06/21 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python安装numpy&安装matplotlib& scipy的教程
2017/11/02 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
什么是TCP/IP
2014/07/27 面试题
毕业生个人求职的自我评价
2013/10/28 职场文书
大客户销售经理职责
2013/12/04 职场文书
社区母亲节活动记录
2014/03/06 职场文书
向领导表决心的话
2014/03/11 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
房屋认购协议书
2015/01/29 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
redis限流的实际应用
2021/04/24 Redis
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js