Унарный оператор в javascript

JavaScript
Унарные операторы

Унарный плюс ( + ) предшествует его операнду и оценивает его операнд. Он пытается преобразовать операнд в число, если оно еще не было.

Синтаксис:

Возвращает:

Описание

Унарный плюс ( + ) оператор является самым быстрым (и предпочтительным) способом преобразования чего-либо в число.

  • строковые представления целых чисел (десятичные или шестнадцатеричные) и поплавки.
  • booleans: true , false .
  • null

Значения, которые не могут быть преобразованы, будут оцениваться до NaN .

Примеры:

+42 // 42 +"42" // 42 +true // 1 +false // 0 +null // 0 +undefined // NaN +NaN // NaN +"foo" // NaN +<> // NaN +function()<> // NaN 

Обратите внимание, что попытка преобразования массива может привести к неожиданным значениям возврата.
В фоновом режиме массивы сначала преобразуются в их строковые представления:

[].toString() === ''; [1].toString() === '1'; [1, 2].toString() === '1,2'; 

Затем оператор пытается преобразовать эти строки в числа:

+[] // 0 ( === +'' ) +[1] // 1 ( === +'1' ) +[1, 2] // NaN ( === +'1,2' ) 

Оператор удаления

Оператор delete удаляет свойство из объекта.

Синтаксис:

delete object.property delete object['property'] 

Возвращает:

Если удаление выполнено успешно или свойство не существует:

Если свойство, подлежащее удалению, является собственным неконфигурируемым свойством (его нельзя удалить):

Описание

Оператор delete напрямую не освобождает память. Он может косвенно освобождать память, если операция означает, что все ссылки на свойство исчезли.

delete работы над свойствами объекта. Если свойство с тем же именем существует в цепочке прототипов объекта, свойство будет унаследовано от прототипа.
delete не работает с именами переменных или функций.

Примеры:

// Deleting a property foo = 1; // a global variable is a property of `window`: `window.foo` delete foo; // true console.log(foo); // Uncaught ReferenceError: foo is not defined // Deleting a variable var foo = 1; delete foo; // false console.log(foo); // 1 (Not deleted) // Deleting a function function foo()< >; delete foo; // false console.log(foo); // function foo() < >(Not deleted) // Deleting a property var foo = < bar: "42" >; delete foo.bar; // true console.log(foo); // Object < >(Deleted bar) // Deleting a property that does not exist var foo = < >; delete foo.bar; // true console.log(foo); // Object < >(No errors, nothing deleted) // Deleting a non-configurable property of a predefined object delete Math.PI; // false () console.log(Math.PI); // 3.141592653589793 (Not deleted) 

Оператор типа

Оператор typeof возвращает тип данных неопубликованного операнда в виде строки.

Синтаксис:

Возвращает:

Это возможные возвращаемые значения из typeof :

Тип Возвращаемое значение
Undefined «undefined»
Null «object»
Boolean «boolean»
Number «number»
String «string»
Symbol (ES6) «symbol»
Function объект «function»
document.all «undefined»
Хост-объект (предоставляемый средой JS) Зависит от реализации
Любой другой объект «object»

Необычное поведение document.all с оператором typeof связано с его прежним использованием для обнаружения старых браузеров. Дополнительные сведения см. В разделе Почему document.all определен, но typeof document.all возвращает «undefined»?

Примеры:

// returns 'number' typeof 3.14; typeof Infinity; typeof NaN; // "Not-a-Number" is a "number" // returns 'string' typeof ""; typeof "bla"; typeof (typeof 1); // typeof always returns a string // returns 'boolean' typeof true; typeof false; // returns 'undefined' typeof undefined; typeof declaredButUndefinedVariable; typeof undeclaredVariable; typeof void 0; typeof document.all // see above // returns 'function' typeof function()<>; typeof class C <>; typeof Math.sin; // returns 'object' typeof < /**/ >; typeof null; typeof /regex/; // This is also considered an object typeof [1, 2, 4]; // use Array.isArray or Object.prototype.toString.call. typeof new Date(); typeof new RegExp(); typeof new Boolean(true); // Don't use! typeof new Number(1); // Don't use! typeof new String("abc"); // Don't use! // returns 'symbol' typeof Symbol(); typeof Symbol.iterator; 

