JS中如何判断一个值是否为Null

Posted 世界第一好人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中如何判断一个值是否为Null相关的知识,希望对你有一定的参考价值。

前言

在鉴别javascript原始类型的时候我们会用到typeof操作符。Typeof操作符可用于字符串、数字、布尔和未定义类型。但是你运行typeof null时,结果是“object”(在逻辑上,你可以认为null是一个空的对象指针,所以结果为“object”)。

 

 如何判断null

假如我们需要判断temp这个变量是否为null

1.直接等号比较

temp === null

需要为三等而不是双等原因如下:

①"=="会进行强制转换,比如:

        100 == "100"  ==>  100 == 100  // true

        "abc" == true  ==>  NaN == 1  // false

②"==="则先进行判断是否为同一类型

  "==" 只判断等号两边的值是否相等,而不判断类型是否相同。值相同则返回 true

  "===" 既要判断值是否相等,也要判断类型是否相同,即全等才能返回 true

 如果涉及到对象:

 当仅有一侧为引用类型时

 2.利用逻辑表达式

if(!tmp && typeof(tmp) != "undefined" && tmp != 0)

        alert("null");

 

怎么判断数组是null还是空??数组空是指数组中没有元素??数组null是数组中元素都是0??

数组为null:是创建了数组的引用,但在堆中并没有数组中的元素

例:
int[] array1 = null;
array1是数组类型的空引用,栈中名为array1的内存空间没有存放任何地址。
数组为空:数组是空其实就是数组的长度为0,数组是真正的对象,只是对象中没有元素,也就是说里面没有内容
例:
int[] array = ;
此时创建了数组,数组的长度为0,是一个空数组,但是array不是null,它也是一个对象,只不过它的元素个数为0。
判断数组为空,使用array.length0可以。
但arraynull不可以,这种会报错,Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: -1
直接使用变量名==null
例:
String[ ] arr = null;
if(arr == null)…
参考技术A (1)对于byte 、short 、int 、long、double类型的初始值默认是0;
float默认是0.0,
String默认是null。
(2)是的. 而“ ”本身是一个实例,有自己的对象空间,注意:此时虚拟机已经给它分配了内存,只不过是值为0而已。
(3)不是的. null用来表示一个引用没有实例存在,即虚拟机没有给它分配内存.本回答被提问者采纳

以上是关于JS中如何判断一个值是否为Null的主要内容,如果未能解决你的问题,请参考以下文章

js 怎么判断一个值是不是是数组

JS 判断某变量是不是为某数组中的一个值 的几种方法

JS如何判断一个数组是不是为空、是不是含有某个值

JS简单的判断一个数组里值是不是相等

freemarker中判断对象是不是为空

js里如何判断两个文本框的值是不是一样?