专栏首页JAVA人生/面试技巧typeof运算对于null会返回“Object"

typeof运算对于null会返回“Object"

您也许会问,为什么 typeof 运算符对于 null 值会返回 "Object"。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。

对变量或值调用 typeof 运算符将返回下列值之一:

  • undefined - 如果变量是 Undefined 类型的
  • boolean - 如果变量是 Boolean 类型的
  • number - 如果变量是 Number 类型的
  • string - 如果变量是 String 类型的
  • object - 如果变量是一种引用类型或 Null 类型的

这里需要注意的是:alert(typeof null); //输出的是object 。null被认为是对象的占位符,但仍然算做原始数据类型

另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

alert(null == undefined); //输出 "true"

尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

2.Null类型 Null类型(空型)只有一个值就是:null。 <script type="text/javascript">

undefined实际上是从值null派生来的,所以显示true undefined是声明了变量但是未赋值,null是找不到对象。

alert(null == undefined); //显示true </script>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Mysql常用函数

    https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

    阮键
  • Springboot前后端分离开发

    .1.springboot前后端分离开发之前要配置好很多东西,这周会详细补充博客内容和遇到的问题的解析

    阮键
  • Tomcat热部署

    如果找不到Tomcat Service或者配置出错,说明没有下载tomcat,可以直接去toncat官网下载以及配置环境变量(没出错继续看下图)

    阮键
  • js中数据类型的相关问题

    李才哥
  • [ Java学习基础 ] 浅析Java方法调用

    分析:首先应该明白的是此处是针对类对方法的调用,而不是对象对方法的调用; 其次,testMethod方法是 statici静态方法,直接使用"类方法"即可,因为...

    Kevin_Zhang
  • JavaScript技术篇 - js的null值判断,js的undefined的判断,js的null与undefined的2种区分方法

    undefined 和 null 用 == 比较是相等的,我们可以有两种方法来进行区分。

    小蓝枣
  • 如何在Java代码中去掉烦人的“!=null”

    最终,项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?

    java思维导图
  • 干掉 " !=null"

    最终,项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?

    搜云库技术团队
  • TypeScript手记(六)

    TypeScript 里,在有些没有明确指出类型的地方,类型推断会帮助提供类型。如下面的例子:

    用户7572539
  • 为什么不建议你用去 “! = null” 做判空?

    这是初、中级程序猿经常会遇到的问题。他们总喜欢在方法中返回null,因此,在调用这些方法时,也不得不去判空。另外,也许受此习惯影响,他们总潜意识地认为,所有的返...

    搜云库技术团队

扫码关注云+社区

领取腾讯云代金券