Оператор пустоты

Оператор void вычисляет данное выражение и затем возвращает undefined .

Синтаксис:

Возвращает:

Описание

Оператор void часто используется для получения undefined примитивного значения посредством записи void 0 или void(0) . Обратите внимание, что void является оператором, а не функцией, поэтому () не требуется.

Обычно результат выражения void и undefined может использоваться взаимозаменяемо.
Однако в более старых версиях ECMAScript window.undefined может быть назначено любое значение, и по-прежнему можно использовать undefined как имя для переменных параметров функций внутри функций, что нарушает другой код, который полагается на значение undefined .
void всегда будет давать истинное undefined значение.

void 0 также обычно используется в кодировании кода как более короткий способ написания undefined . Кроме того, это, вероятно, более безопасно, так как некоторые другие коды могут быть window.undefined с помощью window.undefined .

Примеры:

function foo() < return void 0; >console.log(foo()); // undefined 

Изменение значения undefined внутри определенной области:

Унарный оператор отрицания (-)

Унарное отрицание ( — ) предшествует его операнду и отрицает его, пытаясь преобразовать его в число.

Синтаксис:

Возвращает:

Описание

Унарное отрицание ( — ) может преобразовывать те же типы / значения, что и оператор унарного плюса ( + ).

Значения, которые не могут быть преобразованы, будут оцениваться до NaN (нет -NaN ).

Примеры:

-42 // -42 -"42" // -42 -true // -1 -false // -0 -null // -0 -undefined // NaN -NaN // NaN -"foo" // NaN -<> // NaN -function()<> // NaN 

Обратите внимание, что попытка преобразования массива может привести к неожиданным значениям возврата.
В фоновом режиме массивы сначала преобразуются в их строковые представления:

[].toString() === ''; [1].toString() === '1'; [1, 2].toString() === '1,2'; 

Затем оператор пытается преобразовать эти строки в числа:

-[] // -0 ( === -'' ) -[1] // -1 ( === -'1' ) -[1, 2] // NaN ( === -'1,2' ) 

Побитовый оператор NOT (~)

Побитовое NOT ( ~ ) выполняет операцию NOT для каждого бита в значении.

Синтаксис:

Возвращает:

Описание

Таблица истинности операции NOT:

1337 (base 10) = 0000010100111001 (base 2) ~1337 (base 10) = 1111101011000110 (base 2) = -1338 (base 10) 

Побитовое число не приводит к: -(x + 1) .

Примеры:

значение (основание 10) значение (основание 2) return (основание 2) return (основание 10)
2 00000010 11111100 -3
1 00000001 11111110 -2
0 00000000 11111111 -1
-1 11111111 00000000 0
-2 11111110 00000001 1
-3 11111100 00000010 2

Логический оператор NOT (!)

Логический NOT ( ! ) Оператор выполняет логическое отрицание выражения.

Синтаксис:

Возвращает:

Описание

Логический NOT ( ! ) Оператор выполняет логическое отрицание выражения.

Булевы значения просто инвертируются !true === false и !false === true .
Небулевые значения сначала преобразуются в булевские значения, а затем отрицаются.

Это означает, что двойное логическое NOT ( !! ) может использоваться для приведения любого значения в boolean:

!!"FooBar" === true !!1 === true !!0 === false 
!'true' === !new Boolean('true'); !'false' === !new Boolean('false'); !'FooBar' === !new Boolean('FooBar'); ![] === !new Boolean([]); !<> === !new Boolean(<>); 
!0 === !new Boolean(0); !'' === !new Boolean(''); !NaN === !new Boolean(NaN); !null === !new Boolean(null); !undefined === !new Boolean(undefined); 

