JavaScript null VS undefined

DexProtector内存校验绕过与DEX提取实战 DEX文件是Android应用的核心执行单元,其动态加载与运行时保护机制直接关系到App安全强度。DexProtector作为主流商业加固方案,摒弃传统文件级防护,转而依托ART虚拟机下的匿名内存映射段(anonymous mmap)构建多维校验体系——涵盖字节码完整性校验、内存页属性检测及运行时环境感知。其技术价值在于将防护锚点从静态APK迁移至动态内存态,大幅提升逆向门槛。典型应用场景包括金融类App的防篡改加固、游戏客户端的反外挂保护,以及政企应用的合规性安全增强。本文聚焦DexProtector v 阅读详情

对于null和undefined,普遍的我们知道这两者都是假值,在使用判断语句或者转为boolean类型时都会变为false,而实际上两者是有着明显区别的。

(JavaScript中的假值有0,false,undefined,null,"",NaN)

1.类型上的差异

在JavaScript中有七种数据类型,null,undefined,Number,String,Boolean,Object,Symbol。而null和undefined明显分属两种不同的类型,我们可以使用类型检测来对这两者的类型进行判断以区分。(类型检测可见JavaScript类型识别总结)

2.转为数值的差异

在JavaScript中,undefined在转为数值时变为NaN,而null会变为0。

new Number(undefined)
// Number {NaN}
new Number(null)
// Number {0}

3.两者出现的情况

从两者的理解来看,null更像是表明某个地方没有值,而undefined表面该处还没有赋值

null出现的情况

1.寻找一个不存在的元素

这个在我们寻找DOM节点时会看见,假如我们找的DOM节点是不存在的,就会返回Null

// 假设当前页面没有id为1的元素
document.getElementById("1")
// null

2.在原型链的末端

一个原型链上的对象是继承关系,但在最末端的位置是没有对象的,此时原型指向的就是null

var obj={}
Object.getPrototypeOf(obj.__proto__)
// null

undefined出现的情况

1.一个值声明后没有赋值

var u
console.log(u)
// undefined

2.没有返回值的方法

function fn(){}
console.log(fn())
// undefined

3.访问对象没有的属性

var obj={}
console.log(obj.a)
// undefined

4.函数中的形参没有传入

function fn(a){
    console.log(a)
}
fn()
// undefined

undefined的"bug"

直到现在的JavaScript中,undefined仍不作为一个关键字使用,更像是作为一个在全局中定义好的全局对象的属性,且这个属性只能读不能改(修改的时候会静默失败),在比较老的流浪器中,甚至可以修改全局中undefined的值。

var undefined=2
console.log(undefined)
// undefined

上面代码中,虽然最后输出的还是undefined,但是在对undefined声明时居然没有报错,显然它不是一个关键字。而如果我们使用let和const来声明undefined

let undefined=2
// Uncaught SyntaxError: Identifier 'undefined' has already been declared
const undefined=2
// Uncaught SyntaxError: Identifier 'undefined' has already been declared

可以看到报错了,但是报错原因是改变量已经被定义了,显然JavaScript将其当成一个变量了。

而如果在函数作用域中,undefined的值可以被修改

(function(){
    var undefined=10;
    console.log(undefined);
})()
// 10
(function(){
    let undefined=10;
    console.log(undefined);
})()
// 10

(function(){
    const undefined=10;
    console.log(undefined);
})()
// 10

以上是对JavaScript中null和undefined的一些理解,后续会继续补充

香橙派5使用RK3588S内置NPU加速yolov5推理,实时识别数字达到50fps 香橙派5采用了RK3588S,内置的NPU达到了6Tops的算力,博主这里记录一下自己的踩坑过程,好不容易做出来的不能以后忘记了(手动狗头)。这里博主还在B站上发布了效果视频,大家感兴趣的话可以看一下。其中解决了先验框标注位置不对,或者出现非常多的框的问题 阅读详情

相关推荐

告别设备管理器混乱!3分钟学会用STM32CubeMX+Zadig定制专属虚拟串口名称

本文详细介绍了如何利用STM32CubeMX和Zadig工具,为STM32的USB虚拟串口(VCP)定制专属设备名称,从而彻底解决多设备连接时设备管理器端口混乱的难题。通过修改产品字符串描述符并替换驱动,开发者可以在设备管理器中清晰识别不同开发板,显著提升调试效率,尤其适用于多设备协同的竞赛或项目开发场景。

