Учебник js, cards 1..60 Flashcards
https://learn.javascript.ru
Что умеет JavaScript?
1) Создавать новые HTML-теги, удалять существующие, менять стили элементов, прятать, показывать элементы и т.п. 2) Реагировать на действия посетителя, обрабатывать клики мыши, перемещения курсора, нажатия на клавиатуру и т.п. 3) Посылать запросы на сервер и загружать данные без перезагрузки страницы (эта технология называется “AJAX”). 4) Получать и устанавливать cookie, запрашивать данные, выводить сообщения… …и многое, многое другое!
Что НЕ умеет JavaScript?
1) JavaScript не может читать/записывать произвольные файлы на жесткий диск, копировать их или вызывать программы. Он не имеет прямого доступа к операционной системе. Современные браузеры могут работать с файлами, но эта возможность ограничена специально выделенной директорией – «песочницей». Возможности по доступу к устройствам также прорабатываются в современных стандартах и частично доступны в некоторых браузерах. 2) JavaScript, работающий в одной вкладке, не может общаться с другими вкладками и окнами, за исключением случая, когда он сам открыл это окно или несколько вкладок из одного источника (одинаковый домен, порт, протокол). Есть способы это обойти, и они раскрыты в учебнике, но они требуют специального кода на оба документа, которые находятся в разных вкладках или окнах. Без него, из соображений безопасности, залезть из одной вкладки в другую при помощи JavaScript нельзя. 3) Из JavaScript можно легко посылать запросы на сервер, с которого пришла страница. Запрос на другой домен тоже возможен, но менее удобен, т. к. и здесь есть ограничения безопасности.
Основные фишки HTML5?
1) Чтение/запись файлов на диск (в специальной «песочнице», то есть не любые). 2) Встроенная в браузер база данных, которая позволяет хранить данные на компьютере пользователя. 3) Многозадачность с одновременным использованием нескольких ядер процессора. 4) Проигрывание видео/аудио, без Flash. 5) 2D и 3D-рисование с аппаратной поддержкой, как в современных играх.
Какие основные справочники по стандарту?
1) “RegExp MDN” 2) “RegExp dottoro” 3) “RegExp site:javascript.ru” 4) “document.cookie site:w3.org” …А самые последние версии стандартов – на http://dev.w3.org и на http://whatwg.org/specs/. 5) “innerHeight quirksmode” 6) “caniuse geolocation”
Является ли null «ссылкой на нулевой адрес/объект»
Значение null не является «ссылкой на нулевой адрес/объект» или чем-то подобным. Это просто специальное значение. Оно присваивается, если мы хотим указать, что значение переменной неизвестно.
Что такое undefined?
Значение undefined означает «переменная не присвоена».
Какие способы вызвать диалоговое окно кроме alert есть в js?
«prompt(вопрос[, по_умолчанию])» Задать вопрос и возвратить введённую строку, либо null, если посетитель нажал «Отмена». «confirm(вопрос)» Задать вопрос и предложить кнопки «Ок», «Отмена». Возвращает, соответственно, true/false. «alert(сообщение)»
Чему равен a в следующих неравенствах? var a = xxx; alert( a > 0 ); // false alert( a >= 0 ); // true alert( a == 0 ); // false
alert( null > 0 ); // false, т.к. null преобразовано к 0 alert( null >= 0 ); // true, т.к. null преобразовано к 0 alert( null == 0 ); // false, в стандарте явно указано, что null равен лишь undefined
Сравнение строк, чему равно alert( ‘а’ > ‘Я’ )?
Сравнение строк – лексикографическое, символы сравниваются по своим unicode-кодам. Поэтому получается, что строчные буквы всегда больше, чем прописные: alert( ‘а’ > ‘Я’ ); // true
Чему равно alert( 1 && 2 && 3 )?
3 Результатом логического оператора служит последнее значение в коротком цикле вычислений значения. Выражения хоть и интерпретируются как логические, но то, которое в итоге определяет результат, возвращается без преобразования.
в конструкции switch какой тип сравнения используется в каждом case?
===
что такое break outer; внутри цикла?
Переход на внешний label. Синтаксис: «имя_метки:», ставится она только перед циклами и блоками, например: outer: for(;;) { … for(;;) { … break outer; } } Переход на метку возможен только изнутри цикла, и только на внешний блок по отношению к данному циклу. В произвольное место программы перейти нельзя.
Что вернет функция без return внутри? function f() { } alert( f() ); // ???
function f() { } alert( f() ); // undefined
Будет ли работать код: function f() { for(var i = 0; i != 1; i++) { if(i == 0) var result = -1; else result = 1; } return result; } alert(f());
Да, вернет -1; Переменные, объявленные через var внутри функции, видны везде внутри этой функции, блоки if, for и т.п. на видимость не влияют.
В чем отличия Function Declaration от Function Expression?
Функции, объявленные через Function Declaration, отличаются от Function Expression тем, что интерпретатор создаёт их при входе в область видимости (в начале выполнения скрипта), так что они работают до объявления.
Можно ли сделать рекурсию на Function Expression?
var factorial = function me(n) { return (n == 1) ? n : n * me(n - 1); } alert( factorial(5) ); // 120 alert( me ); // ошибка, нет такой переменной
что вернет alert( +”12test” );
NaN ошибка парсинга
как проверить результат в переменной n на NaN?
isNaN(n) или n !== n или !isFinite(n) // проверяет на NaN и на +/- Infinite
результаты операций: alert( +” -12” ); alert( +” \n34 \n” ); alert( +”” ); alert( +”1 2” );
alert( +” -12” ); // -12 alert( +” \n34 \n” ); // 34, перевод строки \n является пробельным символом alert( +”” ); // 0, пустая строка становится нулем alert( +”1 2” ); // NaN, пробел посередине числа - ошибка
alert( ‘12.34’ / “-2” );
// -6.17
для css что вернет alert(+”12px”)?
// NaN
как распарсить 12px чтобы не было ошибки?
alert( parseInt(‘12px’) ); // 12
alert( parseInt(‘12px’) ) alert( parseFloat(‘12.3.4’) ) alert( parseInt(‘a123’) );
alert( parseInt(‘12px’) ) // 12, ошибка на символе ‘p’ alert( parseFloat(‘12.3.4’) ) // 12.3, ошибка на второй точке alert( parseInt(‘a123’) ); // NaN
Смысл записи? var x = prompt(“Введите значение”, “-11.5”); if (isNaN(x))
var x = prompt(“Введите значение”, “-11.5”); if (isNaN(x)) { alert( “Строка преобразовалась в NaN. Не число” ); } else { alert( “Число” ); }