您当前的位置: 首页 > 

暂无认证

  • 1浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

null和undefined的区别是什么?

发布时间:2021-04-10 23:55:21 ,浏览量:1

目录
  • 1、null
    • 1.1、用来初始化一个变量,这个变量可能赋值为一个对象。
    • 1.2、用来和一个已经初始化的变量比较,这个变量可以是对象,也可以不是对象。
    • 1.3、当函数的参数期望是对象时,用作参数的传入。
    • 1.4、当函数的返回值期望是对象时,用作返回值传出。
  • 2、undefined
    • 2.1、声明一个变量,但是没有赋值。
    • 2.2、访问对象上不存在的属性或者未定义的变量。
    • 2.3、函数定义了形参,但没有传递实参。
    • 2.4、使用void对表达式求值。
  • 3、总结
1、null 1.1、用来初始化一个变量,这个变量可能赋值为一个对象。
var a = null; console.log(a); // null let b = { a: null }; console.log(b); // {a: null} const c = [null]; console.log(c); // [null] 
1.2、用来和一个已经初始化的变量比较,这个变量可以是对象,也可以不是对象。
var a = 10; console.log(a == null); // false var b = null; console.log(b == null); // false var c = {}; console.log(c == null); // false var d = []; console.log(d == null); // false 
1.3、当函数的参数期望是对象时,用作参数的传入。
function fn(a) { console.log(a); // null console.log(typeof a); // object }; fn(null); 
1.4、当函数的返回值期望是对象时,用作返回值传出。
function fn(a) { console.log(a); // 1 return null; }; console.log(fn(1)); // null console.log(typeof fn(1)); // object 
2、undefined 2.1、声明一个变量,但是没有赋值。
var vlcs; console.log(vlcs); // undefined 
2.2、访问对象上不存在的属性或者未定义的变量。
console.log(Object.foo); // undefined console.log(typeof demo); // undefined 
2.3、函数定义了形参,但没有传递实参。
// 定义形参 a function fn(a) { console.log(a); // undefined }; //未传递实参 fn(); 
2.4、使用void对表达式求值。
void 0; // undefined void false; // undefined void []; // undefined void null; // undefined void function fn() {}; // undefined 
3、总结

3.1、undefined表示一个变量最原始的自然状态值。 3.2、null表示一个变量被人为的设置为空对象, 而不是原始状态。 3.3、在实际使用过程中,为了保证变量所代表的语义,不要对一个变量赋值为undefined,当需要释放一个对象时,直接赋值为null即可。

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3601s