我想知道JavaScript null和undefinedJavaScript 之间的区别.
我只是想知道,没有return语句的函数(或没有命中任何return语句)返回一个完全等同于false的值?
例如:
function foo(){};
!!foo();
Run Code Online (Sandbox Code Playgroud)
如果在firebug中执行,这应该返回false(但如果我只调用foo(),则不返回任何内容).
非常感谢!
贾森
我正在学习JavaScript,我对arguments属性数组感到很困惑.
我有一个函数,它接受一个参数并返回它.当我传递参数并使用arguments[0] = value它重新分配时,它正在更新值.
function a(b) {
arguments[0] = 2;
return b;
}
console.log(a(1)); //returns 2Run Code Online (Sandbox Code Playgroud)
但是当我调用没有参数的相同函数时它返回undefined.
function a(b) {
arguments[0] = 2;
return b;
}
console.log(a()); //returns undefinedRun Code Online (Sandbox Code Playgroud)
但即使我通过undefined,价值也会更新.
function a(b) {
arguments[0] = 2;
return b;
}
console.log(a(undefined)); //returns 2Run Code Online (Sandbox Code Playgroud)
我认为如果你没有将参数传递给JavaScript函数,它会自动创建它并分配值,undefined并在更新后它应该反映更新的值,对吧?
也a()和a(undefined)是相同的东西,对不对?
假设我有一个这样的函数:
checkerFunction() {
let checker = false;
// Note here I only do a return if the *if* condition is fulfilled
if (condition) {
checker = true;
return checker;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我用它作为另一个函数的真/假检查:
anotherFunction() {
// What will happen here if there's no return from this.checkerFunction()
if (this.checkerFunction()) {
somethingHappens;
}
}
Run Code Online (Sandbox Code Playgroud)
将会发生什么
if (this.checkerFunction())
Run Code Online (Sandbox Code Playgroud)
如果 checkerFunction() 中没有返回,因为条件从来都不是 true...它会被解释为 true/false 还是这将是一个错误,为什么?