Побитовые (порвзрядные) операторы применяются к целочисленным значениям и возвращают целочисленные значения. При их выполнении операнды предварительно приводятся к двоичной форме представления, в которой число является последовательностью из нулей и единиц длиной 32. Эти нули и единицы называются двоичными разрядами, или битами. Далее производится некоторое действие над битами, в результате которого получается новая последовательность битов. В конце концов эта последовательность битов преобразуется к обычному целому числу — результату побитового оператора.
Оператор | Название | Левый операнд | Правый операнд |
& | Побитовое И | Целое число | Целое число |
| | Побитовое ИЛИ | Целое число | Целое число |
^ | Побитовое исключающее ИЛИ | Целое число | Целое число |
~ | Побитовое НЕ | — (Нет) | Целое число |
<< | Смещение влево | Целое число | Кол-во битов, на которое производится смещение |
>> | Смещение вправо | Целое число | Кол-во битов, на которое производится смещение |
>>> | Заполнение нулями при смещении вправо | Целое число | Кол-во битов, на которое производится смещение |
Операторы &, |, ^, ~ – не логические операторы, их область действия – биты. Оператор ~ изменяет значение бита на противоположное: 0 на 1, а 1 на 0.
А так работают операторы &, |, ^.
X | Y | X&Y | X|Y | X^Y |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 0 | 0 | 0 | 0 |
Рассмотрим пример.
a=2&3 //результат 2
a1=2|3 /результат 3
a2=4<<5 //результат 128
a3=3>>>5 //результат 0
a4=5^7 //результат 2
a5=6>>2 //результат 1
Проверим.
document.write(a+"<br>"+a1+"<br>"+a2+"<br>"+a3+"<br>"+a4+"<br>"+a5)
В окне веб-браузера это будет выглядеть ТАК.
delete – оператор удаления свойств объекта. Используется для удаления элементов из массива. Синтаксис:
delete элемент
При удалении элемента массива удаляется его индекс, но оставшие элементы сохраняют свой преждние индексы, при этом длина массива не меняется.
Рассмотрим пример.
planets=new Array("Меркурий", "Венера", "Земля", "Марс")
a=planets.length
delete planets[1]
a1=planets.length
delete planets[3]
a2=planets.length
Проверим.
document.write(a1+"<br>"+a2+"<br>"+planets[0]+"<br>"+ planets[1]+"<br>"+ planets[2]+"<br>"+ planets[3])
В окне веб-браузера это будет выглядеть ТАК.
Использование оператора delete не приводит к немедленному освобождению памяти. Решение об освобождении памяти принимается так называемым ядром JavaScript, а пользовательская программа лишь создает к этому предпосылки, но не может контролировать этот процесс абсолютно.
in – оператор проверки наличия свойств. Позволяет проверить имеется ли некоторые свойство или метод у того или иного объекта. Левый операнд представляет собой ссылку в виде строки на интересующее нас свойство или метод, а правый операнд — объект. Ссылка на метод содержит лишь его название без круглых скобок. Если свойство или метод содержится в объекте, то возвращается true, иначе — false. Отсюда следует, что оператор in можно применять в условных выражениях (в операторах if, switch, for, while, do-while).
Рассмотрим пример.
Объект document, представляющий загруженный в браузер HTML-
документ, имеет метод write. Чтобы убедиться в этом, следует написать выражение:
"write" in document // значение равно true
Проверим.
document.write("write" in document )
В окне веб-браузера это будет выглядеть ТАК.
Создадим объект и проверим в нем наличие некоторых свойств.
function car(name,model,color) {
this.name=name //название
this.model=model //модель
this.color=color //цвет
}
acar=new car("Nissan", "Almera", "green")
a="name" in acar //true
a1="model" in acar //true
a2="color" in acar //true
a3="brec" in acar //false
Проверим.
document.write(a+"<br>"+a1+"<br>"+ a2+"<br>"+ a3)
В окне веб-браузера это будет выглядеть ТАК.
instanceof – оператор проверки принадлежностии объекта модели.
Позволяет проверить, принадлежит ли некоторый объект объектной модели JavaScript. Левый операнд представляет проверяемое значение, а правый — ссылку на корневой объект, такой как Array, String, Date и т. п. Выражение с оператором instanceof возвращает true или false и, таким образом, может использоваться в условных выражениях (в операторах if, switch, for, while, do-while).
Рассмотрим пример.
a=new Array(1,2,3)
b=a instanceof Array //true
b1=Array instanceof Object //true
b2=Array instanceof String //false
Проверим.
document.write(b+"<br>"+b1+"<br>"+b2)
В окне веб-браузера это будет выглядеть ТАК.