HoneyMoose
  • 首页
  • Java
  • Jersey
  • Jira
  • Confluence
  • U.S.
    • USRealEstate
    • U.S. Travel
    • H1B
  • 项目和网站
    • CWIKI.US
    • OSSEZ 社区
    • WIKI.OSSEZ.COM
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
BLOG.OSSEZ.COM
A responsive blog theme focused om user reading experience
  1. Home
  2. Computer Science
  3. This article

JavaScript 的 null 和 undefined 判断

2021年09月11日 437Browse 0Like 0Comments

null 和 undefined 在 JavaScript 是最常见的空问题。

null 和 undefined 的定义

JavaScript 的最初版本是这样区分的:

  • null是一个表示"无"的对象,转为数值时为 0;
  • undefined是一个表示"无"的原始值,转为数值时为NaN。

下图对上面的 2 个概念进行了对比:

0_Rme3K8rdqcOHugd5

为什么会出现这个问题

这个和 JavaScript 的语言特性有关。

在最开始的时候,JavaScript 通常会被定义为是一个解释型语言。这个语言的特点是不需要编译,直接解释使用。

同时 JavaScript 为了增强语言的灵活性,又被设计为弱类型语言。

换句话说,在上面的定义的 null 的时候,是可以直接对应整数类型的,这个就对代码在执行的时候带来很多困惑。

针对编译类型和强类型语言来说,这个就非常头疼。

比如说在 Java 中,如果你需要使用一个字符串 string 之前,你必须要先定义这个字符串,你可以给字符串赋 null ,或者初始化一些字符,但是你必须要定义。

否则在后面引用的时候就会报错,JavaScript 就不需要这样,直接用就行,这个时候,如果你压根就没有定义一个变量,然后就直接用,那么就会出现 undefined 的错误。

在强类型语言中,如果你定义变量为字符串,那么你就只能往这个变量里面存字符串,如果你存其他类型的话,编译器会报错。JavaScript 会尝试自动给你类型转换,这个就带来不少困惑的问题,比如说在变量中存的 1 ,这个可能是整数 1 ,也可能是布尔类型。

如何判断

可以使用 _.isNil() 函数来进行判断。

检查 value 是否是 null 或者 undefined。

需要注意的是,如果你的输入值是 '' 的话,这个函数是没有办法判断的。

 

https://www.ossez.com/t/javascript-null-undefined/13693

Tags: None
Last updated:2021年09月11日

Kratos

stay absorbed stay excellent

Like
< Previous
Next >

Comments

Cancel reply

Newest Hotspots Random
Newest Hotspots Random
Java 中使用 public,private 和 protected 修饰的方法 IntelliJ IDEA 打开近期工作的项目的对话框的快捷键 民族融合的湘南典范芬香村 - 振兴绿色乡村 Java System.lineSeparator 方法 民族融合的湘南典范芬香村 - 故事与民谣 民族融合的湘南典范芬香村 - 民俗风情之崇文重教
JAVA程序员写的接口没有PHP程序员体验好Java 虚拟机的概念是怎么来的Protocol buffers 的问题和滥用Discourse 自定义头部链接(Custom Header Links)GRPC MacOS M1 处理器的问题靠山面水的诗意适居 —— 传统村落水口山镇大皮口村
Java 9 中的字符串(String)压缩的改进 Git 如何从特定的提交中创建一个新的分支 美国买房不喜欢和我合作的 Agent 怎么办 Confluence 6 预览一个文件 美国有一半人持枪,为什么没人敢用 2021fall去美国读研是否可能
Categories
  • Akka
  • Algorithm(算法)
  • AMQP
  • Angular
  • CI
  • Compile And CI
  • Computer Science
  • Confluence
  • DataBase
  • Gradle
  • H1B
  • Hibernate
  • IDE
  • Java
  • Jersey
  • Jira
  • MariaDB
  • PrestaShop
  • Spring
  • Spring Batch
  • U.S.
  • U.S. Travel
  • USRealEstate
  • 我的小厨

COPYRIGHT © 2020 HoneyMoose. ALL RIGHTS RESERVED.

THEME CWIKIUS.CN MADE BY VTROIS