Маленькі хитрощі javascript, або пишемо скрипти по-новому

Цілком можливо, що після цього і наступного Набла ви відчуєте себе нерозумно. Ви будете відчувати себе так само, як програміст для Windows, все життя малював кола, прямокутники, кнопки і т. Д. Вручну (по точках - наприклад, через DirectDraw), і раптом виявив, що в цій ОС існує купа готових засобів для відтворення елементів інтерфейсу.

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

оператор || повертає свій другий аргумент, якщо перший виявився «помилковим» (false, null, "", 0), і перший - в іншому випадку. оператор повертає свій другий аргумент, якщо перший виявився справжнім, і перший - якщо хибним.

Але що являє собою об'єкт? Як не дивно, будь-який об'єкт виглядає в програмі як хеш. Так-так, той самий хеш, який є і в мові Perl. І створюється він точно таким же оператором, тільки замість => використовується двокрапка:

Властивості (і методи, до речі, теж) об'єкта - це просто елементи хеша. Для звернення до них можна використовувати два різновиди синтаксису:

А ось тепер - увага. ці два способи повністю ідентичні! Немає ніякої різниці, чи звертаєтеся ви до хешу як hash.element або як hash [ 'element']. Навіщо ж тоді потрібен другий варіант? Неважко здогадатися: ми можемо не знати в явному вигляді ім'я ключа, до якого хочемо звернутися:

Хеши можна створювати і поелементно:

Ключі хеша, звичайно, можуть являти собою і звичайне число:

Проте, вираз hash.0 замість hash [0] не працює (хоча IE іноді має звичай показувати такі повідомлення про помилку:

Насправді це не зовсім так, тому що команди for (var k in arr) alert (k) виводять лише числові ключі масиву, але не властивість length. Проте, в першому наближенні гіпотезу про походження масивів цілком можна прийняти.

роздруківка

Якщо спробувати роздрукувати весь масив командою alert (arr). то будуть відображені всі його елементи. Це досить зручний трюк, якщо в налагоджувальних цілях треба вивести значення декількох змінних, але лінь писати плюсики і коми в лапках:

Команда на кшталт alert ([1,2, [4,5], 6]). як це не сумно, виводить всі елементи масиву в купу, не звертаючи уваги на вкладеність.

На жаль, роздрукувати хеш таким способом не вийде: буде виведений рядок [object Object] (точний вид залежить від браузера). Для того, щоб все-таки налагоджувати програми зі складними хешамі, я написав наступну функцію:


Warning. mysql_connect () [function.mysql-connect]: Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 11

Warning. mysql_db_query () [function.mysql-db-query]: Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning. mysql_db_query () [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning. mysql_fetch_array (): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/books/show2b.php on line 30
Дізнайся про що ти насправді зараз думаєш тут.


[An error occurred while processing this directive]


Warning. mysql_connect () [function.mysql-connect]: Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 91

Warning. mysql_db_query () [function.mysql-db-query]: Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning. mysql_db_query () [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning. mysql_fetch_array (): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/news/worldnews.php on line 95

Схожі статті