我想知道JavaScript中null和undefined之间的区别。
当前回答
null:缺少变量值;undefined:缺少变量本身;
..,其中变量是与值关联的符号名称。
JS可以用null隐式初始化新声明的变量,但它没有。
其他回答
在javascript中,所有变量都存储为键值对。每个变量存储为variable_name:variable_value/reference。
undefined表示在内存中给了变量一个空间,但没有给它赋值。作为最佳实践,不应将此类型用作赋值。
在这种情况下,如何表示何时希望变量在代码中的稍后时间没有值?您可以使用类型null,这也是一种用于定义相同事物的类型,缺少值,但它与undefined不同,因为在本例中,内存中实际上有值。该值为空
两者相似,但用法和含义不同。
我将解释undefined、null和UncaughtReferenceError:
1-未捕获引用错误:脚本中未声明变量,没有对此变量的引用2-未定义:变量已声明但未初始化3-null:声明的变量为空值
undefined表示变量已声明但尚未赋值:
var测试var;console.log(testVar)//显示未定义console.log(testVar类型)//显示未定义
null是赋值。它可以作为无值表示分配给变量:
var testVar=空;console.log(testVar)//显示nullconsole.log(testVar类型)//显示对象
从前面的示例中可以清楚地看到,undefined和null是两种不同的类型:undefineed是类型本身(undefine),而null是对象。
证明:
console.log(null==未定义)//false(类型不同)console.log(null==undefined)//true(但为“相同值”)console.log(null==null)//true(类型和值相同)
and
null = 'value' // Uncaught SyntaxError: invalid assignment left-hand side
undefined = 'value' // 'value'
通常,不要使用null以避免混淆。
标准库方法返回undefined,而不是null
let a = [10];
console.log(a[1]) //=> undefined
console.log(a.find(value => value === 5)) //=> undefined
我经常在人们的代码中看到,某个变量最初未定义,然后赋值给某个值,然后通过设置为null来清除。这是不一致的,最好回到undefined。
尽管如此,如果框架使用null,或者对于json序列化,null是有意义的。
null和undefined都用于表示缺少某个值。
var a = null;
a被初始化和定义。
typeof(a)
//object
null是JavaScript中的对象
Object.prototype.toString.call(a) // [object Object]
var b;
b未定义且未初始化
未定义的对象财产也是未定义的。例如,“x”未在对象c上定义,如果您尝试访问c.x,它将返回undefined。
通常,我们为未定义的变量赋值null。
推荐文章
- Javascript和regex:分割字符串并保留分隔符
- 如何检查DST(日光节约时间)是否有效,如果是,偏移量?
- 如何打破_。在underscore.js中的每个函数
- 如何在jQuery中获得当前日期?
- 如何创建一个日期对象从字符串在javascript
- 输入触发器按钮单击
- 获取对象的属性名
- 如何检查用户是否可以回到浏览器历史
- 相当于字符串。jQuery格式
- 如何在vue-cli项目中更改端口号
- Angular 2模板中的标签是什么意思?
- JavaScript .includes()方法的多个条件
- 窗口。亲近与自我。close不关闭Chrome中的窗口
- 同步和异步编程(在node.js中)的区别是什么?
- 在d3.js中调整窗口大小时调整svg的大小