回答編集履歴

1 修正

akabee

akabee score 1875

2017/04/30 13:24  投稿

```JavaScript
 $scope.users = [
   {"name":"taguchi", "score":52.22},
   {"name":"tanaka", "score":38.22},
   {"name":"yamada", "score":11.11}
 ];
```
上記をひとつひとつ見ていきましょうか。
$scopeはそれが一つの変数名です。特別な変数名だと思ってください。
phpでは変数名の最初には$を付けますが、JavaScriptでは付けても付けなくても構いません。
敢えて、おそらく特別な変数であるという意図を示すために、$scopeと最初に$が付いた変数名になっています。
「変数.要素」で変数の要素にアクセスすることができます。
user.name = "Bob"というコードが合ったとすると、user変数のname要素にBobを設定しています。
JavaScriptでは変数は事前に宣言していなくてもいきなり値を入れることができます。
上記を踏まえると、まず
```JavaScript
 $scope.users = [
```
という部分は説明が付くと思います。
$scope変数のusers要素に対し、何か値を代入しようとしています。
次に、[]は配列を表します。
以下のようなコードであれば、$scope変数のusers要素を配列で初期化しているということです。
```JavaScript
 $scope.users = []
```
以下のようなコードであれば、$scope変数のusers要素に対し1,2,3という配列を設定することになります。
```JavaScript
 $scope.users = [1,2,3]
```
次に{}はオブジェクトを宣言する際の省略記法です。
宣言方法には色々な書き方があり、以下二つの代入式は同義です。
```JavaScript
 //一つ目
 $scope.users = {}//初期化
 $scope.users.name = "Bob"
 $scope.users.score = "52.22"
 //二つ目
 $scope.users = {name:"Bob",score:"52.22"}
```
配列にはオブジェクトも入れ込むことができます。
以下コードは配列に対し空のオブジェクトを三つ入れています。
```JavaScript
 $scope.users = [{},{},{}]
```
JavaScriptでは改行は文が続いているとみなされます。
下記は一つ上と同じ意味です。
```JavaScript
$scope.users = [
$scope.users = [
 {},
 {},
 {}
]
```
ここまで来れば分かるかもしれません。
つまり最初のコードは、$scope変数のusers要素に対し、三つのオブジェクトを格納した配列を設定していることになります。
改行が無いほうが分かりやすいと思いますので改行なしで再掲しておきます。
再掲しておきます。
```JavaScript
 $scope.users = [{"name":"taguchi", "score":52.22},{"name":"tanaka", "score":38.22},{"name":"yamada", "score":11.11}
 $scope.users = [
  {"name":"taguchi", "score":52.22},
  {"name":"tanaka", "score":38.22},
  {"name":"yamada", "score":11.11}
 ];
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る