首页 > 其他分享 >[JS] 数据类型与特殊值的判断方法

[JS] 数据类型与特殊值的判断方法

时间:2024-06-30 22:43:27浏览次数:16  
标签:function 判断 return Object 数据类型 value JS toString prototype

由于JS是弱类型语言,判断一个变量的数据类型是一个很常见的需求。

下面介绍一些常用的判断方法:

typeof操作符

typeof可以用来判断除了``null的基本数据类型和function,其它引用数据类型都会返回object`。

console.log(typeof "Hello"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof function(){}); // "function"
console.log(typeof null); // "object" (这是一个历史遗留的bug)
console.log(typeof []); // "object"

为什么typeof null会返回object ?

在JS的最初版本中,使用32位二进制表示栈中的变量,二进制的前三位为类型标识tag,当前三位都是0时,表示object类型。但是null被设计为32位二进制都是0,因此会被错误地识别为object类型。

由于这个错误影响范围很大,后期并没有被修复。

标签:function,判断,return,Object,数据类型,value,JS,toString,prototype
From: https://www.cnblogs.com/feixianxing/p/18277080/js-type-checking-methods-explained

相关文章

  • 【Redis二】Redis数据类型
    目录一.Redis数据类型分布二.字符串类型string 1.概述2.操作三.列表list1.概述2.操作四.哈希hash1.概述2.操作五.无序集合set1.概述2.应用范围3.操作六.有序集合zset1.概述2.应用范围3.操作七.通用命令一.Redis数据类型分布通常Redis的数据类型有五大......
  • “了解MySQL中的enum枚举数据类型“
    目录#开篇1.创建包含枚举类型的表2.插入枚举类型的数据3.查询包含枚举类型的表4.更新枚举类型的数据5.使用枚举类型的好处注意事项示例总结附加#开篇        在数据库中,枚举(ENUM)是一种数据类型,用于存储一组预定义的值。这在某些情况下非常有用,例如......
  • 【JavaScript脚本宇宙】打造完美用户体验:必备JS图形库指南
    探索顶尖JavaScript图形库:从jsPlumb到mxGraph前言在现代的Web开发中,交互式图形和数据可视化库成为了不可或缺的工具。这些库不仅提供了丰富的功能,还大大简化了开发人员的工作流程。本文将介绍和比较六个流行的JavaScript图形和数据可视化库:jsPlumb、GoJS、draw2d、Cytosca......
  • 对前端js高级面向对象的理解? 如何理解前端js中的内置对象、 对象原型、原型链?
    对象前言对象是一个包含相关数据和方法的集合(通常由一些变量和函数组成,我们称之为对象里面的属性和方法)对象是javascript中的一个重要的概念,甚至有“JavaScript中万物皆是对象”的说法。首先看面向对象 面向对象编程将一个系统抽象为许多对象的集合,每一个对象代表了这个系......
  • Vite 打包如何允许存在commonjs
    首先安装依赖:npminstall@rollup/plugin-commonjs如图所示,添加plugin插件 示例代码:import{resolve}from'path';import{defineConfig}from'vite';importvuefrom'@vitejs/plugin-vue';importvueJsxfrom'@vitejs/plugin-vue-jsx&......
  • 033基于SSM+Jsp的多用户博客个人网站
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示管理员登录管理员功能界面博文类型管理界面管理员管理我的收藏留言板管理客服聊天管理学生功......
  • 032基于SSM+Jsp的多人命题系统
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示管理员登录学生管理教师信息命题信息系统管理教师注册教师前台个人中心公告信息试题信息......
  • AI数据分析011:Excel表格智能判断数据起点来计算增长率
    文章目录一、介绍二、输入内容三、输出内容一、介绍计算Excel表格中2023年1月到2024年4月的总增长率和复合增长率。如果数据都有的情况下,公式很简单:总增长率=(O2-B2)/B2复合增长率=POWER((O2/B2),1/13)-1但是,2023年1月、2月、3月的数据,有些有,有些没有,是0......
  • 基于JSP和MySQL的小说阅读网站系统
    开头语:你好,我是计算机专业的猫哥,如果你对小说阅读网站感兴趣,欢迎联系我。开发语言:JSP数据库:MySQL技术:JSP+Java工具:MySql数据库,Java开发工具系统展示首页管理员功能模块读者后台功能模块作者后台功能模块摘要随着网络的发展,小说阅读行业迅速壮大,小说阅读网......
  • 基于JSP的体育竞赛成绩管理系统
    开头语:你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。开发语言:JSP数据库:MySQL技术:JSP+Java工具:MyEclipse,Tomcat,MySQL系统展示首页管理员功能模块运动员功能模块裁判员功能模块摘要体育竞赛成绩管理系统的开发旨在适应网络市场的发......