a2b3c4d5e的博客 478

const XX=void0

demo()

蓝冰凌的博客 766

鸿蒙5.0进阶开发:UI开发-不依赖UI组件的全局自定义弹出框 (openCustomDialog)(推荐)

本文介绍通过入参形式为ComponentContent创建自定义弹出框............

AyomQAQ的博客 1850

JavaScript:typeof的用法以及undefined和null的区别

typeof的用法以及undefined和null的区别

KaiSarH 1298

L2-011 玩转二叉树

L2-011玩转二叉树(25分) 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。 输出格式: ...

Beworth1207的博客 1734

SPSS实战:5步搞定多指标联合诊断的ROC曲线分析(附Logistic回归教程)

本文详细介绍了如何使用SPSS软件进行多指标联合诊断的ROC曲线分析。通过5个实战步骤,从数据准备、二元Logistic回归建模生成综合预测概率,到绘制并比较单指标与联合模型的ROC曲线,帮助临床研究者有效整合多个诊断指标,提升模型判别能力(AUC),实现诊断效能的优化。

mqtt6iot的博客 1422

JavaScript深入理解之undefined与null

写在前面 JavaScript中有两个特殊的值,undefined与null。平常在写项目时,遇到需要判断一个值是否为空的时候,我总会想到undefined与null。 既然都是代表空值(以前我就是这么认为的),那么它们有没有区别呢?反正我是一直傻傻分不清楚,看了又忘了。最近查阅了一些资料,才发现自己以前真的是误解它们了,知错就改,下面总结一下它们的用法和区别。 基本数据类型 在介绍und...

小帅的博客 1115

