目录

  • 一、javaScript数据类型
  • 二、javaScript判断数据类型的方法
    • 1.使用typeof
    • 2.使用instanceof
    • 3.使用Object.prototype.toString.call---万能检测
    • 4.使用constructor
    • 注:本文有借鉴

一、javaScript数据类型

数据类型 类型说明
String—字符串 字符串类型String,用单引号或者双引号包裹的任何字符
Number—数字 只能是数字或者小数
Bollean—布尔值 true或false,真或假
Null—空值,是对象类型 null值表示一个空对象指针
Undefined—未定义 定义变量后不赋值,这个变量就是undefined
复杂数据类型—Object 对象Object、数组Array、函数Function、Date

二、javaScript判断数据类型的方法

1.使用typeof

console.log(typeof(123))---//number
console.log(typeof('Hello word'))---//string
console.log(typeof(true))---//boolean
console.log(typeof(undefined))---//undefined
console.log(typeof(function(){}))---//function
console.log(typeof(null))---//object
console.log(typeof({}))---//object
console.log(typeof([]))---//object
//typeof后面不加()写法也是正确的
console.log(typeof 123)---//number

【注】:typeof—只能检测基本数据类型,对于null及数组、对象,typeof均检测出为object,不能进一步判断它们的类型。

2.使用instanceof

//语法:(判断的数据类型)instanceof(js中的数据类型)
let obj = {name:'小明',age:19}
let arrList = [1,2]
let fn = function(){}
console.log(obj instanceof Object)---//true
console.log(arrList instanceof Array)---//true
console.log(fn instanceof Function)---//true
console.log('H' instanceof String)---//true
console.log(false instanceof Boolane)---//true

【注】:左边放你要判断的内容,右边放类型来进行JS类型判断,只能用来判断复杂数据类型,因为instanceof 是用于检测构造函数(右边)的 prototype 属性是否出现在某个实例对象(左边)的原型链上。

3.使用Object.prototype.toString.call—万能检测

console.log(Object.prototype.toString.call(123))---//[object Number]
console.log(Object.prototype.toString.call('H'))---//[object String]
console.log(Object.prototype.toString.call(false))---//[object Boolane]
console.log(Object.prototype.toString.call(undefined))---//[object undefined]
console.log(Object.prototype.toString.call(null))---//[object Null]
console.log(Object.prototype.toString.call([1,2,3]))---//[object Array]
console.log(Object.prototype.toString.call({}))---//[object Object]
console.log(Object.prototype.toString.call(function(){}))---//[object Function]
console.log(Object.prototype.toString.call(new Date))---//[object Date]

【注】:在任何值上调用 Object 原生的 toString() 方法,都会返回一个 [object NativeConstructorName] 格式的字符串。每个类在内部都有一个 [[Class]] 属性,这个属性中就指定了上述字符串中的构造函数名。
但是它不能检测非原生构造函数的构造函数名。

4.使用constructor

console.log((123).constructor === Number)---//true
console.log(('H').constructor === String)---//true
console.log((false).constructor === Boolane)---//true
console.log(([1,2,3]).constructor === Array)---//true
console.log((function(){}).constructor === Function)---//true
console.log(({}).constructor === Object)---//true
console.log((new Date).constructor === Date)---//true

【注】:constructor不能判断undefined和null,并且使用它是不安全的,因为contructor的指向是可以改变的

注:本文有借鉴

共同学习,共同进步,知识点不对的请大佬们多多指教✍️