Примеры:

!true // false !-1 // false !"-1" // false !42 // false !"42" // false !"foo" // false !"true" // false !"false" // false !<> // false ![] // false !function()<> // false !false // true !null // true !undefined // true !NaN // true !0 // true !"" // true 

обзор

Унарные операторы — это операторы с одним операндом. Унарные операторы более эффективны, чем стандартные вызовы функций JavaScript. Кроме того, унарные операторы не могут быть переопределены, и поэтому их функциональность гарантирована.

Доступны следующие унарные операторы:

оператор операция пример
delete Оператор delete удаляет свойство из объекта. пример
void Оператор void сбрасывает возвращаемое значение выражения. пример
typeof Оператор typeof определяет тип данного объекта. пример
+ Оператор unary plus преобразует свой операнд в тип Number. пример
Унарный оператор отрицания преобразует свой операнд в число, а затем отрицает его. пример
~ Побитовый оператор NOT. пример
! Логический оператор NOT. пример
  • Начало работы с JavaScript
  • .postMessage () и MessageEvent
  • AJAX
  • API веб-криптографии
  • API вибрации
  • API выбора
  • API состояния батареи
  • API уведомлений
  • Callbacks
  • execCommand и contenteditable
  • IndexedDB
  • JSON
  • Linters — Обеспечение качества кода
  • Loops
  • requestAnimationFrame
  • Timestamps
  • Transpiling
  • WeakMap
  • WeakSet
  • WebSockets
  • Автоматическая точка с запятой — ASI
  • Анти-паттерны
  • Арифметика (математика)
  • Асинхронные итераторы
  • Асинхронные функции (async / await)
  • Атрибуты данных
  • Веб-хранилище
  • Встроенные константы
  • Генераторы
  • геолокации
  • Глобальная обработка ошибок в браузерах
  • Дата
  • Двоичные данные
  • Единичное тестирование Javascript
  • Задавать
  • Зарезервированные ключевые слова
  • Интервалы и тайм-ауты
  • Использование javascript для получения / установки пользовательских переменных CSS
  • история
  • Как заставить итератор использоваться внутри функции асинхронного обратного вызова
  • карта
  • Классы
  • Комментарии
  • Контекст (это)
  • Литералы шаблонов
  • локализация
  • Манипуляция данными
  • Массивы
  • Методы модуляции
  • Модалы — подсказки
  • Модули
  • Назначение деструктуризации
  • наследование
  • обещания
  • Обнаружение браузера
  • Обработка ошибок
  • Объект Navigator
  • Объекты
  • Объем
  • Объявления и задания
  • Операции сравнения
  • Оптимизация звонков
  • отладка
  • Оценка JavaScript
  • Переменное принуждение / преобразование
  • Переменные JavaScript
  • Перечисления
  • Печенье
  • Побитовые операторы
  • Побитовые операторы — примеры реального мира (фрагменты)
  • Поведенческие шаблоны проектирования
  • полномочие
  • получать
  • Пользовательские элементы
  • Последовательности выхода
  • Приставка
  • Проблемы с безопасностью
  • Пространства имен
  • Прототипы, объекты
  • Рабочие
  • Регулярные выражения
  • Свободный API
  • Сети и Getters
  • Символы
  • События
  • События, отправленные сервером
  • Советы по повышению производительности
  • Создание шаблонов проектирования
  • Спецификация (модель объекта браузера)
  • Сравнение даты
  • Строгий режим
  • Струны
  • Та же политика происхождения и перекрестная связь
  • Тильда ~
  • Типы данных в Javascript
  • Унарные операторы
  • условия
  • Файловый API, Blobs и FileReaders
  • функции
  • Функции конструктора
  • Функции стрелки
  • Функциональный JavaScript
  • Цепочка метода
  • Цикл событий
  • экран
  • Эффективность памяти

Источник

Читайте также:  Парсинг sql запроса python
Оцените статью