华为OD机试 - 计算数列位置N的值 - 模拟法(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。输入 M,N 两个数,则按照以下规则形成一个数列。数列的前 M 个元素的值为 1 到 M从 M+1 个元素开始,计算逻辑为如果其前 M 个元素中,存在值相同的元素,则该位置上的数值等于前 M 个数中最大数值与最小数值之和。如果其前 M 个元素中,

学Java,找哪吒 508

null和undefined:两个JavaScript中的特殊值

在JavaScript中,null和undefined是两个特殊的值。undefined表示一个没有赋值的变量或对象属性,而null则表示一个被明确定义为空的值。通常情况下,undefined应该被视为一个错误或未定义的值,而null则表示一个空值或占位符。在JavaScript中,变量可以被显式地赋值为null或undefined,也可能隐式地变为null或undefined,例如,当一个函数没有返回值时,返回的值就是undefined。

你若盛开,清风自来 1816

3、图像中文字信息提取技术全解析

本文全面解析了图像中文字信息提取(Text Information Extraction,TIE)的技术原理、挑战及应用领域。详细介绍了图像中三种主要文字形式:场景文字、字幕文字和文档文字的特点及提取难点。系统阐述了TIE技术的主要流程步骤,包括文字检测、定位、提取与增强、识别等关键阶段,并对主流技术方法进行了分类比较,包括基于连通组件、边缘、纹理等方法的优缺点分析。文章还介绍了多种其他提取技术,如二值化方法、混合方法、基于梯度的方法等,并提出了一种基于立体帧的新型场景文字提取方法,通过实验验证了该方法在召

ll5678的博客 119

诊断数据库ODX标准协议ISO22901定义组成部分

综上所述,简略描述了ODX数据库中UML/XML/Text/Check rules具体功能以及详细内容。

Soly_kun的博客 907

null和undefined的区别

null 和 undefined 是 JavaScript 中的两个基础类型特殊值。它们都表示“空”,但是有一些区别。

天问博客-专注于大前端技术 806

实现基于 Python 和 xterm.js 的 Web 交互终端demo

前端 (HTML):使用 xterm.js 作为前端终端模拟器库。创建了一个 WebSocket 连接到 ws://localhost:8765,这与后端服务器的地址和端口匹配。监听 WebSocket 消息,并将数据写入终端。同时监听用户输入并发送到服务器。后端 (Python):使用 websockets 库来创建 WebSocket 服务器,监听端口 8765。使用 paramiko 库来创建 SSH 客户端并连接到指定的远程服务器。

u010674101的专栏 876

Javascript undefined vs null

undefined is the lack of a type and value, and null is the lack of a value. Furthermore, if you'redoing simple '==' comparisons, you're right, they come out the same. But try===, which compares both

那时那刻 638

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

js | undefined vs null vs void 0

参考链接:js中==的隐式转换写得很好:https://juejin.cn/post/6844903832560861191比如在chorme中,虽然不允许更改,如下,但ie8什么的,好像就有问题,全局下也允许更改 nodejs中把上面的window,换成global就行了。

YuuuPeeiiiii的博客 1064

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

javascript null vs undefined

The JavaScript keyword null is a special value that indicates no value.null is usually considered a special value of object typea value that represents no object. When a variable holds the value null

wangyinbin的专栏 648

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

js中的null VS undefined

var a;------>undefined. JS变量的默认值.注意点在于判断变量的值为null.这是错误的。比如 if( a === null ) { // TODO; }; 实际上是undefined. var a = null;--->null.   undefined与null的区别   Javascript 中 null、NaN和undefined的区别   ...

weixin_34387468的博客 132

js null vs undefined

[size=medium]null :表示无值或者尚未存在的對象 或者對象類型的變量的初值。obj.getattribute("attrName") 如不存在此屬性返回對象類型的值。 undefined : 表示一个未声明的变量, 或已声明但没有赋值的变量, 或一个并不存在的对象属性, ...

PlayFort的博客 226

JavaScript undefined vs. null (翻译)

 无意中看到一篇老外写的讨论javascript中undefined和null的文章,俺也学人家翻译一回。发现这英文不用也是要生锈的。 英文原文:http://saladwithsteve.com/2008/02/javascript-undefined-vs-null.html JavaScript undefined vs. null  I was reading a mo

flyjimi的专栏 2551

跨时钟域设计入门:亚稳态、同步器与异步FIFO解析

在数字IC设计中,跨时钟域(CDC)处理是确保系统稳定性的关键环节。时钟域之间的信号传输若缺乏正确同步,极易引发亚稳态、数据丢失等功能错误。通过了解同步时钟与异步时钟的本质区别,理解建立时间与保持时间的约束,设计者可以采用双触发器同步器、握手协议、脉冲同步器以及基于格雷码指针的异步FIFO等方案,有效降低亚稳态传播概率并保证多bit数据一致性。这些技术广泛应用于芯片时钟树设计、高速接口通信与低功耗多电源域系统,是现代芯片可靠性的基石。本文系统梳理了CDC的底层原理与工程实践,为数字IC工程师提供实用的设计参

weixin_33912246的博客 305

JS面试:undefined VS null

undefined 原始值的初始值、未定义。对象的初始值,空对象的引用。

weixin_51307892的博客 276

js中undefined VS. 区分JS中的undefined,null,"",0和false

typeof()函数 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined" js中undefined,null,NaN的区别 1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。 未定义的值和

天天好心情 736

JavaScript 进阶(五)易混淆概念null vs undefined, == vs ===, string vs String

先看一段代码 var foo = {} foo.a = null alert(foo.a == null) //true alert(foo.a === undefined) //false alert(foo.b == null) //true alert(foo.b === null) //false 直观上来看,foo.a 是 null, foo.b 是undef

Javaallstar的专栏 1108

JavaScript ---- null VS undefined

共同点: 1, [color=red]null[/color] and [color=red]undefined[/color] both indicate an absence of value. 2. Both are falsy values-----they behave like false when a boolean value is required. 3. Neither ...

greybeard的专栏 102

JS 中的“空”之双雄:null vs undefined

维度undefinednull本质缺少值 (Missing)空值 (Empty)谁给的?JS 引擎程序员何时用?变量未初始化、属性不存在显式清空、初始化对象变量推荐用法尽量让系统自动产生,少手动赋值主动赋值,表示“此处无物”🚀 博主寄语虽然为true,但在代码规范中,建议严格区分它们。最佳实践原则默认值检查:使用??操作符。安全访问:使用?操作符。变量初始化:如果变量将来要存对象,初始化为null;如果只是声明,让它保持undefined。API 设计:后端返回“无数据”时用null。

weixin_64684095的博客 1512

JavaScript null vs undefined 深度对比:5个关键场景下的选择策略与性能影响

本文深入对比JavaScript中`null`与`undefined`的本质区别,分析5个关键场景下的选择策略与性能影响。从函数参数设计、对象属性管理到DOM操作与JSON序列化,揭示两者在语义和实际应用中的差异,帮助开发者编写更高效、可维护的代码。特别针对V8引擎优化提供了实用建议。

weixin_34174322的博客 304
上一篇: JavaScript类型判断总结
下一篇: JavaScript设计模式笔记(一)单例模式
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值