关于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实现TAB标签效果
Jan 12 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
Feb 01 Javascript
理解javascript正则表达式
Mar 08 Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
Mar 21 Javascript
Vue写一个简单的倒计时按钮功能
Apr 20 Javascript
js 实现在2d平面上画8的方法
Oct 10 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
Nov 05 Javascript
Vue 动态添加路由及生成菜单的方法示例
Jun 20 Javascript
js实现无刷新监听URL的变化示例代码详解
Jun 03 Javascript
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
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
推荐文章系统(一)
2006/10/09 PHP
一个ubbcode的函数,速度很快.
2006/10/09 PHP
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
详解vue组件基础
2018/05/04 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
python字符串查找函数的用法详解
2019/07/08 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
社区庆中秋节活动方案
2014/02/07 职场文书
求职意向书范文
2014/04/01 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
新郎新娘致辞
2015/07/31 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android