关于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实现点击同时更改两个iframe的网址
Jul 01 Javascript
IE的fireEvent方法概述及应用
Feb 22 Javascript
js Dialog 去掉右上角的X关闭功能
Apr 23 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
Mar 31 Javascript
JavaScript数据结构与算法之栈与队列
Jan 29 Javascript
angularjs 源码解析之injector
Aug 22 Javascript
使用JS读取XML文件的方法
Nov 25 Javascript
Angular实现表单验证功能
Nov 13 Javascript
使用classList来实现两个按钮样式的切换方法
Jan 24 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
Sep 26 Javascript
layer.js之回调销毁对话框的例子
Sep 11 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
JS实现多功能计算器
2020/10/28 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
c++生成dll使用python调用dll的方法
2014/01/20 Python
Python生成随机密码
2015/03/10 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
团干部培训方案
2014/06/03 职场文书
公司更名通知函
2015/04/24 职场文书
《穷人》教学反思
2016/02/19 职场文书
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers