> 웹 프론트엔드 > JS 튜토리얼 > 자바스크립트 var란 무엇인가요?

자바스크립트 var란 무엇인가요?

青灯夜游
풀어 주다: 2023-01-06 11:16:58
원래의
6647명이 탐색했습니다.

var는 JavaScript에 내장된 키워드로, 변수를 선언하고 선택적으로 값으로 초기화하는 데 사용됩니다. 구문 형식은 "var varname [=value];"이며 매개변수 값은 모든 유효한 표현식일 수 있습니다. 값은 "정의되지 않음"입니다.

자바스크립트 var란 무엇인가요?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript 변수 선언(생성)

JavaScript에서 변수를 생성하는 것을 변수 "선언"이라고 합니다.

var 키워드를 통해 JavaScript 변수를 선언할 수 있습니다. var 문은 변수를 선언하고 선택적으로 값을 초기화합니다: var 关键词来声明 JavaScript 变量;var语句声明一个变量,并可选地将其初始化为一个值:

var varname1 [= value1] [, varname2 [= value2] ... [, varnameN [= valueN]]];
로그인 후 복사
  • varname:变量名。变量名可以定义为任何合法标识符。

  • value:变量的初始化值。该值可以是任何合法的表达式。默认值为 undefined。

说明:

变量声明,无论发生在何处,都在执行任何代码之前进行处理。用 var 声明的变量的作用域是它当前的执行上下文,它可以是嵌套的函数,或者对于声明在任何函数外的变量来说是全局。如果你重新声明一个 JavaScript 变量,它将不会丢失其值。

当赋值给未声明的变量, 则执行赋值后, 该变量会被隐式地创建为全局变量(它将成为全局对象的属性)。

示例:

1、声明并初始化两个变量:

var a = 0, b = 0;
로그인 후 복사

给两个变量赋值成字符串值:

var a = "A";
var b = a;

// 等效于:
var a, b = a = "A";
로그인 후 복사

留意其中的顺序:

var x = y, y = 'A';
console.log(x + y); // undefinedA
로그인 후 복사

在这里,x 和 y 在代码执行前就已经创建了,而赋值操作发生在创建之后。当"x = y"执行时,y 已经存在,所以不抛出ReferenceError,并且它的值是'undefined'。所以 x 被赋予 undefined 值。然后,y 被赋予'A'。于是,在执行完第一行之后,x === undefined && y === 'A'

function x() {
  y = 1;   // 在严格模式(strict mode)下会抛出 ReferenceError 异常
  var z = 2;
}

x();

console.log(y); // 打印 "1"
console.log(z); // 抛出 ReferenceError: z 未在 x 外部声明
로그인 후 복사
설명:

변수 선언은 어디에 있든 코드가 실행되기 전에 처리됩니다. var로 선언된 변수의 범위는 현재 실행 컨텍스트이며, 이는 중첩 함수일 수도 있고 함수 외부에서 선언된 변수에 대해 전역적으로 사용될 수도 있습니다. JavaScript 변수를 다시 선언해도 해당 값은 손실되지 않습니다.

선언되지 않은 변수에 값을 할당할 때 할당이 수행된 후 해당 변수는 암시적으로 전역 변수로 생성됩니다(전역 객체의 속성이 됩니다).

예:

1. 두 변수 선언 및 초기화:

console.log(a);                // 抛出ReferenceError。
console.log('still going...'); // 打印"still going..."。
Copy to Clipboard
var a;
console.log(a);                // 打印"undefined"或""(不同浏览器实现不同)。
console.log('still going...'); // 打印"still going..."。
로그인 후 복사

두 변수를 문자열 값에 할당:

var a = 1;
b = 2;
delete this.a; // 在严格模式(strict mode)下抛出TypeError,其他情况下执行失败并无任何提示。
delete this.b;
console.log(a, b); // 抛出ReferenceError。
// 'b'属性已经被删除。
로그인 후 복사
순서에 주의하세요: rrreee여기서는 x와 y가 코드에서 실행됩니다. 이전에 생성되었으며 할당 작업은 생성 후에 발생합니다. "x = y"가 실행될 때 y는 이미 존재하므로 ReferenceError가 발생하지 않으며 해당 값은 '정의되지 않음'입니다. 따라서 x에는 정의되지 않은 값이 할당됩니다. 그런 다음 y에는 'A'가 할당됩니다. 따라서 첫 번째 줄을 실행한 후 x === unundefined && y === 'A' 가 이런 결과를 낳았습니다. 🎜🎜【관련 권장사항: 🎜javascript 학습 튜토리얼🎜🎜】🎜🎜🎜🎜선언된 변수와 선언되지 않은 변수의 차이점은 다음과 같습니다.🎜🎜🎜1 선언된 변수의 범위는 선언이 아닌 선언 위치의 컨텍스트로 제한됩니다. 변수는 항상 전역적입니다. 🎜rrreee🎜2. 선언된 변수는 코드가 실행되기 전에 생성되고, 선언되지 않은 변수는 할당 작업이 수행될 때만 생성됩니다. 🎜rrreee🎜3. 선언된 변수는 해당 변수가 위치한 컨텍스트의 구성할 수 없는 속성인 반면, 선언되지 않은 변수는 구성할 수 있습니다(예: 선언되지 않은 변수는 삭제할 수 있음). 🎜rrreee🎜이 세 가지 차이점으로 인해 변수 선언에 실패하면 예상치 못한 결과가 발생할 가능성이 높습니다. 따라서 변수가 함수 내부에 있든 전역 범위에 있든 항상 변수를 선언하는 것이 좋습니다. 또한 ECMAScript 5 엄격 모드에서는 선언되지 않은 변수에 할당하면 오류가 발생합니다. 🎜🎜더 많은 프로그래밍 관련 지식을 보려면 🎜프로그래밍 비디오🎜를 방문하세요! ! 🎜

위 내용은 자바스크립트 var란 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