JavaScriptのdelete, typeof, void, in, instanceof解説

JavaScriptのdelete, typeof, void, in, instanceof解説

JavaScriptのdelete, typeof, void, in, instanceof解説

delete

deleteは、オブジェクトのプロパティを削除するための演算子です。ただし、変数そのものを削除することはできません。 配列の要素やオブジェクトのキーに対して使用します。

例1: オブジェクトのプロパティを削除


        const obj = { a: 1, b: 2 };
        console.log(obj); // { a: 1, b: 2 }
        delete obj.a;
        console.log(obj); // { b: 2 }
    

例2: 配列の要素を削除

配列に対してdeleteを使用すると、その要素はundefinedになりますが、配列の長さは変わりません。


        const arr = [1, 2, 3];
        delete arr[1];
        console.log(arr); // [1, undefined, 3]
        console.log(arr.length); // 3
    

注意点

deleteは、オブジェクトのプロパティでのみ機能します。letconstで定義された変数には使用できません。


        let x = 10;
        delete x; // false
        console.log(x); // 10
    

typeof

typeofは、値のデータ型を返します。JavaScriptでサポートされているデータ型には、number, string, objectなどがあります。

例1: 基本的な使用例


        console.log(typeof 42); // "number"
        console.log(typeof 'hello'); // "string"
        console.log(typeof true); // "boolean"
        console.log(typeof {}); // "object"
    

例2: 特殊なケース

nullに対しては"object"が返されますが、これは歴史的なバグです。


        console.log(typeof null); // "object"
    

関数の型判定

関数に対しては"function"が返されます。


        function myFunction() {}
        console.log(typeof myFunction); // "function"
    

void

voidは、式の評価結果を明示的に無効化するための演算子です。主にリンクの無効化で使用されます。

例1: 関数の評価結果を無視


        const result = void (console.log('Hello, World!'));
        console.log(result); // undefined
    

例2: リンクの無効化


        <a href="javascript:void(0)">クリックしても何も起こらない</a>
    

in

inは、プロパティがオブジェクト内に存在するかどうかを判定するための演算子です。

例1: オブジェクトのプロパティの存在確認


        const obj = { a: 1, b: 2 };
        console.log('a' in obj); // true
        console.log('c' in obj); // false
    

例2: 配列のインデックス確認

配列の場合はインデックスの存在を確認します。


        const arr = [10, 20, 30];
        console.log(1 in arr); // true
        console.log(3 in arr); // false
    

instanceof

instanceofは、オブジェクトが特定のクラスまたはコンストラクタのインスタンスかどうかを確認するために使用します。

例1: 基本的な使い方


        class MyClass {}
        const obj = new MyClass();
        console.log(obj instanceof MyClass); // true
    

例2: 組み込みオブジェクト


        const arr = [];
        console.log(arr instanceof Array); // true
        console.log(arr instanceof Object); // true
    

例3: 継承とinstanceof


        class Parent {}
        class Child extends Parent {}
        const obj = new Child();
        console.log(obj instanceof Child); // true
        console.log(obj instanceof Parent); // true
    

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です