AngularJS
組み込みのヘルパー関数
サーチ…
angular.equals
angular.equals
関数は、2つのオブジェクトまたは値が等しいかどうかを比較して判定します。次の条件のうち少なくとも1つが満たされている場合にのみ、 angular.equals
は深い比較を実行し、trueを返します。
angular.equals(value1、value2)
- オブジェクトまたは値が
===
比較を渡す場合 - 両方のオブジェクトまたは値の型が同じで、そのプロパティのすべてが
angular.equals
を使用して等しい場合 - 両方の値が
NaN
等しい - 両方の値が同じ正規表現の結果を表します。
この機能は、単なる参照ではなく、オブジェクトまたは配列をその値または結果で詳細に比較する必要がある場合に役立ちます。
例
angular.equals(1, 1) // true
angular.equals(1, 2) // false
angular.equals({}, {}) // true, note that {}==={} is false
angular.equals({a: 1}, {a: 1}) // true
angular.equals({a: 1}, {a: 2}) // false
angular.equals(NaN, NaN) // true
angular.isString
関数angular.isString
は、与えられたオブジェクトまたは値が型string
場合にtrueを返しstring
angular.isString(value1)
例
angular.isString("hello") // true
angular.isString([1, 2]) // false
angular.isString(42) // false
これは、
typeof someValue === "string"
angular.isArray
angular.isArray
関数は、渡されたオブジェクトまたは値がArray
型である場合にのみtrueを返します。
angular.isArray(value)
例
angular.isArray([]) // true
angular.isArray([2, 3]) // true
angular.isArray({}) // false
angular.isArray(17) // false
それは
Array.isArray(someValue)
angular.merge
関数angular.mergeは、宛先オブジェクトを深く拡張するために、ソースオブジェクトからすべての列挙可能なプロパティを取ります。
この関数は、現在拡張されている宛先オブジェクトへの参照を返します
angular.merge(送り先、送り先)
例
angular.merge({}, {}) // {}
angular.merge({name: "king roland"}, {password: "12345"})
// {name: "king roland", password: "12345"}
angular.merge({a: 1}, [4, 5, 6]) // {0: 4, 1: 5, 2: 6, a: 1}
angular.merge({a: 1}, {b: {c: {d: 2}}}) // {"a":1,"b":{"c":{"d":2}}}
angular.isDefinedおよびangular.isUndefined
定義されている場合、関数angular.isDefined
は値をテストします。
angular.isDefined(someValue)
これは、
value !== undefined; // will evaluate to true is value is defined
例
angular.isDefined(42) // true
angular.isDefined([1, 2]) // true
angular.isDefined(undefined) // false
angular.isDefined(null) // true
angular.isUndefined
関数は、値が未定義であるかどうかをテストします( angular.isDefined
と実質的に反対です)
angular.isUndefined(someValue)
これは、
value === undefined; // will evaluate to true is value is undefined
あるいは単に
!angular.isDefined(value)
例
angular.isUndefined(42) // false
angular.isUndefined(undefined) // true
angular.isDate
angular.isDate
関数は、渡されたオブジェクトがDate型の場合にのみtrueを返します。
angular.isDate(値)
例
angular.isDate("lone star") // false
angular.isDate(new Date()) // true
angular.isNumber
angular.isNumber
関数は、渡されたオブジェクトまたは値がNumber型の場合にのみtrueを返します。これには+ Infinity、-Infinity、およびNaNが含まれます。
angular.isNumber(値)
この関数は、型強制を引き起こさない
"23" == 23 // true
例
angular.isNumber("23") // false
angular.isNumber(23) // true
angular.isNumber(NaN) // true
angular.isNumber(Infinity) // true
この関数は、型強制を引き起こさない
"23" == 23 // true
angular.isFunction
関数angular.isFunction
は、渡された値が関数への参照である場合にのみtrueを判定し返します。
この関数は、現在拡張されている宛先オブジェクトへの参照を返します
angular.isFunction(fn)
例
var onClick = function(e) {return e};
angular.isFunction(onClick); // true
var someArray = ["pizza", "the", "hut"];
angular.isFunction(someArray ); // false
angular.toJson
angular.toJson
関数はオブジェクトを取得し、それをJSON形式の文字列にシリアル化します。
ネイティブ関数JSON.stringify
とは異なり、この関数は$$
始まるすべてのプロパティを削除します(角度は通常$$
内部プロパティの前に付けられます)
angular.toJson(object)
ネットワークを経由する前にデータをシリアライズする必要があるため、この関数はJSONに送信するデータを有効にするのに便利です。
この関数は、 .toString
メソッドが動作するのと同様に動作するため、デバッグにも便利です。
例:
angular.toJson({name: "barf", occupation: "mog", $$somebizzareproperty: 42})
// "{"name":"barf","occupation":"mog"}"
angular.toJson(42)
// "42"
angular.toJson([1, "2", 3, "4"])
// "[1,"2",3,"4"]"
var fn = function(value) {return value}
angular.toJson(fn)
// undefined, functions have no representation in JSON
angular.fromJson
angular.fromJson
関数は、有効なJSON文字列を逆シリアル化し、ObjectまたはArrayを返します。
angular.fromJson(string | object)
この関数は文字列だけに限定されず、渡されたオブジェクトの表現を出力することに注意してください。
例:
angular.fromJson("{\"yogurt\": \"strawberries\"}")
// Object {yogurt: "strawberries"}
angular.fromJson('{jam: "raspberries"}')
// will throw an exception as the string is not a valid JSON
angular.fromJson(this)
// Window {external: Object, chrome: Object, _gaq: Y, angular: Object, ng339: 3…}
angular.fromJson([1, 2])
// [1, 2]
typeof angular.fromJson(new Date())
// "object"
angular.noop
angular.noop
は操作を実行しない関数です。何もしない関数の引数を指定する必要がある場合はangular.noop
を渡します。
angular.noop()
angular.noop
の一般的な使い方は、関数以外に何かが渡されたときにエラーを返す関数に空のコールバックを与えることです。
例:
$scope.onSomeChange = function(model, callback) {
updateTheModel(model);
if (angular.isFunction(callback)) {
callback();
} else {
throw new Error("error: callback is not a function!");
}
};
$scope.onSomeChange(42, function() {console.log("hello callback")});
// will update the model and print 'hello callback'
$scope.onSomeChange(42, angular.noop);
// will update the model
その他の例:
angular.noop() // undefined
angular.isFunction(angular.noop) // true
angular.isObject
angular.isObject
は、渡された引数がオブジェクトである場合にのみtrueを返します。この関数は、Arrayに対してもtrueを返し、 typeof null
がobject
あってもnull
に対してfalseを返しobject
。
angular.isObject(値)
この関数は、定義されたオブジェクトを処理する必要があるときにタイプのチェックに役立ちます。
例:
angular.isObject({name: "skroob", job: "president"})
// true
angular.isObject(null)
// false
angular.isObject([null])
// true
angular.isObject(new Date())
// true
angular.isObject(undefined)
// false
angular.isElement
angular.isElement
は、渡された引数がDOM要素またはjQueryラップされた要素である場合にtrueを返します。
angular.isElement(elem)
この関数は、渡された引数がそのように処理される前の要素であるかどうかをチェックするのに便利です。
例:
angular.isElement(document.querySelector("body"))
// true
angular.isElement(document.querySelector("#some_id"))
// false if "some_id" is not using as an id inside the selected DOM
angular.isElement("<div></div>")
// false
angular.copy
angular.copy
関数は、オブジェクト、配列、または値をとり、そのオブジェクトの深いコピーを作成します。
angular.copy()
例:
オブジェクト:
let obj = {name: "vespa", occupation: "princess"};
let cpy = angular.copy(obj);
cpy.name = "yogurt"
// obj = {name: "vespa", occupation: "princess"}
// cpy = {name: "yogurt", occupation: "princess"}
配列:
var w = [a, [b, [c, [d]]]];
var q = angular.copy(w);
// q = [a, [b, [c, [d]]]]
上記の例では、 .equals
等価を値でテストするためangular.equals(w, q)
はtrueと評価されます。 w === q
は、オブジェクトと配列の厳密な比較が参照によって行われるため、falseと評価されます。
角度
angular.identity
関数は、渡された最初の引数を返します。
angular.identity(引数)
この関数は関数型プログラミングに便利です。予想される関数が渡されなかった場合にこの関数をデフォルトとして提供することができます。
例:
angular.identity(42) // 42
var mutate = function(fn, num) {
return angular.isFunction(fn) ? fn(num) : angular.identity(num)
}
mutate(function(value) {return value-7}, 42) // 35
mutate(null, 42) // 42
mutate("mount. rushmore", 42) // 42
angular.forEach
angular.forEach
は、オブジェクトと反復子関数を受け入れます。次に、オブジェクトの各列挙可能なプロパティ/値に対して反復子関数を実行します。この関数は配列に対しても機能します。
Array.prototype.forEach
のJSバージョンと同様継承されたプロパティ(プロトタイププロパティ)を反復処理しませんが、関数はnull
またはundefined
値を処理しないで返します。
angular.forEach(オブジェクト、関数(値、キー){//関数});
例:
angular.forEach({"a": 12, "b": 34}, (value, key) => console.log("key: " + key + ", value: " + value))
// key: a, value: 12
// key: b, value: 34
angular.forEach([2, 4, 6, 8, 10], (value, key) => console.log(key))
// will print the array indices: 1, 2, 3, 4, 5
angular.forEach([2, 4, 6, 8, 10], (value, key) => console.log(value))
// will print the array values: 2, 4, 6, 7, 10
angular.forEach(undefined, (value, key) => console.log("key: " + key + ", value: " + value))
// undefined