Многие могут что-то набросать на js, но, как мне кажется, уровень понимания языка у некоторых близок к моему :( В общем, сборник вопросов и ответов, которые иногда возникают:
Определение функций
Кто-то пишет так:
В чем разница? В том, что определением функции является только второе. Первое - объявление переменной, значением которой является анонимная функция.
Соответственно, функция будет известна уже в parse-time, а вот переменная появится только при run-time:
Определение функций
Кто-то пишет так:
var functionOne = function() { // Some code };А кто-то так:
function functionTwo() { // Some code }
В чем разница? В том, что определением функции является только второе. Первое - объявление переменной, значением которой является анонимная функция.
Соответственно, функция будет известна уже в parse-time, а вот переменная появится только при run-time:
<script> // Error functionOne(); var functionOne = function() { } </script> <script> // No error functionTwo(); function functionTwo() { } </script>
JSON и массивы
Задача: сериализовать данные в json так, чтобы ключом был индекс. Должна получиться строка вида
"{"0":{"name":"Имя1"},"1":{"name":"Имя2"}}"
Если сериализовать просто массив, то получится [{"name":"Имя1"},{"name":"Имя2"}].
Надо сериализовать ассоциативный массив - массив с ключами (а-ля хэшмэп). Объекты тоже являются ассоциативными массивами, так как каждое свойство ассоциировано с именем, через которое можно получить доступ к нему. Тут мы будем делать через массив и квадратные скобки, потому как придумать через объект и точку я не смогла.
ту би кантиньют...
Задача: сериализовать данные в json так, чтобы ключом был индекс. Должна получиться строка вида
"{"0":{"name":"Имя1"},"1":{"name":"Имя2"}}"
Если сериализовать просто массив, то получится [{"name":"Имя1"},{"name":"Имя2"}].
Надо сериализовать ассоциативный массив - массив с ключами (а-ля хэшмэп). Объекты тоже являются ассоциативными массивами, так как каждое свойство ассоциировано с именем, через которое можно получить доступ к нему. Тут мы будем делать через массив и квадратные скобки, потому как придумать через объект и точку я не смогла.
var folderNames = new Object(); for (var i = 0; i < folders.size(); i++) { var fldName = folders[i].innerText; folderNames[i.toString()] = { name: fldName }; } var foldersJson = JSON.stringify(folderNames);
ту би кантиньют...
Comments
Post a Comment