欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于JavaScript的变量的数据类型的判断方法

程序员文章站 2022-05-07 11:01:40
  虽然javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:number、string、boolean、object、udefined、nu...

  虽然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]') {
  // 肯定是一个数组!
  // 这是判断一个变量是否为数组的最可靠方法
}