JavaScriptのビックリマークと関数
JavaScriptにおけるビックリマークと関数の関係
JavaScriptでは、関数の前にビックリマーク(!
)を使用すると、その関数を否定的に演算します。つまり、関数がtrue
を返す場合、!
をつけるとfalse
を返し、false
を返す場合はtrue
を返します。
例
function isEven(num) {
return num % 2 === 0;
}
// isEven(4) は true を返します
console.log(isEven(4)); // Output: true
// !isEven(4) は false を返します
console.log(!isEven(4)); // Output: false
具体的な用途
- 関数の返り値の否定
function isNotEven(num) { return !isEven(num); }
- 論理演算での使用
const result = isEven(4) && !isEven(5); // true && true = true
- 条件文での使用
if (!isEven(num)) { // num が奇数のとき }
注意点
- ビックリマークは、関数の返り値を否定するだけで、関数の動作自体を変更しません。
- ビックリマークは、関数の前に直接使用します。関数呼び出しの後に使用すると、エラーが発生します。
function isAdult(age) {
return age >= 18;
}
const personAge = 17;
if (!isAdult(personAge)) {
console.log("未成年です。");
} else {
console.log("成年です。");
}
この例では、isAdult
関数は年齢が18以上かどうかを判定します。!isAdult(personAge)
は、personAge
が未成年の場合にtrue
を返します。そのため、条件文は「未成年です。」というメッセージを出力します。
例2: 論理演算での使用
function isEven(num) {
return num % 2 === 0;
}
const num1 = 4;
const num2 = 5;
if (isEven(num1) && !isEven(num2)) {
console.log("num1は偶数、num2は奇数です。");
}
この例では、isEven
関数は数が偶数かどうかを判定します。!isEven(num2)
は、num2
が奇数の場合にtrue
を返します。そのため、条件文は「num1は偶数、num2は奇数です。」というメッセージを出力します。
例3: 関数の返り値の否定
function isNotEven(num) {
return !isEven(num);
}
const num = 3;
if (isNotEven(num)) {
console.log("numは奇数です。");
}
この例では、isNotEven
関数はisEven
関数の返り値を否定します。そのため、num
が奇数の場合はtrue
を返し、条件文は「numは奇数です。」というメッセージを出力します。
論理演算子 && と ||
- || (論理和)
両方のオペランドが偽(false
)の場合にのみ偽を返します。
これらの演算子を使用して、関数の返り値を否定的に演算することができます。
例
function isEven(num) {
return num % 2 === 0;
}
// ビックリマークを使用
if (!isEven(3)) {
console.log("奇数です。");
}
// 論理演算子を使用
if (isEven(3) === false) {
console.log("奇数です。");
}
三項演算子
三項演算子は、条件式に基づいて二つの値のどちらかを返す演算子です。
function isEven(num) {
return num % 2 === 0;
}
// ビックリマークを使用
const result = !isEven(3) ? "奇数です。" : "偶数です。";
console.log(result);
// 三項演算子を使用
const result2 = isEven(3) ? "偶数です。" : "奇数です。";
console.log(result2);
カスタム関数
function isEven(num) {
return num % 2 === 0;
}
function isNotEven(num) {
return !isEven(num);
}
if (isNotEven(3)) {
console.log("奇数です。");
}
javascript function