alienHRNの訓練日記

IT業界初心者で勉強中。

20200721 授業のメモ 今日はオブジェクト・JSON・演算子

☆オブジェクトについて
配列と違って部屋に名前は付けられるがlengthが使えない。
{}が使われるのが特徴



オブジェクトを作る=オブジェクトリテラル
var 変数名={プロパティ1:値1、プロパティ2:値2、・・・}

・配列リテラル:[]
・オブジェクトリテラル:{部屋の名前:値,・・・}


var player1 = {
name: "田中",
job: "勇者",
maxLife: 1000,←プロパティ
life: 1000,
};

オブジェクト内にある箱(変数)をプロパティと呼ぶ

console.log("1回目の出力");
console.log(player1);
console.log(player1.name);
console.log(player1.life);

オブジェクト内のプロパティを参照する場合は「変数名.プロパティ名」
「.」は「の中にある」という扱い。



※ミスしやすい操作
var→ {}の中は,でつなぐ
console→ ();でつなぐ→()の中は.でつなぐ。



JSON形式データの作成
配列オブジェクトは組合わせることができる。

配列管理とオブジェクト管理の融合体
下記の場合、
一次元目の人数管理は配列管理、二次元目のキャラクター情報はオブジェクト管理。
※配列管理・・・length使用可
※オブジェクト管理・・・length使用不可

var party = [
{name: '田中', job: '勇者', maxLife: 1000, life: 1000}, //0番地
{name: '佐藤', job: '僧侶', maxLife: 400, life: 200}, //1番地
];

console.log('1回目の出力');
console.log(party);
console.log(party.length);

console.log('2回目の出力');
console.log(party[0]);
console.log(party[0].name);
console.log(party[0].life);



・画像の表示の仕方
JSファイルの設定
var enemy = {
name: 'バラモス',
life: 3500,
aliveImg: 'img/e_01.gif'
};

aliveImgで使用する画像を設定することができる。

document.getElementById('example3').setAttribute('src', enemy.aliveImg);

→.setAttribute('src', ~.aliveImg);でブラウザに画像を表示される



* 問6
* キャラクターのライフを「400」に変更してブラウザに表示すること
*/
player.life = 400;←変更する場合はこの記述だけでよい

document.getElementById('answer6').innerHTML = player.life;
console.log(player.life,);



* 最後のキャラクターのライフをブラウザに表示する
*/
document.getElementById('answer6').innerHTML = playlist[playlist.length - 1].life;
→playlist[playlist.length - 1]という表現の仕方をすること





<!------------------------------------------------------------------------------>
数値を置き換えて表示させる方法


var playlist = [
{ name: "ライアン", job: "戦士", life: 600, aliveImg: 'img/p_01.gif', },
{ name: "クリフト", job: "僧侶", life: 400, aliveImg: 'img/p_02.gif', },
{ name: "アリーナ", job: "格闘家", life: "500", aliveImg: 'img/p_03.gif', },

];


/**
* 問8
* 表示キャラクターを決める変数playerNumを宣言して
* キャラクター情報を表示すること
* 変数playerNumの数値を変更してキャラクター情報が変わることを確認すること
*/

var playerNum = 0;
console.log(playlist[playerNum]);

document.getElementById('answer8-1').innerHTML = playerNum;
document.getElementById('answer8-2').innerHTML = playlist[playerNum].name;
document.getElementById('answer8-3').innerHTML = playlist[playerNum].job;
document.getElementById('answer8-4').innerHTML = playlist[playerNum].life;
document.getElementById('answer8-5').setAttribute('src', playlist[playerNum].aliveImg);




データ型
変数はデータ型の何かに必ず所属している。

データ型の種類
strings '' ""で囲まれた値
boolean trueまたはfalse
null 参照型の値が存在しない
object オブジェクト(配列を含む)
function 関数




typeof 変数名→変数名を調べることができる演算子
使い方
var x;

console.log('1回目の出力');
console.log(x);
console.log(typeof x);
→コンソールではundefinedと表示される。



x = 'メッセージ';

console.log('2回目の出力');
console.log(x);
console.log(typeof x);
→コンソールではStringと表示される

x = [100, 200];

console.log('5回目の出力');
console.log(x);
console.log(typeof x);

→コンソールではobjectと表示される



x = {
name: '田中',
age: 20,
};

console.log('6回目の出力');
console.log(x);
console.log(typeof x);

→コンソールではfunctionと表示される。
 
※NULLがでるパターン(4パターン)
取得するはずのオブジェクトがなかった
undifined変数宣言後に値を入れていない
エラーメッセージで表示されるundifined
変数が定義されていない。