При чтении HTML браузер генерирует DOM-модель. При этом большинство стандартных HTML-атрибутов становятся свойствами соответствующих объектов.
Например, если тег выглядит как <body id="page">, то у объекта будет свойство body.id = "page".
Но это преобразование – не один-в-один. Бывают ситуации, когда атрибут имеет одно значение, а свойство – другое. Бывает и так, что атрибут есть, а свойства с таким названием не создаётся.
Если коротко – HTML-атрибуты и DOM-свойства обычно, но не всегда соответствуют друг другу, нужно понимать, что такое свойство и что такое атрибут, чтобы работать с ними правильно.
Ранее мы видели некоторые встроенные свойства DOM-узлов. Но, технически, никто нас ими не ограничивает.
Узел DOM – это объект, поэтому, как и любой объект в JavaScript, он может содержать пользовательские свойства и методы.
Нестандартные свойства и методы видны только в JavaScript и никак не влияют на отображение соответствующего тега.
Обратим внимание, пользовательские DOM-свойства:
Могут иметь любое значение.
Названия свойств чувствительны к регистру.
Работают за счёт того, что DOM-узлы являются объектами JavaScript
Элементам DOM, с другой стороны, соответствуют HTML-теги, у которых есть текстовые атрибуты.
Конечно, здесь речь именно об узлах-элементах, не о текстовых узлах или комментариях.
Доступ к атрибутам осуществляется при стандартных методов:
elem.hasAttribute(name) – проверяет наличие атрибута
elem.getAttribute(name) – получает значение атрибута
elem.setAttribute(name, value) – устанавливает атрибут
elem.removeAttribute(name) – удаляет атрибут
Объяснение:
Прості
Нужно обе переменные разделить на действительную часть и мнимую.
A = A1 + j*A2; A1 = 1; A2 = -2
B = B1 + j*B2; B1 = 1; B2 = 3
И точно также все результаты вычислений делятся на две части.
И каждую скобку записывай в отдельную пару переменных, а на последнем шаге всё сложишь и умножишь.
Можно и подпрограммы сделать на сумму и произведение.
Сумма
S = A + B = (A1 + B1) + j*(A2 + B2); S1 = A1 + B1; S2 = A2 + B2
Произведение
P = A*B = (A1*B1 - A2*B2) + j*(A1*B2 + A2*B1)
P1 = A1*B1 - A2*B2; P2 = A1*B2 + A2*B1
Квадраты
AA = A*A = (A1*A1 - A2*A2) + j*(2*A1*A2)
AA1 = A1*A1 - A2*A2; AA2 = 2*A1*A2
BB = B*B = (B1*B1 - B2*B2) + j*(2*B1*B2)
BB1 = B1*B1 - B2*B2; BB2 = 2*B1*B2