首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当所定义的变量在内存中有0或1转储时,null如何表示“没有值”?

当所定义的变量在内存中有0或1转储时,null如何表示“没有值”?
EN

Stack Overflow用户
提问于 2018-09-19 04:42:35
回答 2查看 112关注 0票数 4

为了理解JavaScript中nullundefined之间的区别,我偶然发现了this answer中提到的

null是一个分配值。它可以赋值给一个变量,作为没有值的表示形式

问题是,一旦你像这样定义了一个变量:

代码语言:javascript
复制
var someVariable = null;

someVariable不是在内存中的某个位置定义的吗?那么它不应该已经有随机的0和1了吗,除非另外指定了特定的值?在比特级别上,null代表什么?这是否意味着0或1的位数为空?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-19 05:43:10

您似乎被这样的回答搞糊涂了:"null不是一个值“,或者它意味着”一个没有值的变量“。这是错误的,这不是它所说的。

null值很大程度上是JS语言领域中的一个值。它是一个原始值,就像undefinedtrueNaN042一样。

您引用的答案表明,此值可以表示应用程序域中的“无值”。将值null放在那里意味着它没有其他值,例如“既不是真也不是假”。

(无论我们查看的是哪个JS值,我们都不关心它在内存中的位级表示,比如哪一位确切地区分了字符串和整数。它们只是我们可以在我们的程序中使用的值,没有其他的。

在创建作用域时,始终使用undefined值初始化var变量。)

票数 3
EN

Stack Overflow用户

发布于 2018-09-19 05:33:46

首先,在JS中编程时,当您声明一个变量时,您永远不应该担心内存中到底保存了什么。

至于为什么JS在nullundefined中有两个"nothing“值-这是一个非常好的问题,可能只是语言的一个怪癖。undefined是“无值”的最佳表示,因为它是声明的变量在被赋予另一个值之前将保留的值,是函数的默认返回值,其中您只需放入return;或省略return语句,以及自动分配给任何函数参数的值,这些参数在函数的签名中,但在调用时没有传入。

例如,MDN突出显示了这种用法:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null#Description

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52394327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档