关于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 + Flex 通过拖拽方式动态改变图片的代码
Aug 03 Javascript
jQuery操作 input type=checkbox的实现代码
Jun 14 Javascript
Javascript操作cookie的函数代码
Oct 03 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
Nov 13 Javascript
Javascript拓展String方法小结
Jul 08 Javascript
全屏js头像上传插件源码高清版
Mar 29 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
Vue.js仿微信聊天窗口展示组件功能
Aug 11 Javascript
浅谈webpack 自动刷新与解析
Apr 09 Javascript
Vue.js组件通信之自定义事件详解
Oct 19 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
Sep 22 Javascript
JavaScript实现简单图片切换
Apr 29 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邮件管理器源码
2016/01/06 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
javascript中indexOf技术详解
2015/05/07 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
Express使用html模板的详细代码
2017/09/18 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
python轻松实现代码编码格式转换
2015/03/26 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
Python中反射和描述器总结
2018/09/23 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
python 实现任务管理清单案例
2020/04/25 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
开业主持词
2014/03/21 职场文书
英文自荐信常用句子
2014/03/26 职场文书
初中学生期末评语
2014/04/24 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
入党函调证明材料
2015/06/19 职场文书
感恩教育主题班会
2015/08/12 职场文书
通知怎么写?
2019/04/17 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
Python标准库pathlib操作目录和文件
2021/11/20 Python
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技