按照惯例,Node中的异步回调接受错误作为其第一个参数.如果成功,第一个参数不得出现.我个人习惯写
callback(undefined, result);
Run Code Online (Sandbox Code Playgroud)
在这种情况下.但是,我在其他人的代码中看到了
callback(null, result);
Run Code Online (Sandbox Code Playgroud)
盛行.是否"正式"记录在任何地方?这两个选项中哪一个是惯用节点?是否有任何重要理由选择一个而不是另一个?
我在测试某些变量是否为空时遇到了代码问题,并决定用小提琴测试它:
var result = "";
var Teste = new Object();
Teste.ObjectNew = new Object();
Teste.StringNew = new String();
Teste.NumberNew = new Number();
Teste.ArrayNew = new Array();
Teste.ObjectLiteral = {};
Teste.StringLiteral = "";
Teste.NumberLiteral = 0;
Teste.ArrayLiteral = [];
Teste.ObjectNull = Object(null);
Teste.StringNull = String(null);
Teste.NumberNull = Number(null);
Teste.ArrayNull = [null];
for (var i in Teste) {
if (Teste[i] == null) {
result += "<p>Type " + i + " is null: " + Teste[i] + "</p>";
} else { …Run Code Online (Sandbox Code Playgroud)我经常看到,当一个函数需要在没有特定上下文的情况下使用绑定参数进行调用时,undefined通常比null作为上下文的选择更受欢迎,如:
f.call(undefined, param1, param2)
Run Code Online (Sandbox Code Playgroud)
优先于:
f.call(null, param1, param2)
Run Code Online (Sandbox Code Playgroud)
我想知道这有什么特别的原因吗?
在我正在制作的文本冒险中,房间的对象文字如下所示:
room : {
// some info,
exits : {
north : -1,
east : "house",
south : "forest",
west : -1
}
}
Run Code Online (Sandbox Code Playgroud)
在我的功能中移动它说:
if (room["exits"][direction] !== -1) {// go that way}
else {print "you can't go that way!"}
Run Code Online (Sandbox Code Playgroud)
现在我想通过测试相关方向的键是否存在于对象中来节省空间。所以文字会去:
room : {
// some info,
exits : {
east : "house",
south : "forest"
}
}
Run Code Online (Sandbox Code Playgroud)
……我的if陈述应该是什么样的?确定给定键名是否存在于对象中的“正确”方法是什么?
我有一个代码,我不清楚
var a = null;
if(a==undefined)
alert("true");
else
alert("false");
Run Code Online (Sandbox Code Playgroud)
当我在上面运行代码时,它会发出警告.
任何人都能解释一下这背后的原因或概念吗?
null + 1 = 1
undefined + 1 = NaN
我无法理解这背后的逻辑是什么.两者都不应该返回相同的结果吗?
是什么区别Null,NaN并且undefined在JavaScript?
我遇到了所有三个值,并且在我发现它们的上下文中将它们理解为“这里没有任何东西”,但我希望对它们发生的原因及其含义进行更详细的解释。在不同的上下文中(例如,针对数组,类或变量)。
如以下示例所示:
document.getElementById('test1').value = null;
document.getElementById('test2').value = undefined;Run Code Online (Sandbox Code Playgroud)
<input id="test1" value="DEFAULT TEXT" />
<input id="test2" value="DEFAULT TEXT" />Run Code Online (Sandbox Code Playgroud)
无论何时设置为输入值都会重置null,但为什么在设置为undefined?时它也会重置?
为什么它将值设置为字符串"undefined"呢?
码
function hi() {
myvar = 'local variable';
}
console.log(myvar);
Run Code Online (Sandbox Code Playgroud)
输出:ReferenceError:未定义myvar
根据我的理解,javascript逐行,检查变量及其范围.记住这一点不应该是以下打印'undefined',因为myvar存在于全局范围内?
!aJavaScript 中的和之间有区别吗a===null?我正在从事一个表现不同的项目。
我不是在谈论布尔值,但!true我不会和true===null
if (!this.props.user)结果为真,
好像(this.props.user === null)结果为 false
java脚本中null的用例是什么?当为null时应该使用而不是undefined?
javascript ×11
asynchronous ×1
ecmascript-5 ×1
idioms ×1
input ×1
nan ×1
node.js ×1
null ×1
undefined ×1