Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于JS中null和undefined的noobie问题的澄清_Javascript_Null_Undefined - Fatal编程技术网

Javascript 关于JS中null和undefined的noobie问题的澄清

Javascript 关于JS中null和undefined的noobie问题的澄清,javascript,null,undefined,Javascript,Null,Undefined,我一直在试图解释JS中关于null和undefined的解释,这里是stackoverflow和其他地方。我想我看到了一定程度的沟通失误 对于没有经验的开发人员,当控制台告诉我们变量或属性未定义时,这是由于编码错误造成的(例如:我忘记给变量赋值或从函数返回值)。这意味着Javascript已为我的变量或属性指定了undefined 作为做教程的Noobie,我们从未被要求显式地将未定义的赋值给变量 现在在一些示例代码中,我们看到一个if语句,如 如果(x==null){some code} 我们

我一直在试图解释JS中关于null和undefined的解释,这里是stackoverflow和其他地方。我想我看到了一定程度的沟通失误

对于没有经验的开发人员,当控制台告诉我们变量或属性未定义时,这是由于编码错误造成的(例如:我忘记给变量赋值或从函数返回值)。这意味着Javascript已为我的变量或属性指定了undefined

作为做教程的Noobie,我们从未被要求显式地将未定义的赋值给变量

现在在一些示例代码中,我们看到一个if语句,如 如果(x==null){some code} 我们不知道为什么x等于null,或者null是如何分配给x的

这里关于堆栈溢出和其他地方的大多数解释都显示了显式分配null的示例(例如:var y=null)。也就是说,null是编码错误的结果,Javascript不分配null。Null必须由程序员分配(为什么他们会这样做也是个谜)

现在,我试图通过创建一个对象,设置其属性,并使用delete删除这些属性的值,来强制脚本返回null,我认为这会给我: obj===null//true 但是我得到false(因为obj===未定义//true)

我也试过:

var A = function(name) {
this.name = name;
}

var a = new A('alpha');
a.name; //'alpha'

A.prototype = {x:23};

a.x; //according to tutorial, this was supposed to have returned *null*, but instead returned *undefined*

所以问题是,如何“强制脚本返回null”?。

您的问题是什么?在javascript中,未定义是指分配给任何已声明但尚未设置的变量的值。javascript用户选择这种方法来区分已经设置的变量和只声明的变量。我知道你明白这一点,我只是想用另一种方式说出来。Null是一个类型为object的值。这意味着未定义的变量(无类型)可以变为NULL(对象)。Null可以在未定义的时间之后出现,但不能在另一个方向出现。请同时使用
typeof
,并检查结果以了解difference@whitelettersinblankpapers
null
是一种javascript基本数据类型。它不是一个物体
typeof null
返回“object”的方式与
typeof someFunction
返回“function”的方式相同。通过历史的使用和改变它将打破网络。(函数当然是“object”数据类型)
Null必须由程序员分配(为什么他们会这样做也是一个谜)
:在很多情况下,您希望返回并因此分配
Null
,imho
未定义的
只能隐式返回(由不返回任何内容的函数返回)而
null
在操作未返回结果的情况下可能是一个有效的返回值,但在其他情况下可能会这样做。因此您必须显式地分配null。我已经看到这样的场景是原型化一个新对象。我猜您可以添加属性(比如通过表单提交)对于对象的新实例,然后测试对象是否仍然为null,以确定属性是否为空。您的问题是什么?在javascript中,undefined是指分配给任何已声明但尚未设置的变量的值。javascript用户选择此方法来区分已设置的变量和仅设置的变量声明。我知道你理解这一点,我只是想用另一种方式说。Null是一个类型为object的值。它意味着一个未定义(无类型)的变量可以变为Null(对象).Null可以出现在未定义的时间之后,但不能出现在另一个方向。请使用
typeof
对它们进行检查,以了解difference@whitelettersinblankpapers
null
是javascript基本数据类型。它不是对象。
typeof null
返回“object”同样地,
typeof someFunction
返回“function”。通过历史用法和更改它会破坏网络。(函数当然是数据类型“object”)
Null必须由程序员分配(为什么他们会这样做也是个谜)
:在很多情况下,您希望返回并因此分配
null
,imho
未定义的
只应隐式返回(由不返回任何内容的函数返回)而
null
在操作未返回结果的情况下可能是一个有效的返回值,但在其他情况下可能会这样做。因此您必须显式地分配null。我已经看到这样的场景是原型化一个新对象。我猜您可以添加属性(比如通过表单提交)创建一个新的对象实例,然后测试该对象是否仍然为null,以确定属性是否为空。