助けて!私は火曜日にtestdome.comでのテストを含めてインタビューを受けています...私は彼らの「簡単な」javascript練習問題のいくつかを見ました、そして私はこれに困惑しています:
引数なしで呼び出された場合、または引数が未定義の場合にエラーをスローするように、ensure関数を実装します。それ以外の場合は、指定された値を返します。
function ensure(value) {
}
これまでのところ、私は持っています:
function ensure(value) {
if(value){
return true;
}
}
しかし、関数が「引数なしで呼び出されているか、引数が未定義である」かどうかを確認するにはどうすればよいですか?
私はいくつかのことを試しました:else if(typeof value === 'undefined')、しかしそれはうまくいかないようです...
value === undefined
、その場合はエラーをスローします。それ以外の場合は、入力値を返します。
function ensure(value) {
if(value === undefined) {
throw new Error('no arguments');
}
return value;
}
console.log(ensure('text'));
console.log(ensure([0,1,2,3]));
console.log(ensure());
function noValueException(value) {
this.value = value;
this.name = 'noValueException';
}
function ensure(value) {
if(value === undefined){
throw new noValueException('No argument passed');
}else{ return value;}
}
関数に引数が渡されない場合、コンソールに例外がスローされます