typeof判断类型(数组类型得用instanceof)

var a= 1;
console.log(typeof a); 
var b= ‘1‘;
console.log(typeof b); 
var c;
console.log(typeof c); 
var d= true;
console.log(typeof d); 
var e= [1,2,3];
console.log(typeof e); 
var f= function(){};
console.log(typeof f);
console.log(e instanceof Array)

观察输出结果发现,number, string, undefined, function,boolean类型均能通过typeof方法判断,

而array类型输出object,因为typeof方法只能判断基本类型类型(number, string, undefined,boolean),除此之外(包括Date, RegExp,null等都只是object的扩展!)都不靠谱

数组一般情况下可以用instanceof来判断。

时间: 2024-10-24 15:54:15

typeof判断类型(数组类型得用instanceof)的相关文章

Swift2.0(5)元组类型&数组类型&字典类型

元组类型 元组Tuple用来归纳多个归纳具有任意类型的相关联的值,如: var person = (30, "neusoft") print(person)     // (30, "neusoft") 该元组类型对象person的类型可以认为是:(Int, String) 如果想要获取元组中的某个数据,可以采用以下方式 方式一:可以将其中的数据关联到常量或变量中,如: let (age, name) = person print("age:\(age)

怎么判断一个对象是不是数组类型?

前面<变量的赋值和对象的赋值>中有用到typeof运算符去判断运算数的类型,结果如下: alert(typeof 1); // 返回字符串"number" alert(typeof "1"); // 返回字符串"string" alert(typeof true); // 返回字符串"boolean" alert(typeof {}); // 返回字符串"object" alert(typeof

delphi 数组类型

数组类型 数组类型定义了一组指定类型的元素序列,在方括号中填入下标值就可访问数组中的元素.定义数组时,方括号也用来指定可能的下标值.例如,下面的代码中定义了一个有 24 个整数的数组: type    DayTemperatures = array [1..24] of Integer; 在数组定义时,你需要在方括号中填入一个子界类型的值,或者用两个有序类型的常量定义一个新的子界类型,子界类型指定了数组的有效索引.由于子界类型指定了数组下标值的上界和下界,那么下标就不必象 C.C++.JAVA

判断一个变量是数组类型的方法

在很多时候,我们都需要对一个变量进行数组类型的判断(借鉴) 学过js就应该知道typeof运算符返回字符串,该字符串代表操作数的类型(即返回数据类型)这是最常用的. 下面多种实现方式: JavaScript中检测对象的方法 1.typeof操作符 这种方法对于一些常用的类型来说那算是毫无压力,比如Function.String.Number.Undefined等,但是要是检测Array的对象就不起作用了. alert(typeof null); // "object" alert(ty

判断数据类型和数组类型

js数据类型判断和数组判断 这么基础的东西实在不应该再记录了,不过嘛,温故知新~就先从数据类型开始吧 js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number:什么整数啊浮点数啊都叫数字,你懂的~ Boolean: 就是true和false啦 undefined:未定义,就是你创建一个变量后却没给它赋值~ null: 故名思久,null就是没有,什么也不表示 obj

js数组类型判断与数据类型判断回顾

前两天参加了百度前端的电话面试,其中问到了数组类型的判断问题,虽然以前看过这方面的内容,但时间久了有点模糊,答得不怎么好,现在对相关内容做个回顾和总结. 先来回答这个问题:如何判断一个对象是数组? 判断一个对象是否是数组方法有多种: 一.Array.isArray()函数 在ECMAScript5中可以通过Array.isArray()来做这件事: Array.isArray({}); //false Array.isArray([]); //true 二.instanceof instance

判断一个变量类型是数组还是对象

因为无论是数组还是对象,对于typeof的操作返回值都为object,所以就有了区分数组类型和对象类型的需要: 方一:通过length属性:一般情况下对象没有length属性值,其值为undefiend,而数组的length值为number类型 缺点:非常不实用,当对象的属性存在length,且其值为number(比如类数组),则该方法失效,不建议使用,看看即可. *方二:通过instanceof来判断区分 var arr = [1, 2, 3]; var obj = { name: 'lyl'

JavaScript中如何判断数组类型

前言 JavaScript中关于数组的判定问题,一直都是一个必须要掌握的点,那么,运用知识,如何判断一个类型是数组,就需要有对JavaScript使用有着深入的了解. 判断方法 一.Array.isArray ES5新增的数组方法,Array.isArray应该是我们最先想到的判定方式,现在应用的也比较广泛. const arr = [1,2,3,4] Array.isArray(arr) // true 如果是在支持ES5的浏览器中,用这样的方式自然没什么问题,但是如果是在IE9以下版本,这个

如何准确判断一个变量是数组类型

只有instanceof才能判断一个对象是否是真正的数组 var arr = [] arr instanceof Array // true typeof arr // object typeof 是无法判断是否是数组的 扩展:实际应用中,和数组同样重要.起同样作用并且更加灵活的数据结构还是"伪数组"或者"类数据"(jquery 就用到了).因此,在实际应用中,只需要判断length属性是否是数字即可. var arr = [] var likeArr = { 0:

判断数组类型

1.在ES5中区分js的数组和对象,是比较容易,直接用Arrar.isArray() Array.isArray([]) //true Array.isArray({}) //false 这个属性在ie8或ie8一下是支持es5的这一属性 PS: es5的支持情况如下: IE6是15年前的,所以不支持,IE7出来时ECMAScript5没出来,所以不支持,IE8支持一点,IE9支持更多,IE10完美支持了,IE11支持少量ECMAScript6. http://kangax.github.io/