js中null和undefined的区别
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
总结
null本质是一个表示"无值"的对象,算是一个特殊值。
undefined是一个表示"还没有定义"的原始类型。
相关文章:
js中null和undefined的区别
js中null和undefined的区别?这也是一个常见的js面试题 相同点 1,都是基本类型。 2,做判断值都是false。 !!null false // true !!undefined false // true不同点 1,诞生时间null在前,undefined在后。因为js作者Brendan-Eic…...
【Linux】linux中的c++怎么调试?gdb的介绍和使用。
背景1.1.前提知识程序的发布方式有两种,debug模式和release模式Linux gcc/g出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项windows上的调试方法有区别吗?1.调试思路是一样的2…...
提升Python代码性能的六个技巧
文章目录前言为什么要写本文?1、代码性能检测1.1、使用 timeit 库1.2、使用 memory_profiler 库1.3、使用 line_profiler 库2、使用内置函数和库3、使用内插字符串 f-string4、使用列表推导式5、使用 lru_cache 装饰器缓存数据6、针对循环结构的优化7、选择合适算法…...
VI的常用命令
VI的常用命令 文章目录VI的常用命令vi/vim是什么?VI普通模式命令VI编辑模式命令VI指令模式vi/vim是什么? VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器 VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的将字体颜色辨别语法…...
【数据结构】万字深入浅出讲解单链表(附原码 | 超详解)
🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:C语言实现数据结构 💬总结:希望你看完…...
无线WiFi安全渗透与攻防(五)之aircrack-ng破解WEP加密
系列文章 无线WiFi安全渗透与攻防(一)之无线安全环境搭建 无线WiFi安全渗透与攻防(二)之打造专属字典 无线WiFi安全渗透与攻防(三)之Windows扫描wifi和破解WiFi密码 无线WiFi安全渗透与攻防(四)之kismet的使用 aircrack-ng破解WEP加密 1.WEP介绍 其实我们平常在使用wifi的时…...
MySQL中事务的相关问题
事务 一、事务的概述: 1、事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit…...
推荐算法再次踩坑记录
去年搞通了EasyRec这个玩意,没想到今年还要用推荐方面的东西,行吧,再来一次,再次踩坑试试。1、EasyRec训练测试数据下载:git clone后,进入EasyRec,然后执行:bash scripts/init.sh 将…...
STM32 (十五)MPU6050
简介前言一、MPU6050简介MPU6050是一款性价比很高的陀螺仪,可以读取X Y Z 三轴角度,X Y Z 三轴加速度,还有内置的温度传感器,在姿态解析方面应用非常广泛。下面是它在淘宝上的参数图产品尺寸产品参数产品原理图:二、硬…...
使用yarn,依赖报各种错误怎么办
使用 yarn^3.x 版本时,默认并不会安装包到 node_modules,因为 yarn3.x 是即插即用的,也就是说如果你下载过这个包,yarn只会生成一个 Png文件,然后将包的路径 link 到下载过的地方,这样可以省去很多时间。而…...
面试官:rem和vw有什么区别
"rem" 和 "vw"的区别 "rem" 和 "vw" 都是用于网页设计的CSS单位。 "rem" 是相对于根元素的字体大小来计算的单位,即相对于 "html" 标签的字体大小。例如,如果 "html" 标签的字…...
【GPT-4】GPT-4 相关内容总结
目录 编辑 官网介绍 GPT-4 内容提升总结 GPT-4 简短版总结 GPT-4 基础能力 GPT-4 图像处理 GPT-4 技术报告 训练过程 局限性 GPT-4 风险和应对措施 开源项目:OpenAI Evals 申请 GPT-4 API API的介绍以及获取 官网介绍 官网:GPT-4 API候…...
5.springcloud微服务架构搭建 之 《springboot集成Hystrix》
1.springcloud微服务架构搭建 之 《springboot自动装配Redis》 2.springcloud微服务架构搭建 之 《springboot集成nacos注册中心》 3.springcloud微服务架构搭建 之 《springboot自动装配ribbon》 4.springcloud微服务架构搭建 之 《springboot集成openFeign》 目录 1.项目…...
【工作中问题解决实践 七】SpringBoot集成Jackson进行对象序列化和反序列化
去年10月份以来由于公司和家里的事情太多,所以一直没有学习,最近缓过来了,学习的脚步不能停滞啊。回归正题,其实前年在学习springMvc的时候也学习过Jackson【Spring MVC学习笔记 五】SpringMVC框架整合Jackson工具,但是…...
香港服务器遭受DDoS攻击后如何恢复运行?
您是否发现流量异常上升?您的网站突然崩溃了吗?当您注意到这些迹象时,可能是在陷入了DDoS攻击的困境,因而,当开始考虑使用香港服务器时,也应该考虑香港服务器设备受DDoS攻击时,如何从中恢复。 在 DDoS 攻击香港…...
【Hive】配置
目录 Hive参数配置方式 参数的配置方式 1. 文件配置 2. 命令行参数配置 3. 参数声明配置 配置源数据库 配置元数据到MySQL 查看MySQL中的元数据 Hive服务部署 hiveserver2服务 介绍 部署 启动 远程连接 1. 使用命令行客户端beeline进行远程访问 metastore服务 …...
IP-GUARD如何强制管控电脑设置开机密码要符合密码复杂度?
如何强制管控电脑设置开机密码要符合密码复杂度? 7 可以在控制台-【策略】-【定制配置】,添加一条配置,开启系统密码复杂度检测。 类别:自定义 关键字:bp_password_complexity 内容:1 效果图:...
剑指 Offer II 031. 最近最少使用缓存
题目链接 剑指 Offer II 031. 最近最少使用缓存 mid 题目描述 运用所掌握的数据结构,设计和实现一个 LRU(Least Recently Used,最近最少使用) 缓存机制 。 实现 LRUCache类: LRUCache(int capacity)以正整数作为容量 capacity初始化 LRU缓…...
44岁了,我从没想过在CSDN创作2年,会有这么大收获
1998年上的大学,02年毕业,就算从工作算起,我也有20余年的码龄生涯了。 但正式开启博文的写作,却是2021年开始的,差不多也就写了2年的博客,今天我来说说我在CSDN的感受和收获。 我是真的没想到,…...
相位相参信号源的设计--示波器上的信号不稳定,来回跑?
目录乱跑的波形边沿触发触发方式外部触发相参与非相参相位相参的射频信号源样机外观与内部设计软件设计上位机软件信号源使用方法PWM触发信号射频信号的时域波形射频信号的频谱输出功率在示波器的实际使用当中波形在示波器的时域上乱跑,左右移动,定不下来…...
个人收款新选择:主流免签支付平台深度评测与避坑指南
1. 个人收款困境与免签支付崛起 做个人站长最头疼的问题是什么?十有八九会提到收款难。我做了5年独立博客,早期靠爱发电,后来想接点广告、卖点电子书,结果发现微信支付和支付宝压根不向个人开放支付接口。去年我的Python教程被疯传…...
基于MCP协议构建AI Agent与Atlassian生态的智能集成实践
1. 项目概述与核心价值最近在折腾AI Agent的生态,特别是如何让它们更好地融入我们日常的开发与项目管理流程。一个绕不开的话题就是MCP(Model Context Protocol),它本质上为AI模型提供了一个标准化的方式来发现、调用和使用外部工…...
彻底告别桌面混乱:NoFences桌面分区工具终极解决方案
彻底告别桌面混乱:NoFences桌面分区工具终极解决方案 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为Windows桌面上杂乱无章的图标而烦恼吗?每天…...
实战指南:深度解析markmap思维导图转换架构与多格式输出优化
实战指南:深度解析markmap思维导图转换架构与多格式输出优化 【免费下载链接】markmap Build mindmaps with plain text 项目地址: https://gitcode.com/gh_mirrors/ma/markmap markmap是一个强大的开源工具,能够将结构化的Markdown文本转换为交互…...
从零构建C语言静态库:工程实践与避坑指南
1. 项目概述:为什么我们需要亲手打造一个静态库?在C语言的开发世界里,尤其是当你从编写单个文件的小程序,过渡到管理一个包含数十上百个源文件的中大型项目时,一个绕不开的话题就是代码的组织与复用。你可能有过这样的…...
基于Vite与原生JS构建现代化个人站点导航器
1. 项目概述:一个现代站点导航器的诞生最近在整理自己的浏览器书签和常用工具链接时,我又一次陷入了混乱。收藏夹里塞满了各种项目文档、在线工具、技术博客和设计资源,每次想找一个特定的网站,都得在层层文件夹里翻找半天。这让我…...
RT-Thread实战:AB32VG1驱动I2C OLED屏实现上电自启动
1. 项目概述与核心思路最近在折腾中科蓝讯的AB32VG1开发板,想用它来驱动一块I2C接口的OLED屏幕。在网上搜了一圈,发现大部分教程都停留在“官方例程”的层面——也就是在RT-Thread的msh(类似shell的命令行)里输入指令来测试驱动。…...
Nacos生产级集群部署实战:从架构设计到高可用验证
1. 项目概述:为什么Nacos集群部署是微服务架构的“定海神针” 在微服务架构的实践中,服务注册与发现、配置管理是两块基石。Nacos作为Spring Cloud Alibaba生态的核心组件,集这两大功能于一身,其重要性不言而喻。当你的业务从单机…...
告别卡顿!在Windows上用VirtualBox+Ubuntu 20.04搭建涂鸦Wi-Fi SoC开发环境(保姆级避坑指南)
告别卡顿!在Windows上用VirtualBoxUbuntu 20.04搭建涂鸦Wi-Fi SoC开发环境(保姆级避坑指南) 嵌入式开发环境搭建往往是工程师面临的第一个挑战。当你在Windows系统上尝试运行Linux虚拟机进行涂鸦Wi-Fi SoC开发时,可能会遇到各种性…...
IR 召回评测基准(英文数据集)——MS MARCO 实战指南
1. MS MARCO数据集全景解读 第一次接触MS MARCO时,我和大多数开发者一样困惑:这个号称"信息检索领域ImageNet"的数据集到底强在哪里?经过三个实际项目的验证,我发现它的价值在于完美复现了真实搜索场景的复杂性。想象你…...
