jsの勉強2(自分用)

```

下記のobjectArrayはObjectなのですが、includesはArrayに対する関数です。
ObjectからキーをArrayとして取り出すために使うのが、Object.keys() になります。この変換はよく使います。

```

# javascriptは親子

```js

var objectArray =  {objectKey:object01, objectKeyValue:parameter02};
var incloudesTest = objectArray.incloudes(objectKey);

```

# phpは友達

```php

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

/*結果
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)
*/




```

# includes()とObject.keys()の使い分け

Array.prototype.includes()

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

Object.keys()

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/keys



includesはArrayに対する関数で連想配列には使えません。そして、includesはその配列に指定の値が存在してればtrueを返して存在してなければfalseを返します。Object.keys()は、配列の番号をすべて列挙してくれます。

```js

var hogeArray = [`apple`,` banana`];

console.log(Object.keys(hogeArray));

```




```js

<script>
/*
	var hogearray = {keyhoge: 'valuehoge' , keypiyo:'valuepiyo'};

	var piyoincludes = hogearray.includes('valuepiyo');

	console.log(piyoincludes);
*/

	var objectArray =  {objectKey:'object01', objectKeyValue:'parameter02'};

	var objectArrayKeys = Object.keys(objectArray);

	console.log(Object.keys(objectArrayKeys));

	/*ログ

	Array[2]

	0: "0"
	1: "1"

	length: 2__proto__: Array[0]

	*/

    //var incloudesTest = objectArrayKeys.incloudes("0"); 動かない
    //var incloudesTest = objectArrayKeys.incloudes("0"); 動かない
    //console.log(incloudesTest)

    console.log(objectArrayKeys.incloudes(objectKey));

</script>

```

ObjectとArrayは別物だということを念頭においておくとその後の試行の不明点が解決するかなと思います。


# 動いた


```js

var hogeArray = ['apple','banana','orenge'];

     console.log(Object.keys(hogeArray));

     var piyoArrayObject = {100: 'a', 2: 'b'};
     console.log(Object.keys(piyoArrayObject))


     /*

    ["2", "100"]

     */

     var piyoArrayObjectArray = Object.keys(piyoArrayObject);
     console.log(piyoArrayObjectArray);

var boolean = piyoArrayObjectArray.includes("100");

//100でも'a'でもfalseになる

//でもダブルクオーテーションだとtrueになった

console.log(boolean);

```

どういうときなら使えるかを考える。



objectKeysは連想配列の中からキーの名前を抽出する。

console.log(boolean)

//javascriptでオブジェクトの値にアクセスしたい

 boolean.a = b;

includesで取得できた文字列は、文字列として認識されていますか？
例えば連想配列を作って var 変数名 = object.keys(連想配列)でキーを取得し
includes("キーの名前")でtrueが返せたら、ああ、trueかfalseで処理を分けたい

例えば、テキストを入力してボタンを押すと、連想配列の形でオブジェクトが生成されて
パスワード入力画面で、incloudesで比較させればいんだ。これが使い方の一つでした




# php と javascript

javascriptの場合は、arrayに対する関数というものがあって、それは親子関係のようになっています。

しかし、phpの場合は、array_push()という関数を使っ$stackという変数を実装してる感じになります。

なので、array_push()独立しているので、arraとは親子ではなく親友みたいな感じです


javascriptを詳しく見てみると、配列の中の文字数があるかどうかためすときは

array.incluses(調べたい文字列); みたいな感じで、.inclusesという関数の中の処理でarrayを実装するのではなく、arrayに対してincludesを使うよみたいな感じなので、incloudesは完全にarrayに依存したメソッドになります。これは、言語仕様の違いです

# How to connect to SQL Server database from JavaScript in the browser?

http://stackoverflow.com/questions/857670/how-to-connect-to-sql-server-database-from-javascript-in-the-browser


# javascriptではif命令は入れ子構造にすることも可能

```js

var x = 30;

if (x >= 10) {

	if (x >= 20) {

		console.log('変数はxは20以上です');

	}else {
		console.log('変数はxは10以上20未満です');
	}
}else{
	console.log('変数はxは10未満です');
	//結果：変数xは20以上です。
};

```

if文が入れ子になっていますが、処理の流れは変わりません。二つ目のif文に呼応しているのは、二つ目のif文に直下のelse文だけです。ちなみに、if文を入れ子にしなければ実装できない、実装状況ってどんなものがありますか？

朝起きてお腹が空いてたらご飯を食べて、お腹が空いてなかったらご飯をたべないプログラム。これを、どういう風に実装しますか？。if文を使いますか？swich文を使いますか？for文を使いますか？じゃあ、if文を使ってみましょう。if文でどう書きますか？ネストにしなくてもできますか？でも、ネストで書いてみましょう


```js

var wakeupmorning = 4

if (wakeupmorning > 1) {

	if (wakeupmorning > 3) {

		console.log('朝ごはんを食べずに家を出ます');
	}else{

		console.log('朝ごはんは味噌汁とご飯を食べます');
	}

}else{

	console.log('朝ごはんはパンを食べます');
}

```