AngularJS
AngularJS は「消化サイクル」(digest cycle) の考え方で設計されている。このサイクルはループと考えることができ、このループ中にAngularJSは全ての$scopeが監視している全ての変数に何らかの変更があるかどうか検査する。従って、もし変数$scope.myVarがコントローラ内で定義されていて、この変数が監視対象としてマークされている場合、AngularJSはmyVarに対する変更をループが回る度に調べることになる(いわゆるダーティ・チェック)。
このやり方でAngularJSがループのたびに$scope内にある大量の変数をチェックしていたら描画が重くなる可能性がある。Hevery氏は、いかなるページであっても監視対象は2000個以下に保つべきだと示唆している。
AngularJSではscopeという単語が独特の意味で使われるので注意が必要である。
計算機科学におけるスコープとは、プログラム内で、ある名前束縛が有効な範囲を言う。ECMA-262仕様はスコープを次のように定義している:クライアントサイドのウェブスクリプト内でFunctionオブジェクトが実行される語彙環境。これはラムダ計算でのスコープの定義と類似している。
"MVC" アーキテクチャにおけるスコープは「モデル」を形成しており、このスコープ内で定義された全ての変数は「ビュー」からも「コントローラー」からもアクセス可能である。このスコープが「ビュー」と「コントローラー」を結び付ける糊の役目を果たしている。
AngularJSにおけるscopeはある種のオブジェクトであり 、それ自体がJavaScriptにおける他のオブジェクト同様に通常の変数スコープのルールに従って、プログラム内の任意の部分においてスコープ内であったり、スコープ外であったりする。下記においてscopeという場合、それはAngularJSのscopeオブジェクトを指しており、名前束縛のスコープを意味するものではない。