首页 > 其他分享 >js中null和undefined的区别

js中null和undefined的区别

时间:2023-03-18 15:31:47浏览次数:42  
标签:undefined Number js var null 233

js中null和undefined的区别?这也是一个常见的js面试题

相同点

1,都是基本类型。 2,做判断值都是false。

!!null === false // true
!!undefined === false // true

不同点

1,诞生时间null在前,undefined在后。因为js作者Brendan-Eich在创造js语言时,直接抄了java很多东西。也包括null,后期发现js中的null有缺陷,又创造了undefined。(《JavaScript高级程序设计》中有说,下面的不同点就包含null缺点)

2,typeof 类型不同

typeof null; // 'object'
typeof undefined; // 'undefined'

3,Number() 转数字也不同

Number(null); // 0
Number(undefined); // NaN     (Not a Number,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。

4,前端开发中出现的时机不同    (1) null 触发null的时机

// 举例

// 获取不存在的dom
document.getElementById("233") // null

// 获取不存在的储存
localStorage.getItem("233") // null
sessionStorage.getItem('233') // null
...

   (2) 触发undefined的时机

// 举例(undefined触发时机太多,简单举例)

// 声明变量未使用
var test1; // undefined

// 声明变量未使用
var test1; // undefined

// 对象中找不到该属性
var obj ={};
obj.a;  // undefined
...

5,函数参数有默认值时,当参数使用时默认参数 生效 效果不同。

function demo(data = '233'){
   console.log('_______'+data);
};
demo(null); // _______null
demo(undefined); // _______233

标签:undefined,Number,js,var,null,233
From: https://blog.51cto.com/u_15650730/6129679

相关文章

  • js中的this
    js中的this是一个指针型变量,它动态指向当前函数的运行环境,它固定不变的,而是根据调用的上下文(执行时环境)改变而改变;不同使用条件下this的指向在全局执行环境中(在任何......
  • java 加密和json格式化代码 、http url提交
      CloseableHttpClientclient=HttpClients.createDefault();CloseableHttpResponseres=null;JsonObjectjson=null;......
  • 记一个在线工具网站,程序员必备,json格式化、压缩、转义,加解密 编码解码
    ToForU为你|在线工具箱|在线json格式化|在线json压缩|在线json转义|工具大全提供json格式化,json代码压缩,json校验解析,json数组解析,json转xml,xml转json,json解析,jso......
  • JS对象赋值会影响原对象解决办法
    JS常见坑:对象赋值会影响原对象现象:直接用=的方式把一个对象赋值给另一个对象,会导致修改新对象时,原对象也发生变化varobj1={'name':'1111'};varobj2=obj1;obj2......
  • jvm jstat -gcutil 参数详解
    jstat-gcutil854410008544进程ID,用jps命令查出1000单位毫秒,每秒读取一次S0survivor0使用百分比S1survivor1使用百分比EEden区使用百分比O老年代使用百分比M......
  • 【开发环境】IntelliJ IDEA 中的 Gradle 工程处理 JSON 字符串
    文章目录​​一、创建Gradle工程​​​​二、导入org.json:json依赖​​​​三、处理JSON字符串​​一、创建Gradle工程在IntelliJIDEA中,选择"菜单栏|Fi......
  • Eggjs 学习笔记 02
    Service层如果把Controller层看作是与客户端交互并接收请求数据然后返回数据的作用,那么Service层则是处理数据、查询数据(包括数据库的查询,第三方服务的调用)、或者......
  • JSON详解转载
    JSON详解阅读目录JSON的两种结构认识JSON字符串在JS中如何使用JSON在.NET中如何使用JSON总结JSON的全称是”JavaScriptObjectNotation”,意思是JavaScript对象表示......
  • AES 简介 以及 C# 和 js 实现【加密知多少系列】
    〇、AES简介AES的全称是AdvancedEncryptionStandard,意思是高级加密标准。它的出现主要是为了取代DES(DataEncryptionStandardDataEncryptionStandard)加密算法的,......
  • json-diff详细设计
    一、简介json-diff是一款强大的,由java编写的json差异发现工具。他可以发现任何结构的json差异,并且将差异信息反馈给用户。gitee:https://gitee.com/codeleep/json-diff......