关于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 相关文章推荐
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
javascript Prototype 对象扩展
May 15 Javascript
csdn 论坛技术区平均给分功能
Nov 07 Javascript
javascript下高性能字符串连接StringBuffer类
Aug 16 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
Nov 10 Javascript
简单实用jquery版三级联动select示例
Jul 04 Javascript
JS清空多文本框、文本域示例代码
Feb 24 Javascript
JS 实现随机验证码功能
Feb 15 Javascript
Bootstrap表单制作代码
Mar 17 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
Aug 20 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
Nov 04 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
可以将word转成html的js代码
2010/04/11 Javascript
Javascript图像处理思路及实现代码
2012/12/25 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Python入门篇之列表和元组
2014/10/17 Python
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
浅谈Python的异常处理
2016/06/19 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
python简单实现最大似然估计&scipy库的使用详解
2020/04/15 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
银行优秀员工事迹材料
2014/05/29 职场文书
优秀校长事迹材料
2014/12/24 职场文书
导游词之河北白洋淀
2020/01/15 职场文书