2. Null - це об'єкт?
3. NaN! == NaN
Ми можемо припустити, що NaN посилається на значення, яке не є дозволеним числом. Проблема полягає в тому, що NaN нічому не дорівнює, в тому числі і самому собі.
Якщо Ви хочете перевірити, чи має змінна значення Nan. то потрібно використовувати функцію isNaN ().
4. Глобальні змінні.
5. Рядок userAgent містить Mozilla. Цікаво чому?
Зауважте: на початку рядка варто: Mozilla / 5.0. Чому ж браузер Safari ідентифікується як заснований на Mozilla? Хоча в подальшому відбувається корекція ідентифікації, немає пояснень, чому продовжується введення в оману програмістів. Насправді, Ви можете виявити, що більшість браузерів ідентифікують себе як Mozilla. Відповідь на питання, чому так відбувається, можна дати взлянув на десять років назад. І основною причиною є не помилка, а ряд непереборних обставин.
Для тих, хто не знає, рядок userAgent просто ідентифікує браузер і його версію. Наприклад, перший браузер Mosaic має такий рядок userAgent.
Сенс простежується дуже чітко. І коли Netscape вийшло на ринок, вони використовували формат Mosaic і додали секцію кодування.
Продовження відмінне. Проблеми почалися, коли на ринку з'явився новий гравець - здогадайтеся який - Internet Explorer 3. Коли він стартував, Netscape був найпопулярнішим доступним браузером. Насправді, багато серверів і програм використовували рядок userAgent для ідентифікації Netscape. Хоча зараз це викликає гарячі суперечки, але тоді, якби IE використовувало свою власну рядок userAgent. наприклад таку:
Такий хід поставив би IE 3 в дуже збиткове становище, тому що Netscape вже ідентифікувався більшістю серверів. Тому розробники вирішили ідентифікувати продукт Microsoft як браузер Mozilla, а потім додати мітки для Internet Explorer.
В наші дні детекция за допомогою рядка userAgent варто останньої в списку завдань. Тому ставлення до неї відповідне. Ви можете виявити, що більшість браузерів слід традиції IE ідентифікувати себе як Mozilla, і причиною тому є ланцюгова реакція розробників.
6. Невідповідність області видимості
Розглянемо наступний код:
Причина того, що foo (bar.method) не виводить такої ж результат, полягає в тому, що функція методу викликається як метод об'єкта вікна, а не bar. Для того, щоб виправити становище ми повинні викликати bar.method () через виклик анонімної функції.
7. Використання побітових операторів.
- НЕТому замість використання як "І", і | як "АБО" слід використовувати і ||.
8. Занадто багато логічних значень false
Зверніть увагу, що всі інші значення позначають true.
9. Він робить помилки в арифметичних операціях.
10. Вибір стилю кодування не залежить від Вас!
Коли справа доходить до кодування, то починається використання свого власного стилю. Багато програмістів вважають за краще ставити скобочки на одному рядку з оператором, інші вважають за краще переносити на наступний рядок:
Розглянемо наведені вище вирази. Чи вірите Ви чи ні, але вони НЕ ідентичні. Додайте наступні рядки на якусь сторінку HTML.
Код просто створює змінну foo. якої присвоюється повертається об'єкт. Коли ми викликаємо alert (foo.a). то очікуємо побачити вікно повідомлення із значенням b. Тепер зрушимо відкривається дужку від виразу return на один рядок вниз:
Якщо Ви запустите сторінку в браузері знову, то получити в вікні повідомлень інструменту розробника повідомлення про помилку, таке як "foo is undefined". "І в чому справа.
Сподіваюся, що урок був корисний для Вас!
За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!
Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!
Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.
Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!