javascript中的数据类型

简介: javascript中的数据类型

一. 基本数据类型


`Undefined`、`Null`、`Boolean`、`Number`、`String`、`Symbol`、`BigInt`(es6新增)。


二. 复杂数据类型(引用数据类型Object)


`Array`、`Function`、`Date`、`RegExp`、`Error`、`Arguments` ....


三. 检测数据类型的方法


  • typeof这种只能粗略的检测不同数据的类型 注意: 这种方式返回的类型都是小写的字符串 只要是引用类型他都会返回object, 其中null这个基本数据类型返回的也是object, 因为在原型链上看Object.prototype.proto = null  所以,null其实就是一个空的对象的引用


console.log(Object.prototype.__proto__ === null)//true
        console.log(Object.prototype.__proto__)//null


  • instanceof


instanceof 是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,如果 A 是 B 的实例。instanceof 检测的是原型具体请看这里



  • Object.prototype.toString.call()这种方法是最好的,可以返回准确的类型判断参数: 要检测的对象返回值: 带有Object的数组字符串  注意:类型的首字母是大写的  如果想要变成小写,可以调用字符串的toLowerCase()方法


const obj = {
          name: 'zh'
        }
        const arr = [1,2,3]
        const typeObj = Object.prototype.toString.call(obj).slice(8, -1)
        const typeArr = Object.prototype.toString.call(arr).slice(8, -1)
        console.log(typeObj)//"Object"
        console.log(typeArr)//"Array"


四. 封装一个最全类型检测函数


function type(target) {
      //先利用typeof操作符判断
      let res = typeof target
      // 保存引用类型和基本包装类型的情况
      let temp = {
        "[object Object]": 'object',
        "[object Array]": 'array',
        "[object String]": 'string - object',
        "[object Number]": 'number - object',
        "[object Boolean]": 'boolean - object'
      }
      // 判断传入的是否为空
      if(target === null) {
        return null
      }else if(res === 'object') {
        let str = Object.prototype.toString.call(target)
        return temp[str]
      }else {
        return res
      }
    }
    console.log(type({name: 'zh'}))//object
    console.log(type([]))//array
    console.log(type(null))//null
    console.log(type(3))//number
    console.log(type('zh'))//string
    let a
    console.log(type(a))//undefined
    console.log(type(true))//boolean
    console.log(type(function() {}))//function
    console.log(type(new Number()))//number - object
    console.log(type(new String()))//string - object
    console.log(type(new Boolean()))//boolean - object



相关文章
|
1月前
|
存储 JavaScript 对象存储
js检测数据类型有那些方法
js检测数据类型有那些方法
133 59
|
2月前
|
JavaScript
js基础数据类型
js基础数据类型
29 1
|
4天前
|
存储 JavaScript 前端开发
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
JavaScript 数据类型分为基本数据类型和引用数据类型。基本数据类型(如 string、number 等)具有不可变性,按值访问,存储在栈内存中。引用数据类型(如 Object、Array 等)存储在堆内存中,按引用访问,值是可变的。本文深入探讨了这两种数据类型的特性、存储方式、以及检测数据类型的两种常用方法——typeof 和 instanceof,帮助开发者更好地理解 JavaScript 内存模型和类型检测机制。
10 0
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
|
16天前
|
JavaScript 前端开发 开发者
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
13 1
|
5天前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
9 0
|
1月前
|
存储 前端开发 JavaScript
前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
本文详细介绍了JavaScript中的数据类型,包括基本数据类型(Number、String、Boolean、Undefined、Null)和复杂数据类型(Object),并解释了如何使用`typeof`操作符来识别变量的数据类型。同时,还讨论了对象、函数和数组等复杂数据类型的使用方式。
30 2
|
1月前
|
JavaScript 前端开发
JavaScript基础知识-基本数据类型和引用数据类型
关于JavaScript基础知识的文章,主要介绍了基本数据类型和引用数据类型。
37 2
JavaScript基础知识-基本数据类型和引用数据类型
|
2月前
|
JavaScript 前端开发
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
这篇文章是JavaScript基础与实战教程的第一部分,涵盖了JavaScript的基本语法、标识符、数据类型以及如何进行强制类型转换,通过代码示例介绍了JS的输出语句、编写位置和数据类型转换方法。
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
|
2月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
224 1
|
2月前
|
JavaScript 前端开发
JS常用数据类型转换(数字型和字符串型之间转换)
JS常用数据类型转换(数字型和字符串型之间转换)
52 2