Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   где еще используется VAR ? (https://javascript.ru/forum/misc/48246-gde-eshhe-ispolzuetsya-var.html)

MallSerg 26.06.2014 23:04

В компилируемых языках переменные создают реальные объекты в js переменные это всегда свойства какого либо объекта любое объявление var расширяет скоп(специальный объект) текущей функции
т.е. все переменные находятся в одной большой древовидной структуре

foo 27.06.2014 09:28

Цитата:

Сообщение от nverv (Сообщение 318083)
1) создание глобальных и локальных переменных {функций}

Только локальных в ф-циях. В глобальной области можно и без вар, разница только в том, что с вар не удаляются delete, причем, в некоторых реализациях, например в node, объявленная с var переменная не копируется в global, поэтому, наверное, в глобальной области без var даже лучше.

Erolast 27.06.2014 11:32

Цитата:

Только локальных в ф-циях.
Нет.

Цитата:

В глобальной области можно и без вар
Это пережиток былого. В современном javascript при объявлении переменных ВСЕГДА нужно использовать var (ну либо const/let). Попробуй объявить без var в строгом режиме - и интерпретатор радостно выдаст ошибку.
"use strict";

try {
  somevar = 100;
} 
catch (e) {
  alert(e);
}

Цитата:

в некоторых реализациях, например в node, объявленная с var переменная не копируется в global
Потому что в node.js область видимости текущего скрипта не равна глобальной области видимости. Каждый модуль создает свою область видимости.

Цитата:

поэтому, наверное, в глобальной области без var даже лучше.
strict mode с тобой не согласен.

foo 27.06.2014 11:47

Цитата:

Сообщение от Erolast
Нет.

Да
Цитата:

Сообщение от Erolast
при объявлении переменных ВСЕГДА нужно использовать var

Нет
Цитата:

Сообщение от Erolast
Попробуй объявить без var в строгом режиме

Мне плевать на него
Цитата:

Сообщение от Erolast
Каждый модуль создает свою область видимости.

Да, но это отношения к делу не имеет
Цитата:

Сообщение от Erolast
strict mode

см выше

Erolast 27.06.2014 12:10

Цитата:

Да, но это отношения к делу не имеет
Имеет. В node.js любой исполняемый скрипт сам по себе является модулем. Любой модуль создает область видимости. Когда ты создаешь файл index.js и запускаешь его через ноду - код исполняется не в глобальной области видимости, а в области видимости текущего модуля, то есть, index.js

Цитата:

Мне плевать на него
То есть, ты признаешь ранние стандарты, а на современные тебе плевать?) Ну-ну, продолжай в том же духе.

kobezzza 27.06.2014 12:14

Erolast, забей на него, каждый месяц на JS.ru появляется очередной диванный теоретик, который всех учит как надо писать код :)

ЗЫ: надо бы создать раздел в форуме: "Диванные теории".

foo 27.06.2014 12:16

Цитата:

Сообщение от Erolast
а в области видимости текущего модуля, то есть, index.js

Ты хочешь сказать, что в индексе нет глобального скопа?

foo 27.06.2014 12:23

Цитата:

Сообщение от kobezzza
Диванные теории

Диванная практика рулит, я в курсе.

nverv 27.06.2014 12:31

Цитата:

Сообщение от Erolast (Сообщение 318204)

Это пережиток былого. В современном javascript при объявлении переменных ВСЕГДА нужно использовать var (ну либо const/let). Попробуй объявить без var в строгом режиме - и интерпретатор радостно выдаст ошибку.

вы чо там в интернете совсем охринели чтоли ?!

это же прелесть жаваскрипта - в возможности простого объявления переменных

следовательно вопрос - ограничивать ли себя строгим режимом? кому это нафиг нужно?
что за странное ожидание апокалипсиса запрещающего тебе синтаксический сахар

неужели так будет что нельзя будет написать создавать переменную просто так - this.x

зачем тогда оператор удаления

nverv 27.06.2014 12:32

Цитата:

Сообщение от foo (Сообщение 318226)
Диванная практика рулит, я в курсе.

диванная аналитика!

и диванное же программирование геополитики


Часовой пояс GMT +3, время: 12:35.