AngularJS
Встроенные вспомогательные функции
Поиск…
angular.equals
Функция angular.equals
сравнивает и определяет, равны ли 2 объекта или значения, angular.equals
выполняет глубокое сравнение и возвращает true тогда и только тогда, angular.equals
выполняется angular.equals
одно из следующих условий.
угловые.равнения (значение1, значение2)
- Если объекты или значения проходят сравнение
===
- Если оба объекта или значения имеют один и тот же тип, и все их свойства также равны с использованием
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
возвращает true, если объект или значение, присвоенное ему, имеют string
типа
angular.isString (значение1)
Примеры
angular.isString("hello") // true
angular.isString([1, 2]) // false
angular.isString(42) // false
Это эквивалентно выполнению
typeof someValue === "string"
angular.isArray
Функция angular.isArray
возвращает true тогда и только тогда, когда объект или значение передано ему типа Array
.
angular.isArray (значение)
Примеры
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
возвращает true тогда и только тогда, когда объект, переданный ему, имеет тип Date.
angular.isDate (значение)
Примеры
angular.isDate("lone star") // false
angular.isDate(new Date()) // true
angular.isNumber
Функция angular.isNumber
возвращает true тогда и только тогда, когда объект или значение, переданное ему, имеет тип Number, это включает в себя + 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 (п)
Примеры
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 и возвращает объект или массив.
angular.fromJson (строка | объект)
Обратите внимание, что эта функция не ограничивается только строками, она выводит представление любого переданного ей объекта.
Примеры:
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 тогда и только тогда, когда переданный ей аргумент является объектом, эта функция также вернет true для массива и вернет значение false для null
даже если typeof null
является 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
возвращает true, если переданный ему аргумент представляет собой элемент DOM или элемент, обернутый jQuery.
angular.isElement (эль)
Эта функция полезна, чтобы набрать проверку, если переданный аргумент является элементом перед его обработкой как таковым.
Примеры:
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]]]]
В приведенном выше примере angular.equals(w, q)
будет оцениваться как истинное, потому что .equals
проверяет равенство по значению. однако w === q
будет оцениваться как false, потому что строгое сравнение между объектами и массивами выполняется по ссылке.
angular.identity
Функция 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
принимает объект и функцию итератора. Затем он запускает функцию итератора над каждым перечислимым свойством / значением объекта. Эта функция также работает с массивами.
Подобно JS-версии Array.prototype.forEach
Функция не выполняет итерацию по унаследованным свойствам (свойства прототипа), однако функция не будет пытаться обрабатывать значение 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