Многие могут что-то набросать на 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