[noob][javascript] грамотность написания
2) ; не обязательна вообще
3) good practice - {} всегда, за исключением однострочных if'ов
if (condition)
{
var1 = 'foo'
var2 = 'foo2'
}
if (condition) var = 'foo'
http://stackoverflow.com/a/1834674
В случае именной функции ; не нужна, т.е. лучше не писать.
В случае анонимной функции лучше писать, ибо возможны неприятные баги:
2) В случае именной функции ; не нужна, т.е. лучше не писать.
В случае анонимной функции лучше писать, ибо возможны неприятные баги:
var myFn = function {
alert("Surprise!");
} // <-- No semicolon!
(function {
//...
};
1) есть ли разница в написании:
code:
function myFunction(vars) {code}
и
code:
var myFunction = function(vars) {code}
Первый вариант эквивалентен
myFunction = function(vars) {code}
Этот код кладет функцию в глобальный объект, что не очень хорошо. Желательно, чтобы такого кода не было, функции должны быть распределены по классам и модулям.
Советую использовать библиотеку require.js или аналог.
2) после блоков "{}" не ставятся ";", но в случае присваивания анонимной функции переменной (встречала в примерах) ее ставят.
Настоятельно рекомендую использовать jslint. Все, что пропускает jslint, хорошо, что не пропускает, плохо.
тут представлены популярные соглашения о написании js-кода и приведено их сравнение.
Может пригодиться: Действительно ли есть опасность неправильного выполнения при отсутствии "{}"?
function foo(x){
if (x>0)
if (x<2) return 1;
else
return 0;
return 100500;
}
что вернет вызов:
?
foo(2);
После этого предположила бы, что 0.
Вы такие милые! А мне сказали, что вы меня с моими нубовопросами на части порвете.
require.js пока не пробовала. jslint ругается чуть ли не на каждую строку (отступы не те, использовать строгий синтаксис, прочее но вещь полезная (правда этот весь код разбирать не хочет, останавливается на n%).
Winning style — в закладки.
выглядит, как попытка разыграть.ну вот я раз и разыграл себя: написал внешний if-else, потом добавил внутренний if и долго думал что же не так )
А мне сказали, что вы меня с моими нубовопросами на части порвете.А ты уже расслабилась...
Первый вариант эквивалентенНеправда.
myFunction = function(vars) {code}
Этот код кладет функцию в глобальный объект, что не очень хорошо. Желательно, чтобы такого кода не было, функции должны быть распределены по классам и модулям.
function a {
function x {
...
}
}
x // Будет ошибка тут функцию x не видно
Главная разница во времени создания.
http://learn.javascript.ru/function-declaration-expression
можно писатьМожно, но когда ты захочешь добавить ещё одно выражение, то придётся добавлять и скобки, например
if (!MyVar)
doSomething(vars);
else
doSomethingElse(vars);
if (!MyVar)
console.log(vars); // ooops
doSomething(vars);
else
doSomethingElse(vars);
А вообще много есть у Крокфорда в приложении к его Javascript: The Good Parts
Главная разница во времени создания.
Так и есть, спасибо за информацию.
Оставить комментарий
TeridaX
Здравствуйте, доброфорумчане-девелоперы (хотя подозреваю, что троллодевелоперы все равно влезут).Практикую js, и возникло несколько вопросов, не подскажете?
В основном по блокам и точкам с запятыми.
1) есть ли разница в написании:
и
2) после блоков "{}" не ставятся ";", но в случае присваивания анонимной функции переменной (встречала в примерах) ее ставят.
а) Обязателен ли знак?
б) Если нет, лучше его ставить везде или нигде?
3) В случае условных операторов, читала, что при однострочном выполнении блок из "{}" не обязателен.
Т.е. вместо
можно писать
Потом встретила при просмотре примеров мнение, что лучше всегда ставить "{}". Мол, есть какие-то особые случаи...
а) Действительно ли есть опасность неправильного выполнения при отсутствии "{}"?
б) Нужны ли ";" в таких однострочных выражениях (как с применением "{}", так и без).
Заранее спасибо!
П.С.: Прошу троллей обходить тред лесом.