var, const를 배우고 6분 이내에 [JavaScript] 학습

JavaScript를 배우기 시작한 경우 초기 단계에서도 var, constlet 변수 선언을 만나게 됩니다.
ES6에는 constlet가 도입됐지만, 그 이전에는 var만이 변수 성명의 유일한 방식이었다.그것들 중 하나는 모두 자신의 속성, 작용역과 용도를 가지고 있다.
우리 는 그 중 의 각 종류 와 이 성명 변수 의 방법 사이 의 주요 차이 를 이해하게 한다

변수:var로 성명한 변수는 가변적이다. 즉, 그것들은 재분배할 수 있고, 심지어는 먼저 성명한 다음에 다른 단계에서 초기화할 수 있다.
var num  //num declared -- > value of num is undefined 
num = 1  //num initialize/assigned-- > value of num is 1
num = 3 //num reassigned -- > value of num is 3

var는 전역 및 기능 범위입니다.
변수가 함수 외부에서 성명될 때, 전역 작용역을 가지고 있으며, 코드의 어느 위치에서든 이 변수에 접근할 수 있다
var firstName = "Sarvesh"
var lastName = "Kadam"
function greet(){
       console.log(firstName+" "+lastName)
}
greet() //*Output*: Sarvesh Kadam

현재 함수 작용역은 함수 내부에서 var 키워드 성명 변수를 사용하면 함수 외부에서 접근할 수 없음을 표시합니다
function hello(){
       var firstName = 'Sarvesh'
      }
console.log(firstName) //Will throw an error as firstName is not defined
우리는 함수 문법 범위 밖의 firstName 변수에 접근할 수 없습니다.

콘스트와 라이트:constlet는 막힌 작용역이다(우리는 곧 알게 될 것이다).우선 차이점을 살펴봅시다.let는 가변적varconst은 가변적이다.
아래의 예에서 보듯이, 우리는 하나의 실례에서 변수를 설명하고, 이후에 'item' 변수에 값을 부여하며, 심지어는 다시 값을 부여할 수 있다.

let item //declaration
item = "food" //item is assigned a value -- > value of item is food
item = "clothes" //item variable declared -- > value of num is clothes

어디 보자const
const item ; //the value must be assigned while declaring
item = "food"  //error

const item2 = "pen"
item2 = "eraser" //error : value cannot be reassigned to constant variable

따라서 const에서 우리는 하나의 실례에서 변수를 설명하고 초기화하기만 하면 값을 재분배/변경할 수 없다.
현재 constlet는 모두 막힌 범위이다. 즉, 우리는 괄호 {} 이외의 변수에 접근할 수 없다. 이 블록이 함수든 조건문이든.
if(true){
    let number1 = 2
    const number2 = 4
}
console.log(number1) //will throw an error as number1 is not defined
console.log(number2) //will throw an error as number2 is not defined
변수'number1'과'number2'가 if 문장 블록에 성명되어 있기 때문에 접근할 수 없습니다. var 경우, 블록 범위가 아니라 함수 범위이기 때문에 접근할 수 있습니다.
if(true){
   var number = 5
}
console.log(number) //Output = 5

지금 우리는 한 장면을 토론할 것이다. 그 중에서 const를 사용하여 대상을 성명할 것이다.
const player = {
    name : "Eden Hazard",
    team : "Read Madrid",
    position : "forward"
}

player.name = "Karim Benzema" //will re-assign the Value successfully

player = {
    name : "Modric",
    team : "Read Madrid",
    position : "forward"
}   //will throw an error 

위의 예에서 보듯이, 우리는 const 성명된 대상 변수의 속성을 변경할 수 있지만, 전체 대상을 다시 분배할 수 없습니다.

몇 가지 이상한 행동:
  • var에서 우리는 단일 변수를 여러 번 성명할 수 있는데 오류가 발생하지 않는다.
    주의: 저희는 어떠한 상황에서도 이 부동산을 사용하지 않습니다. 단지 당신에게 알리고 싶을 뿐입니다
  •      var name = "sarvesh"
         console.log(name)  //Output: sarvesh
         var name = "rihan"
         console.log(name) //Output : rihan
    
    
  • let에서 우리는 같은 이름을 다른 블록 성명 변수로 사용할 수 있는데 이것은 전체 변수의 값에 영향을 주지 않는다
  •      let a = 5
         if(true){
              let a = 8
              console.log(a) //Output : 8 
         }
    
         console.log(a) //Output : 5 
    
    
    우리는 변수를 설명하고 초기화하는 데 유사한 이름 'a' 를 사용했기 때문이다.블록 내부에서'a'의 값은 8이고 블록 외부, 즉 전역 대상에서 값은 5이다.
  • 에서 변수가 향상되었다. 즉, var 변수는 함수/코드를 실행하기 전에 사용할 수 있다.
  •      console.log(name) //Output : undefined
    
         var name = "sarvesh"
    
         console.log(name) //Output : sarvesh
    
    
    위 코드에서는 변수'name'의 값을 설명하거나 초기화하기 전에도 이 변수에 접근할 수 있습니다.
    JavaScript가 해석될 때 함수/코드를 실행하기 전에 해석기는 변수나 함수 선언을 검색하여 해당 값var의 메모리 공간을 설정합니다.
    따라서 실행하기 전에 변수'name'은 모든 undefined 함수를 실행하기 전에'undefined'의 값으로 메모리 공간에 저장됩니다.
    전체적인 현상을 승진이라고 부른다.(다른 블로그에서 자세히 설명)
    만약 우리가 loglet를 사용하지 않는다면const 이 장면은 변수가 향상되지 않기 때문에 오류를 던질 것이다.

    결론:
  • var기능 범위에 해당
  • varconst 차단 범위
  • letvar는 가변적
  • let는 변하지 않는다
  • const를 사용하는 것은 let이 아니라 const이다. 앞의 두 가지는 차단 범위이기 때문에 블록 밖에서 접근할 수 없다. 코드를 더욱 안전하게 하기 때문에 블록 밖에서 값을 바꾸는 사람이 있으면 전체 코드의 기능에 영향을 주지 않는다.varconst 사이에서도 가능한 한 let를 사용해야 한다. 왜냐하면 이것은 코드를 더욱 읽을 수 있게 하기 때문이다. 왜냐하면 우리는 변수의 값이 코드에서 더욱 업데이트되는지 알고 있기 때문이다.
    이상 몇 가지는 const,var,let부터 시작할 수 있습니다.

    Thank you for your time for reading the article, give a follow on my as I am documenting my learning

    좋은 웹페이지 즐겨찾기