質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

2回答

5960閲覧

AngularJS $scope .users [ { ,

goforward

総合スコア705

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

0クリップ

投稿2017/04/30 02:57

編集2017/04/30 05:20

イメージ説明
確かに公式サイトに書いてありました

javascript

1angular.module('myapp', []) 2.controller('MainController',['$scope',function($scope) { 3 $scope.users = [ 4 {"name":"taguchi", "score":52.22}, 5 {"name":"tanaka", "score":38.22}, 6 {"name":"yamada", "score":11.11} 7 8 ]; 9 10}]); 11

の$scope .users [ { ,はそれぞれなんでしょうか?すべてjavascriptで説明できるのでしょうか?
$はjqueryかphpのようにインスタンス変数か?[ は配列なのでしょうか?
数学のように大かっこ 中カッコなのでしょうか?
なぜコンマはつけて
最後に {"name":"yamada", "score":11.11}はつけないのでしょうか?
よろしくお願いします

html

1 <!DOCTYPE html> 2<html lang="ja" ng-app> 3<head> 4 <meta charset="UTF-8"> 5 <title>Angularの練習</title> 6 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 7 <script src="myscript.js"></script> 8</head > 9<body> 10 <h1>AngularJSの練習</h1> 11 <div ng-controller="mainCtrl"> 12 <p>{{users.length}} users.</p> 13 <ul> 14 <li ng-repeat="usre in users">{{user.name}} {{user.score}}</li> 15 </ul> 16 </div> 17</body > 18</html> 19

リンク内容

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

JavaScript

1 $scope.users = [ 2 {"name":"taguchi", "score":52.22}, 3 {"name":"tanaka", "score":38.22}, 4 {"name":"yamada", "score":11.11} 5 6 ];

上記をひとつひとつ見ていきましょうか。

$scopeはそれが一つの変数名です。特別な変数名だと思ってください。
phpでは変数名の最初には$を付けますが、JavaScriptでは付けても付けなくても構いません。
敢えて、おそらく特別な変数であるという意図を示すために、$scopeと最初に$が付いた変数名になっています。

「変数.要素」で変数の要素にアクセスすることができます。
user.name = "Bob"というコードが合ったとすると、user変数のname要素にBobを設定しています。

JavaScriptでは変数は事前に宣言していなくてもいきなり値を入れることができます。

上記を踏まえると、まず

JavaScript

1 $scope.users = [

という部分は説明が付くと思います。

$scope変数のusers要素に対し、何か値を代入しようとしています。

次に、[]は配列を表します。
以下のようなコードであれば、$scope変数のusers要素を配列で初期化しているということです。

JavaScript

1 $scope.users = [] 2

以下のようなコードであれば、$scope変数のusers要素に対し1,2,3という配列を設定することになります。

JavaScript

1 $scope.users = [1,2,3] 2

次に{}はオブジェクトを宣言する際の省略記法です。
宣言方法には色々な書き方があり、以下二つの代入式は同義です。

JavaScript

1 //一つ目 2 $scope.users = {}//初期化 3 $scope.users.name = "Bob" 4 $scope.users.score = "52.22" 5 6 //二つ目 7 $scope.users = {name:"Bob",score:"52.22"} 8

配列にはオブジェクトも入れ込むことができます。
以下コードは配列に対し空のオブジェクトを三つ入れています。

JavaScript

1 $scope.users = [{},{},{}] 2

JavaScriptでは改行は文が続いているとみなされます。
下記は一つ上と同じ意味です。

JavaScript

1 $scope.users = [ 2 {}, 3 {}, 4 {} 5 ] 6

ここまで来れば分かるかもしれません。
つまり最初のコードは、$scope変数のusers要素に対し、三つのオブジェクトを格納した配列を設定していることになります。
再掲しておきます。

JavaScript

1 $scope.users = [ 2  {"name":"taguchi", "score":52.22}, 3  {"name":"tanaka", "score":38.22}, 4  {"name":"yamada", "score":11.11} 5 ];

投稿2017/04/30 04:23

編集2017/04/30 04:24
akabee

総合スコア1947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goforward

2017/05/01 00:32

変数はそれじだいでオブジェクトなのでしょうか? それともデータつまりプロパティということでしょうか?
akabee

2017/05/01 02:19

今、どういう理解で、それを踏まえてJavaScriptの記法のどこが納得いかないか、教えていただけると参考になるコメントができるかもしれません。 こういうコメントが参考になりそうかな?と思い記載しますが、JavaScriptにおけるオブジェクトとは連想配列のようなものだと思ってください。Javaで言えばArrayListです。 JavaScriptでは関数も変数として扱うことができ、オブジェクトとして扱われます。第一級関数という特徴です。 そのため連想配列内に、例えばname=Bob,score=52.22、といったデータのほかにspeak=function(){...といった関数を変数内に入れ込むことで擬似的にクラスからのインスタンス生成のようなこともできます。 JavaScriptは非常に自由度の高い言語で、オブジェクトの使い方一つとっても色々な書き方、考え方、ルールがあります。 function(){}でデータ、メソッドの定義をしておきnewを使う方法もあります。 こちらが参考になるのではないでしょうか?→http://uhyohyo.net/javascript/1_1.html ここまでを踏まえて最初の質問に答えますと、 >変数はそれじだいでオブジェクトなのでしょうか? 意図が分かりません。「それ自体で」というのがどういう意味かが掴めません。 あえて言うならプリミティブ型はオブジェクトとして扱えませんが、それ以外は全てオブジェクトとして扱えます。 参考→http://qiita.com/makotoo2/items/9566cebf205ef8b42505 >それともデータつまりプロパティということでしょうか? オブジェクトとはデータつまりプロパティということでしょうか?という質問なのであれば、これも意図を掴みかねます。 データつまりプロパティ、という言い方から、クラス設計のプロパティとメソッド、をイメージしているのではないかと思うのですが、コメント内に記載したとおりJavaScriptでは関数(メソッド)もオブジェクト(変数)として扱うことができます。 そのため、オブジェクトとはデータつまりプロパティか、ということになると、概ねはいそうですという回答になるのですが、JavaScriptではメソッドもプロパティとして扱うことができるので、クラス設計におけるプロパティと同義にはなりません。 参考→http://uhyohyo.net/javascript/1_4.html
guest

0

[ ]
は配列です。

js

1[1, 2]

{ }
はオブジェクトです。hashのようにも使えます。

js

1{name: 'value'}

,については配列なので必要ですが、最後の要素の後ろの,はつけてもつけなくても構いません。

js

1[1, 2, ]

$scope のように $ がついているのは AngularJS のオブジェクトであることを示しています。$scope は画面に表示するためのデータを保持させたりします。

投稿2017/04/30 03:55

TakeoAsai

総合スコア880

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goforward

2017/05/01 00:33

$scopeというオブジェクトの中に{ } が存在してもいいのでしょうか? データも関数もあらゆる要素もオブジェクトということになります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問