`
zccst
  • 浏览: 3319312 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js判断复合数据类型的两种方式(typeof不奏效了)

阅读更多
作者:zccst

typeof认为所有的复合数据类型都是"object",没法进一步细分,所以还得用其他方法

先上结论:

1,(arr && typeof(arr) === "object" && arr.constructor === Array)

2,Object.prototype.toString.call(arr);
Object.prototype.toString.call([]);
//"[object Array]"
Object.prototype.toString.call({});
//"[object Object]"


例子:
    var arr = [];
    arr['name'] = "helios";
    arr['version'] = 'trunk';
    console.log(arr, typeof arr);
    console.dir(arr);//信息比较全面
    $.each(arr, function(key, item){//没有进入循环,是因为length=0
        console.log(key, item, item[key]);
    });
    console.log( Object.prototype.toString.call(arr) );
    console.log( arr.constructor , arr.constructor === Array);
    console.log(arr && typeof(arr) === "object" && arr.constructor === Array);


打印:
[name: "helios", version: "trunk"] "object"
Array[0]
  length: 0
  name: "helios"
  version: "trunk"
  __proto__: Array[0]
[object Array]
function Array() { [native code] } true
true

批注:
1,arr还是数组。只不过length=0,同时绑定了两个静态变量。jQuery不循环这类数据。

2,typeof只是用来判断基本数据类型的。复合数据类型typeof判断出都是"object"

3,instanceof也不奏效,因为他们是继承关系。
    var arr = [];
    arr['name'] = "helios";
    arr['version'] = 'trunk';
    console.log( arr instanceof Array );  //true
    console.log( arr instanceof Object ); //true



如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    JS 使用 typeof 获取数据类型

    这篇博客“JS 使用 typeof 获取数据类型”深入探讨了如何利用`typeof`来识别和处理不同类型的JavaScript数据。 首先,`typeof`返回的是一个字符串,这个字符串描述了变量的类型。它适用于原始数据类型(如`...

    js引入方式,三种输出方式,一种输入方式,变量,基本数据类型,复合数据类型,数据分析,判断数据类型,算数运算符

    typeof运算符用于判断基本数据类型,instanceof运算符用于判断复合数据类型。 算数运算符有五种:加法、减法、乘法、除法和取余。加法运算符可以将字符串进行拼接,其他运算符遇到字符串类型会自动将其转换为数字...

    instanceof 判断引用类型,typeof判断基本类型。

    在JavaScript编程语言中,`instanceof` 和 `typeof` 是两个非常重要的操作符,用于判断变量的类型。它们各自有着不同的用途和用法,对于理解和调试代码至关重要。 首先,我们来详细了解一下`instanceof`操作符。`...

    关于js typeof 与 instanceof 判断数据类型区别及开发使用.docx

    `typeof`和`instanceof`是两种常见的用于检测数据类型的工具,但它们有着不同的用法和限制。下面我们将深入探讨这两个操作符的区别及其在实际开发中的应用。 1. `typeof` 操作符 `typeof` 是JavaScript中的一个...

    js 判断数据类型的几种方法

    本文将详细介绍并比较五种常见的判断JavaScript数据类型的方法:`typeof`、`instanceof`、`constructor`、`prototype`以及jQuery提供的`$.type()`/`jquery.type()`。 1. `typeof`: `typeof`操作符用于获取变量的...

    JS类型检测库弥补typeof的问题

    `typeof`操作符是JavaScript内置的用于检测变量类型的工具,但它在处理某些特定情况时存在局限性。本文将深入探讨`typeof`的问题以及如何通过使用JS类型检测库来弥补这些不足。 `typeof`操作符在JavaScript中可以...

    JS数据类型判断的几种常用方法

    本文将详细介绍几种常用的JS数据类型判断方法。 首先,`typeof`运算符是最常用的数据类型判断方式。它可以直接通过`typeof(表达式)`或`typeof 变量名`来获取变量的类型。例如: ```javascript console.log(typeof ...

    JS中typeof与instanceof的区别

    在 JavaScript 中,typeof 和 instanceof 是两个常用的运算符,用来判断一个变量是否为空,或者是什么类型的。但是,这两个运算符之间还是有区别的。 typeof 运算符是一个一元运算符,放在一个运算数之前,运算数...

    JS判断是否是图片类型

    alert("图片类型必须是.gif,jpeg,jpg,png中的一种") return false; } } } 主要代码: <input type="file" id="imgFile" name="imgFile"/><input type="submit" value="上传"/> ${sysadmin_ctx }/upload" method...

    JavaScript基础知识之数据类型

    数据类型 JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。 typeof操作符 介于...

    判断数据类型的方法.html

    JS中判断数据类型的4种方法及其实例:typeof、instanceof、constructor、Object.prototype.toString.call();还有判断数据类型的函数

    js判断undefined变量类型使用typeof

    2. 对于基本数据类型,typeof可以返回以下几种类型:"string"、"number"、"boolean"、"undefined"、"symbol"(在ES6中引入的)和"bigint"(在ES2020中引入的)。 3. 对于对象、数组、null等,typeof总是返回"object...

    浅谈js数据类型判断与数组判断

    总的来说,JavaScript中的数据类型判断和数组判断是编程中常见的操作,需要根据不同的场景选择合适的判断方式。了解这些基本概念和技巧,能帮助开发者写出更健壮、更可靠的代码。在进行面试或日常开发时,熟练掌握...

    js中判断变量类型函数typeof的用法总结.docx

    支持以下几种类型: - `"number"` — 表示数值类型。 - `"string"` — 表示字符串类型。 - `"boolean"` — 表示布尔类型。 - `"object"` — 表示对象或`null`类型。 - `"function"` — 表示函数类型。 - `"undefined...

    JavaScript判断数据类型有几种方法及区别介绍

    在JavaScript中,正确地识别和判断变量的数据类型是编程中不可或缺的一部分。本文将详细介绍JavaScript中判断数据类型的五种主要方法,以及它们之间的区别。 一、`typeof`操作符 `typeof`是一个操作符,用于判断...

    JS数据类型分类及常用判断方法

    数据类型判断的方法 在探索数据类型判断方法的时候我们...我相信typeof这个判断数据类型的方法是大家平常用的比较多的,闲话不多说,直接上代码: console.log(typeof 1);//number console.log(typeof ‘hello’);//st

    JS:typeof instanceof constructor prototype区别

    本文将深入探讨四种常用的方法来识别和判断JavaScript中的数据类型:`typeof`、`instanceof`、`constructor`以及`prototype`。 ### 1. `typeof` `typeof`操作符是最常见的类型检测方式之一,它返回一个表示未经计算...

    详解JavaScript中typeof与instanceof用法

    在JavaScript中,typeof和instanceof是常用的两种检测数据类型的方式,它们各自有其适用的场景和特点。 ### typeof typeof 是一个一元运算符,它用于返回变量或表达式的类型。当使用typeof运算符时,它通常会返回...

    判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解

    本篇文章将深入探讨两种常见的数据类型检测方法:`typeof`和`Object.prototype.toString.call()`。 首先,我们来看`typeof`操作符。`typeof`是JavaScript内置的全局函数,用于返回一个表达式或变量的数据类型,...

Global site tag (gtag.js) - Google Analytics