javaScript中判断数据类型的方法相关推荐

  1. js中判断数据类型的方法

    JS中判断数据类型的方法: 使用typeof操作符. 对一个值使用 typeof 操作符可能返回下列某个字符串,返回的类型都是字符串形式. (1) undefined:如果这个值未定义 (2) boo ...

  2. JavaScript 判断数据类型的方法

    文章目录 1.javascript 中的数据类型 2.`typeof` 返回 变量的数据类型 3.`instanceof ` :复杂数据类型的判断 3.1.instanceof 原理分析(初学者跳过) ...

  3. 分享一波很全的 JS 判断数据类型的方法

    分享一波很全的 JS 判断数据类型的方法 干货满满,很常用也很有用的一波方法整理,分享给需要的小伙伴们. 偷偷说一句,小肉包之前整理的没有这么简洁和全面,后面小肉包的男朋友又帮忙加工润色了一下,现在看 ...

  4. js中判断数据类型的几种实用方法

    前言 最近项目中有不少地方需要判断数据类型,但是判断数据类型也有好几种方法,并且每种方法判断的数据类型也有局限性,所以想总结一下,方便以后查阅. 分别是 typeof ,instanceof,Obje ...

  5. JavaScript判断数据类型的方法

    JavaScript判断数据类型的方法 1 数据类型有哪些? 2 判断JavaScript数据类型的方法 2.1 typeof 2.2 instanceof 2.3 constructor 2.4 t ...

  6. html类型转换函数,如何在JavaScript中转换数据类型?

    在JavaScript中,数据类型用于对一种特定类型的数据进行分类,确定可以分配给类型的值以及可以对其执行的操作.虽然由于类型强制,JavaScript会自动转换许多值,但为了达到预期的结果,通常最好 ...

  7. java两字符串是否相等_Java与JavaScript中判断两字符串是否相等的区别

    JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...

  8. 科普向--详解JavaScript中的数据类型

    对于前端的小伙伴而言,JS的数据类型可谓是必懂的知识点.虽然这个知识点很是基础了,不过仍然有不少人会在这一块犯些小错误.比如网上流传的"JavaScriptS一切皆对象",其实是个 ...

  9. php中this的使用技巧,JavaScript中this关键字使用方法详解

    JavaScript中this关键字使用方法详解 在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了 ...

最新文章

  1. SLAM本质剖析-Open3D
  2. 原型链Object的一些方法
  3. 已知x=python是一种非常好的编程语言-为什么用Python,高级的Python是一种高级编程语言...
  4. VM虚拟机 Windows虚拟机中linux鼠标不能动怎么办
  5. cnn卷积中padding作用
  6. linux查看tar进程进度,Linux:wget后台下载/查看后台任务进度
  7. MYSQL学习笔记 (二)对数据库结构的增删改查
  8. 【html】【19】高级篇--大事件时间轴
  9. ASP.NET操作Excel
  10. oracle中结果集合并
  11. 重建总结5_重建列表
  12. 面包板电源线怎么接_面包板的怎么使用
  13. 关于travis scott的网名_情侣网名霸气超拽有范 情侣网名霸气超拽2个字
  14. 玩转软路由 篇四:软路由中OpenWRT作为旁路由的安装设置教程
  15. 服务器c盘满了怎么清理? 服务器c盘空间不足清理方法
  16. 【技能图谱免费下载】进阶数据库工程师 你需要Get这些技能
  17. 字符串的几个常用属性
  18. Python并发编程系列之多线程
  19. 保姆级教程:基于Docker部署雨中冒险2服务器 雨中冒险2开服
  20. leg_detector包随机森林训练(修改自leg_detector中的train_leg_detector.cpp)

热门文章

  1. (转)以太坊(Ethereum)创世揭秘 以太坊(Ethereum)创世揭秘
  2. 不懂锤爆我系列之Tensorflow入门学习—— 张量扩展函数tile()详解
  3. CSS应用:复杂背景图案
  4. [JavaScript] 数字金额大写转换 v2
  5. 路飞学城python全栈开发_python 全栈开发,Day98(路飞学城背景,django ContentType组件,表结构讲解)...
  6. Delphi之东进数字语音卡(SS1)可复用源码 1
  7. 随身笔记(Java)-显示当前时间(英国和北京时间)
  8. HT1621 控制LCD屏幕显示数字,连续显示数字
  9. 生产制造型企业如何进行一线岗位定岗定编
  10. resultType 使用方法 笔记