プログラミングBlog

アプリ開発サークル勉強会⑦ 開催日時 2021年2月13日(土) 7:00-9:00

本日もこちらの問題やりました!

Q31-35 https://gist.github.com/kenmori/1961ce0140dc3307a0e641c8dde6701d

Object.getOwnPropertyDescriptor

オブジェクトのプロパティの属性を返す。 属性については前回の勉強会でも取り上げましたが、復習もかねてもう一度。
JavaScriptにおけるオブジェクトのプロパティとは、オブジェクト指向におけるプロパティ(フィールド)と同じ意味だと考えられます。
つまり、プロパティとはなんらかの情報のことですね。 属性とは読み取り専用、書き込み専用など、のことをさします。
まずはtsuyahimeというオブジェクトを定義します。

let tsuyahime = {
    name: 'つや姫',
    color: 'white',
    origin: '山形'
}

次にプロパティに定義されている属性を、getOwnPropertyDescriptorで表示させます。

console.log(Object.getOwnPropertyDescriptor(tsuyahime, 'origin'));

結果:

{ value: '山形', writable: true, enumerable: true, configurable: true }

デフォルトだと各属性の値はtrueのようです。
次はこれらの属性値を変更してみましょう。

defineProperty

属性値の定義、変更
まず各属性について、設定できる項目。
value:値
writable:書き込み
enumerable:列挙
configurable:削除

Object.defineProperty(tsuyahime, 'water', {
    value: 20,
    writable: false,
    enumerable: false,
    configurable: false
});

// 書き込み
tsuyahime.water = 30;
// 列挙
console.log(Object.keys(tsuyahime));
// 削除
delete tsuyahime.water;

console.log(tsuyahime.water);

結果:

[ 'name', 'color', 'origin' ]
20

値が変更されず、非列挙となり、削除できなくなりました。
可能にしたい場合はtrueに変更する

オブジェクトの参考サイト

オブジェクトでの作業 - JavaScript | MDN

map

配列の全ての要素を呼び出し、その結果の値を含む新しい配列を作成する。
今までは空の配列を作成し、配列の詰替えを行っていましたが、そんなことせずともできるように。

const nums = [1, 2, 3, 4, 5];

var newNums = nums.map(function (num) {
    return num;
})

console.log(newNums);

結果:

[ 1, 2, 3, 4, 5 ]

引数追加することでindex番号と配列が取得できます。
このへんはforeachと一緒ですね。
他の言語でもindex番号が取れるので、覚えておきましょう。

var newNums = nums.map(function (num, index, arr) {
    console.log(index);
    console.log(arr);
    return num;
});

結果:

[ 1, 2, 3, 4, 5 ]   
1
[ 1, 2, 3, 4, 5 ]
2
[ 1, 2, 3, 4, 5 ]
3
[ 1, 2, 3, 4, 5 ]
4
[ 1, 2, 3, 4, 5 ]

argments

関数に渡された引数の値を含み、関数内からアクセスできる。
ちょっとした計算するときに使えそう。

function sum() {
    var total = 0;
    for (var i = 0; i < arguments.length; i++) {
        total += arguments[i];
    }
    return console.log(total);
}

sum(1, 2);

結果:
3

ショートカットキー

vscodeのショートカットキーの話も出てきましたが。
表示→パレッド→基本設定:キーボードショートカットキーを開く
使えそうなショートカットキーはここで探すと良い。
CTRL + K CTRL + C コメントの追加 CTRL + C CTRL + U コメントの解除