关于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 相关文章推荐
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
Apr 17 Javascript
防止浏览器记住用户名及密码的简单实用方法
Apr 22 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
Nov 03 Javascript
javascript图片预加载完整实例
Dec 10 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
Bootstrap CSS布局之列表
Dec 15 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
解决layui表格内文本超出隐藏的问题
Sep 12 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
Vue实现仿iPhone悬浮球的示例代码
Mar 13 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
Apr 07 Javascript
Vue使用screenfull实现全屏效果
Sep 17 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连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
Python实现的彩票机选器实例
2015/06/17 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
Python绘制七段数码管实例代码
2017/12/20 Python
对Python3中的input函数详解
2018/04/22 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
外语系毕业生自荐信范文
2013/12/16 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
党员十八大心得体会
2014/09/12 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
体育教师个人总结
2015/02/09 职场文书
复兴之路观后感
2015/06/02 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
PHP基本语法
2021/03/31 PHP
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript