변수 범위
"변수의 범위는 변수가 존재하는 컨텍스트를 나타냅니다. 이는 액세스할 수 있는 변수와 변수에 액세스할 수 있는 권한이 있는지 여부를 지정합니다.
가변 범위는 로컬 범위와 전역 범위로 구분됩니다.
지역 변수(함수 수준의 범위)
다른 객체 지향 프로그래밍 언어(예: C, Java 등)와 달리 JavaScript에는 블록 수준 범위(중괄호로 둘러싸여 있음)가 없습니다. ; JavaScript에 함수 수준 범위가 있는 경우, 즉 함수 내에 정의된 변수는 함수 내에서 또는 함수 내의 함수에서만 액세스할 수 있습니다(클로저 제외). 이에 대한 주제는 며칠 후에 작성하겠습니다. .
함수 수준 범위의 예:
var name = "Richard" ;
function showName () {
var name = "Jack"; // 이 showName 함수에서만 액세스할 수 있습니다.
console.log (name) // Jack
}
console.log (이름); // Richard: 전역 변수
에는 블록 범위가 없습니다.
var name = "Richard" ;
// 이 if 문의 블록은 이름 변수에 대한 로컬 컨텍스트를 생성하지 않습니다.
if (name) {
name = "Jack" // 이 이름은 전역 이름 변수이며 여기서는 "Jack"으로 변경됩니다
console.log (name); // Jack: 여전히 전역 변수
}
// 여기서 name 변수는 동일한 전역 이름 변수입니다. 하지만 if 문
console.log(이름)에서 변경되었습니다. // Jack
// var 키워드를 사용하는 것을 잊지 마세요
// var 키워드를 사용하지 않고 변수를 선언하면 해당 변수는 전역 변수가 됩니다!
// var 키워드를 사용하여 지역 변수를 선언하지 않으면 전역 범위의 일부가 됩니다.
var name = "Michael Jackson";
function showCelebrityName () {
console.log (이름);
}
function showOrdinaryPersonName () {
name = "Johnny Evers";
console.log (이름);
}
showCelebrityName (); // Michael Jackson
// name은 지역 변수가 아니며 단순히 전역 이름 변수를 변경합니다.
showOrdinaryPersonName () // Johnny Evers
// 전역 변수는 이제 유명인 이름이 아닌 Johnny Evers입니다
showCelebrityName (); // Johnny Evers
// 해결 방법은 var 키워드
function showOrdinaryPersonName()을 사용하여 로컬 변수를 선언하는 것입니다. {
var name = "Johnny Evers"; // 이제 name은 항상 지역 변수이며 전역 변수를 덮어쓰지 않습니다.
console.log (name);
}
// 지역 변수 전역 변수보다 우선순위가 높습니다
//전역 범위의 변수가 로컬 범위에서 다시 선언된 경우 이 변수를 로컬 범위에서 호출하면 로컬 범위에서 선언된 변수가 먼저 호출됩니다.
var name = "Paul";
function users () {
// 여기서 name 변수는 로컬 변수이며 전역 범위에서 동일한 이름 변수보다 우선합니다.
var name = "Jack";
// 전역 범위에서 함수 외부를 보기 전에 함수 내부에서 이름 검색이 바로 시작됩니다
console.log (name); >
사용자 () // 잭
함수 외부에서 선언된 모든 변수는 전역 범위에 속합니다. 브라우저 환경에서 이 전역 범위는 Window 객체(또는 전체 HTML 문서)입니다.
함수 외부에서 선언되거나 정의된 모든 변수는 전역 개체이므로 이 변수는 어디에서나 사용할 수 있습니다. 예를 들면 다음과 같습니다.
var sex = "male";
//모두 창 개체에 있습니다
console.log(window.myName); paul
console.log('sex' in window) //true
var 키워드를 사용하지 않고 처음으로 변수를 초기화/선언하면 전역 범위에 자동으로 추가됩니다.
function showAge(){
//age 초기화 시 var 키워드는 사용되지 않으므로 전역 변수입니다.
age = 20;
console.log(age);
}
showAge(); //20
console.log(age); //age는 전역 변수이므로 여기서도 출력은 20
setTimeout 함수는 전역 범위에서 실행됩니다
setTimeout의 함수는 전역 범위에 있으므로 함수에서 this 키워드가 사용되면 this 키워드는 전역 객체(Window)를 가리킵니다.
var Value1 = 200;
var Value2 = 20 ;
var myObj = {
Value1 : 10,
Value2 : 1,
caleculatedIt: function(){
setTimeout(function(){
console .log( this.Value1 * this.Value2);
}, 1000);
}
}
myObj.caleculatedIt() //4000
전역 범위의 오염을 피하기 위해 일반적으로 우리는 가능한 한 적은 수의 전역 변수를 선언합니다.
변수 호이스팅
모든 변수 선언은 함수의 시작 부분(변수가 함수 내부에 있는 경우) 또는 전역 범위의 시작 부분(변수가 전역 변수인 경우)으로 호이스팅됩니다. 예를 살펴보겠습니다.
function showName () {
console .log("이름: " name);
var name = "Ford";
console.log("성: " name);
}
showName(); // JavaScript 엔진에서 실제로 코드를 처리하는 방법은 다음과 같습니다.
function showName () {
var name / / name은 호이스팅됩니다(할당은 아래에서 발생하므로 이 시점에서는 정의되지 않았습니다)
console.log("First Name: " name) // First Name: undefine
name = "Ford "; / / 이름에 값이 할당됨
// 이제 이름은 Ford
console.log("성: " name); // 성: Ford
}
함수 선언이 변수 선언을 덮어씁니다
// 함수 선언이 변수 이름을 재정의합니다
console.log(myName 유형); // 함수
그러나 이 변수나 함수에 값이 할당되면 다른 변수나 함수가 이를 덮어쓸 수 없습니다.
}
console.log(typeof myName); // 문자열
마지막으로, 엄격 모드에서는 변수를 먼저 선언하지 않고 변수에 값을 할당하면 오류가 보고됩니다!

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

Python은 데이터 과학 및 기계 학습에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 간결한 구문 및 풍부한 라이브러리 생태계로 유명하며 데이터 분석 및 웹 개발에 적합합니다. 2. JavaScript는 프론트 엔드 개발의 핵심입니다. Node.js는 서버 측 프로그래밍을 지원하며 풀 스택 개발에 적합합니다.

JavaScript는 이미 최신 브라우저에 내장되어 있기 때문에 설치가 필요하지 않습니다. 시작하려면 텍스트 편집기와 브라우저 만 있으면됩니다. 1) 브라우저 환경에서 태그를 통해 HTML 파일을 포함하여 실행하십시오. 2) Node.js 환경에서 Node.js를 다운로드하고 설치 한 후 명령 줄을 통해 JavaScript 파일을 실행하십시오.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
