undefined与null有何本质区别?

2026-05-17 05:241阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计809个文字,预计阅读时间需要4分钟。

undefined与null的使用方法和区别,你还记得吗?

一、undefined的基本使用

1.在JavaScript中,undefined表示变量未定义,只有单一的字面值undefined,返回类型也是undefined。

- 变量未定义:`let a; console.log(a); // undefined` - 函数返回值未定义:`function test() { return; } console.log(test()); // undefined`

2. 出现undefined的四种情况 - 变量未定义:如上例。 - 函数未定义:`console.log(b); // undefined` - 函数参数未传值:`function test(a) { console.log(a); } test(); // undefined` - 函数默认参数:`function test(a=1) { console.log(a); } test(); // 1`(这里a被默认值1替代)

undefined和null的使用方法和不同你还记得吗 一、undefined的基本使用

1.在 JavaScript 中, undefined表示变量不存在,只有唯一字面值undefined,返回类型也是undefined

2.出现undefined的四种情况:

  • 使用只声明而未初始化的变量时;

    let a; console.log(a); //返回undefined

  • 获取一个对象的某个不存在的属性(自身属性和原型链继承属性)时;

    const Obj={name:"kangakng"}; console.log(Obj.age); //返回undefined

  • 函数没有明确的返回值时,却在其他地方使用了返回值;

    function foo(){}; console.log(foo()); //返回undefined

  • 函数定义时使用了多个形参,而在调用时传递的参数的数量少于形参的数量,没有匹配到的参数就返回undefined

    function foo(num1,num2,num3){console.log(num1)}; console.log(foo(num2,num3)) //返回undefined

二.null的基本使用

1.在 JavaScript 中, null表示变量不存在,只有唯一字面值Null,表示空指针对象,返回类型是 Object。

2.出现null的三种情况:

  • 一般情况下,如果声明的变量是为了以后保存某个值,则应该在声明时就将其赋值为“null”;

    let fnum = null; let snum = 22; fnum = snum; //fnum返回22

  • JavaScript在获取DOM元素时,如果没有获取到指定的元素对象,就会返回“null”;

    document.getElementById("#id"); //返回null

  • 在使用正则表达式进行捕获时,如果没有捕获结果,就会返回“null”。

    ‘text’.match(/a/); //返回null

三、Undefined和Null两种类型的区别

1.相同点

  • Undefined和Null两种数据类型都只有一个字面值,分别是undefined和null;
  • Undefined类型和Null类型在转换为Boolean类型的值时,都会转换为false。所以通过非运算符(!)获取结果为true的变量时,无法判断其值为undefined还是null;
  • 在需要将两者转换成对象时,都会抛出一个TypeError的异常,也就是平时最常见的引用异常;
  • Undefined类型派生自Null类型,所以在非严格相等的情况下,两者是相等的,即他们的值是相等的。

2.不同点

  • null是JavaScript中的关键字,而undefined是JavaScript中的一个全局变量,即挂载在window对象上的一个变量,并不是关键字;
  • 在通过call调用toString()函数时,Undefined类型的值会返回“[objectUndefined]”,而Null类型的值会返回“[object Null]”,即返回类型不同;
  • 在需要进行字符串类型的转换时,null会转换为字符串"null",而undefined会转换为字符串"undefined";
  • 在需要进行数值类型的转换时,undefined会转换为NaN,无法参与计算;null会转换为0,可以参与计算;
  • 无论在什么情况下都没有必要将一个变量显式设置为undefined。

本文共计809个文字,预计阅读时间需要4分钟。

undefined与null的使用方法和区别,你还记得吗?

一、undefined的基本使用

1.在JavaScript中,undefined表示变量未定义,只有单一的字面值undefined,返回类型也是undefined。

- 变量未定义:`let a; console.log(a); // undefined` - 函数返回值未定义:`function test() { return; } console.log(test()); // undefined`

2. 出现undefined的四种情况 - 变量未定义:如上例。 - 函数未定义:`console.log(b); // undefined` - 函数参数未传值:`function test(a) { console.log(a); } test(); // undefined` - 函数默认参数:`function test(a=1) { console.log(a); } test(); // 1`(这里a被默认值1替代)

undefined和null的使用方法和不同你还记得吗 一、undefined的基本使用

1.在 JavaScript 中, undefined表示变量不存在,只有唯一字面值undefined,返回类型也是undefined

2.出现undefined的四种情况:

  • 使用只声明而未初始化的变量时;

    let a; console.log(a); //返回undefined

  • 获取一个对象的某个不存在的属性(自身属性和原型链继承属性)时;

    const Obj={name:"kangakng"}; console.log(Obj.age); //返回undefined

  • 函数没有明确的返回值时,却在其他地方使用了返回值;

    function foo(){}; console.log(foo()); //返回undefined

  • 函数定义时使用了多个形参,而在调用时传递的参数的数量少于形参的数量,没有匹配到的参数就返回undefined

    function foo(num1,num2,num3){console.log(num1)}; console.log(foo(num2,num3)) //返回undefined

二.null的基本使用

1.在 JavaScript 中, null表示变量不存在,只有唯一字面值Null,表示空指针对象,返回类型是 Object。

2.出现null的三种情况:

  • 一般情况下,如果声明的变量是为了以后保存某个值,则应该在声明时就将其赋值为“null”;

    let fnum = null; let snum = 22; fnum = snum; //fnum返回22

  • JavaScript在获取DOM元素时,如果没有获取到指定的元素对象,就会返回“null”;

    document.getElementById("#id"); //返回null

  • 在使用正则表达式进行捕获时,如果没有捕获结果,就会返回“null”。

    ‘text’.match(/a/); //返回null

三、Undefined和Null两种类型的区别

1.相同点

  • Undefined和Null两种数据类型都只有一个字面值,分别是undefined和null;
  • Undefined类型和Null类型在转换为Boolean类型的值时,都会转换为false。所以通过非运算符(!)获取结果为true的变量时,无法判断其值为undefined还是null;
  • 在需要将两者转换成对象时,都会抛出一个TypeError的异常,也就是平时最常见的引用异常;
  • Undefined类型派生自Null类型,所以在非严格相等的情况下,两者是相等的,即他们的值是相等的。

2.不同点

  • null是JavaScript中的关键字,而undefined是JavaScript中的一个全局变量,即挂载在window对象上的一个变量,并不是关键字;
  • 在通过call调用toString()函数时,Undefined类型的值会返回“[objectUndefined]”,而Null类型的值会返回“[object Null]”,即返回类型不同;
  • 在需要进行字符串类型的转换时,null会转换为字符串"null",而undefined会转换为字符串"undefined";
  • 在需要进行数值类型的转换时,undefined会转换为NaN,无法参与计算;null会转换为0,可以参与计算;
  • 无论在什么情况下都没有必要将一个变量显式设置为undefined。