где еще используется VAR ?
1) создание глобальных и локальных переменных {функций}
2) локальные переменные в циклах for и for in ... |
вопрос какой-то странный.
var используется при создании переменных. и почему вы разделяете локальные переменные и локальные переменные в циклах? |
Вся суть в том что var задает область видимости переменной в сочетании с замыканиями это простой понятный и очень мощный инструмент.
|
Цитата:
спасибо :thanks: но я не об этом про локальные переменные скрытые в функциях и циклах for / for in я всё понимаю вопрос - где еще бывают ли |
var используется везде. Вот единственный ответ на ваш вопрос.
Вот не используется var только в одном случае, для создания переменных в глобальной области видимости. И то в современном js использовать глобальную область для чего либо кроме неймспейсов не принято. В остальных случаях используется var. Кстати в отличие от других языков локальные переменные задаются всегда на уровне функции. Т.е. даже если вы задаёте переменную в цикле она доступна и далее в функции: (function(){ for(var i = 0; i < 2; i++) {}; alert(i); }())потому ваш вопрос особенно абсурден. P.S. Для полной картины стоит сказать что js не стоит на месте, и в современных браузерах уже доступны помимо var: let и const, первый создаёт переменную на уровне блока, второй, соответственно, константу. |
Цитата:
БульVAR VARVAR :) |
Цитата:
Возможно поможет статья http://javascript.ru/basic/closure#scope |
ну я вроде правильно мыслю - в глобальном пространстве не использовать var
а только в функциях и циклах больше то негде же Цитата:
|
Если цикл внутри глобальной области видимости - переменная создается в глобальной области видимости.
Ты, по-моему, мудришь. var - это просто объявление переменной. Вот в си есть int, char, float, double, а тут только var, ибо типизация в javascript динамическая. Видна эта переменная будет в той области видимости, в которой она объявлена, как и в том же си. Область видимости в javascript задается функциями, а не блоками, как в си, потому объявленная в цикле переменная будет видна в той же функции, где распологается сам цикл, да. Используется var, разумеется, везде. Как ты иначе собираешься объявлять переменные? |
Цитата:
|
В компилируемых языках переменные создают реальные объекты в js переменные это всегда свойства какого либо объекта любое объявление var расширяет скоп(специальный объект) текущей функции
т.е. все переменные находятся в одной большой древовидной структуре |
Цитата:
|
Цитата:
Цитата:
"use strict"; try { somevar = 100; } catch (e) { alert(e); } Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Erolast, забей на него, каждый месяц на JS.ru появляется очередной диванный теоретик, который всех учит как надо писать код :)
ЗЫ: надо бы создать раздел в форуме: "Диванные теории". |
Цитата:
|
Цитата:
|
Цитата:
это же прелесть жаваскрипта - в возможности простого объявления переменных следовательно вопрос - ограничивать ли себя строгим режимом? кому это нафиг нужно? что за странное ожидание апокалипсиса запрещающего тебе синтаксический сахар неужели так будет что нельзя будет написать создавать переменную просто так - this.x зачем тогда оператор удаления |
Цитата:
и диванное же программирование геополитики |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
и я хочу понять откуда ноги растут пжста подробнее расскажи на примере синтаксисов кстати - var - с его помошью также можно засрать глобальное пространство |
как я понимаю - var - он для функций, локальная переменная
нет смысла его использовать в глобальном пространстве, он только для функция для скрытия области видимости для создания именованых контейнеров в глобале используется глобальный метод: Object.defineProperty(объект, контейнер, значение) или синтаксический сахар: объект.контейнер = значение осталось лишь понять - запрещать ли себе использование этого сахара в ожидание наступающего строгого апокалипсиса сука дурдом глобальный... как же учить язык когда говорят - "на тебе такую функциональность но лучше ее не используй" |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
также замыканиями чудовищно усложняется по сути простейший язык |
Цитата:
Цитата:
варом создаю глобальные переменные, и постепенно образуется бардак то есть вар это не решение проблемы засирания, это другая история |
Пришли два пацана на форум программистов и начали всех учить правильному коду. Збс.
|
Цитата:
вот ты мне скажи - зачем разделять переменные от свойств вот балин не врубаюсь локальные переменные в области видимости функции - варом все остальные переменные так или иначе все располагаются в иерархии глобального объекта - их можно создавать методом добавитьСвойство и удалять и всё |
Тебе объяснили эти основы, я лично аж несколько раз. var использовать надо обязательно, ибо это стандарт. Ты с foo напару упорно твердишь, что мы тут все неправы и он не нужен. Прелестно, чо.
|
Цитата:
|
Цитата:
создавать можно и Варом и методом добавтьСвойство - результат одинаковый за исключением параметра Неудаляемый |
Цитата:
counterMaker=function(start){return function(){console.log(start++)}} counter=counterMaker(5) counter() counter() counter() //--------------\ 5 6 7 Это ф-ция с состоянием, и она не засирает глобал, хотя никакого вар тут нет, синтаксически. Все проблемы от непонимания инструмента. |
Цитата:
|
Цитата:
1) иерархия объектов внутри глобального объекта (создаются методом добавитьСвойство) 2) локальные переменные подпрограмм (создаются Варом) вот это настоящая правда-истина |
Цитата:
Цитата:
var some_object = {}; some_object.property = 10; |
Цитата:
о чем мы спорим? |
Часовой пояс GMT +3, время: 21:03. |