Гозар бред, это в любом случае выражение
{}-это отдельная инструкция для объедения других инструкций. |
в таком случае это тоже что написать:
"x":5, один фиг это тоже нарушение синтаксиса. |
Да блин {} тут не используется как инструкция объеденения. Это часть синтаксиса.
|
Цитата:
https://developer.mozilla.org/En/Cor...lock_Statement |
кстати, раз область видимости одна, то и смысла писать "блочными конструкциями" в js нету. Это я так для тех у кого с английским плохо.
|
Gozar, смысл есть, если использовать let.
|
Цитата:
|
Есть смысл, метки
|
Цитата:
|
это ваше дело
|
Цитата:
|
Цитата:
var x = 5; var y = 1; if((x==5)&&(y==1)) x+=7,y=2,z=18; alert([x,y,z]); |
Цитата:
|
ну вы тут и понаобсуждали
Цитата:
Цитата:
Цитата:
p.s. конечно, интересно, почему создатели языка сделали именно такую грамматику. Но только это уже скорее не из области программирования, а из области написания компиляторов/интерпретаторов ;) |
Да, как уже было отмечено (Kolyaj), в данном случае получается блок, а не инициализатор объекта (кстати, {} и [] правильно называются инициализатор объекта (object initializer) и инициализатор массива (array initializer) соответственно, а не литерал объекта, литерал массива).
Цитата:
{x: 10}
Равносильно:
{ // блок
x: // метка
10; // выражение
}
Результатом вычисления этого блока будет вычисление выражения, т.е. 10. В случае:
{"x": 10}
опять имеем блок, но с неправильной меткой - ошибка синтаксиса. В случае:
{x: funciton () {}}
имеем блок с правильной меткой, но с ошибочным statement-ом. Это равносильно простой записи:
funciton () {} // Syntax Error
которая будет являться FunctionDeclaration (FD) без имени, что ошибка. Поэтому:
{x: funciton a() {}} // OK
Но, за исключением того, что все браузеры, кроме Firefox трактуют эту функцию, как FD, которая будет создана ещё при входе в контекст (грубо говоря - доступна до объявления); Firefox же имеет своё расширение - FunctionStatement (FS), что означает, что функции в виде FD доступны в statement-ах и будут, правильно, созданы в рантайме (при интерпретации):
alert(a); // "a" is not defined - в FF, function - в остальных
{x: funciton a() {}}
alert(a); // function - везде (уже доступна для FF)
Можно к явному виду FunctionExpression (FE) привести, тогда функция будет создана в рантайме (кроме багов в IE и именованной FE):
{x: (funciton () {})} // OK
{x: (funciton a() {})} // OK, но в IE - будет FD+FE
|
Спасибо
|
А еще можно a=function(){}
|
А я на сайте через winamp)
|
А еще можно выучить синтаксис и не парить себе мозг почему так, а не так. ;)
|
var o={};
Object.prototype.p=3.14;
alert(o.p);
for(sv in o){
alert(o[sv]);
}
alert(o.propertyIsEnumerable("p"));//false?!!
Почему false выходит? Ведь данный метод возвращает true если в объекте есть свойство и если оно перечисляется циклом for\in . |
https://developer.mozilla.org/en/Cor...tyIsEnumerable
Цитата:
|
ясно
|
var table = new Array(11); // В таблице 11 строк
for(var i = 0; i < table.length; i++)
table[i] = new Array(11); // В каждой строке 11 столбцов
for(var row = 0; row < table.length; row++) {
for(col = 0; col < table[row].length; col++) {
table[row][col] = row*col;
}
}
Скрипт таблицы умножения. Из книги Дэвида. Когда менял скрипт заметил что если поставить for(var i = 0; i <= table.length; i++) Браузер намертво вис, почему просто не выдавал ошибку? |
var table = new Array(11); table[11] = 1; alert(table.length); table[12] = 1; alert(table.length);table.length в цикле увеличивается на 1, поэтому из цикла выйти невозможно. |
Как до меня сразу не дошло)
+ вам) |
Знает кто алгоритм работы Array.sort()? Он каждый элемент с каждым сравнивает или как.
|
Цитата:
|
Это что?=)
|
Классический алгоритм сортировки. http://ru.wikipedia.org/wiki/Quicksort
|
Цитата:
|
Мараторий я понял просто хотел уточнить.
Коляй на каком языке статья? У меня вместо букв квадратики |
Цитата:
|
Странно. Может с кодировкой что.
В мозиле норм. Спасибо за ссылку |
Так вообще можно объекты инициализировать?
<script>
var test = {'0':[1,4]};
var test1 = {0:[4,7], 1:[6, 8]};
//При создании объекта таким образм имя свойства представляет собой
//строку?
//alert(test.0[0]);//error
//свойства объектов (в "варианте" object.property) представляет собой идентификатор
// => так получить к нему доступ нельзя, недопустимое имя идентификатора
//Можно только через object.['property']
alert(test['0'][1]);//4
//число в первом нолике сначала преобразуется в строку.
alert(test[0][0]);//1
</script>
|
Цитата:
|
| Часовой пояс GMT +3, время: 17:48. |