ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
×

JavaScript учебник

JS HOME JS Introduction JS Where To JS Output JS Statements JS Syntax JS Comments JS Variables JS Operators JS Arithmetic JS Assignment JS Data Types JS Functions JS Objects JS Scope JS Events JS Strings JS String Methods JS Numbers JS Number Methods JS Arrays JS Array Methods JS Array Sort JS Array Iteration JS Dates JS Date Formats JS Date Get Methods JS Date Set Methods JS Math JS Random JS Booleans JS Comparisons JS Conditions JS Switch JS Loop For JS Loop While JS Break JS Type Conversion JS Bitwise JS RegExp JS Errors JS Debugging JS Hoisting JS Strict Mode JS this Keyword JS Style Guide JS Best Practices JS Mistakes JS Performance JS Reserved Words JS Versions JS Version ES5 JS Version ES6 JS JSON

JS Forms

JS Forms Forms API

JS Objects

Object Definitions Object Properties Object Methods Object Constructors Object Prototypes

JS Functions

Function Definitions Function Parameters Function Invocation Function Call Function Apply Function Closures

JS HTML DOM

DOM Intro DOM Methods DOM Document DOM Elements DOM HTML DOM CSS DOM Animations DOM Events DOM Event Listener DOM Navigation DOM Nodes DOM Collections DOM Node Lists

JS Browser BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS AJAX

AJAX Intro AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications

JS JSON

JSON Intro JSON Syntax JSON vs XML JSON Data Types JSON Objects JSON Arrays JSON Parse JSON Stringify JSON PHP JSON HTML JSON JSONP

JS References

JavaScript Objects HTML DOM Objects


JavaScript Scope


SCOPE определяет доступность (видимость) переменных.


Область видимости функции JavaScript

В JavaScript существует два типа области:

  • Local scope
  • Global scope

JavaScript имеет область функций: каждая функция создает новую область.

SCOPE определяет доступность (видимость) этих переменных.

Переменные, определенные внутри функции, недоступны (видимы) извне функции.


Локальные переменные JavaScript

Переменные, объявленные в функции JavaScript, становятся Локальная функция.

Локальные переменные имеют локальную область видимости: доступ к ним возможен только внутри функции.

Пример

// code here can NOT use carName

function myFunction() {
    var carName = "Volvo";

    // code here CAN use carName

}

Поскольку локальные переменные распознаются только внутри своих функций, переменные с одинаковым именем могут использоваться в различных функциях.

Локальные переменные создаются при запуске функции и удаляются при завершении функции.


Глобальные переменные JavaScript

Переменная, объявленная вне функции, становится глобальной.

Глобальная переменная имеет глобальную область видимости: все скрипты и функции на веб-странице могут получить к ней доступ.

Пример

var carName = " Volvo";

// code here can use carName

function myFunction() {

    // code here can also use carName

}

Переменные JavaScript

В JavaScript объекты и функции также являются переменными.

SCOPE определяет доступность переменных, объектов и функций из различных частей кода.



Автоматически глобальные

Если присвоить значение переменной, которая не была объявлена, она автоматически превратится в глобальную переменную.

В этом примере кода будет объявлена Глобальная переменная карнаме, даже если значение назначено внутри функции.

Пример

myFunction();

// code here can use carName

function myFunction() {
    carName = "Volvo";
}

Строгий режим

Все современные браузеры поддерживают запуск JavaScript в "строгом режиме".

Более подробно о том, как использовать строгий режим, вы узнаете в следующей главе этого учебного пособия.

Глобальные переменные не создаются автоматически в "строгом режиме".


Глобальные переменные в HTML

В JavaScript глобальная область видимости является полной средой JavaScript.

В HTML глобальная область видимости является объектом Window. Все глобальные переменные принадлежат объекту Window.

Пример

var carName = "Volvo";

// code here can use window.carName
 

Предупреждение

Не создавайте глобальные переменные, если вы не намерены.

Глобальные переменные (или функции) могут перезаписать переменные окна (или функции).
Любая функция, включая объект Window, может перезаписать глобальные переменные и функции.


Время существования переменных JavaScript

Время жизни переменной JavaScript начинается, когда она объявлена.

Локальные переменные удаляются при завершении функции.

В веб-обозревателе глобальные переменные удаляются при закрытии окна обозревателя (или вкладки), но остаются доступными для новых страниц, загружаемых в одно и то же окно.


Аргументы функции

Аргументы функции (параметры) работают как локальные переменные внутри функций.