자바스크립트 변수 선언

gotcha!!·2023년 3월 4일
0

JS

목록 보기
4/10

Java

public class student{
            // 필드 -> 멤버 변수
            private String name; // 인스턴스 변수
            public static String schoolName; // 스태틱 변수, 클래스 변수

            // 메서드
            public void method( String name ){
                                // 매개변수 (파라미터)
                int num = 10; // 지역변수

                if(num > 10){
                    int a = 10; // 지역 변수

                } 
            }
        }

Javascript

 script  태그 내부 // js 파일

        var num1; // 전역변수
        num2; // 전역변수(변수명 앞에 키워드 아무것도 없으면 전역변수)

        function test(){
            var num3; // 지역변수
            num4; // 전역변수(function이 끝나도 사용 가능함)

            if(조건식){
                var num5 // 지역변수 --> 펑션 안에까지 다 가능 
                num6 // 전역변수
            }
        }

변수 선언 방식

Javascript는 변수 선언 시 자료형이 아닌
var, let, const 혹은 미작성 중 하나를 골라서 작성한다
var : 변수, 변수명 중복가능(덮어쓰기), 함수 레벨 scope
let : 변수, 변수명 중복안함 , 블록 레벨 {} scope
const : 상수, 변수명 중복안함, 블록 레벨 {} scope

    1순위 : const (JS는 HTML 상에서 특정 요소를 선택해 지속적으로 추적하는 경우가 많다.
                    그래서 상수형 변수에 저장해 고정적으로 사용)
    2순위 : let
    3순위 : var
    비추천 : 미작성
    
    

Javascript의 자료형

JS는 변수 선언 시 별도의 자료형을 지정하지 않음.

    -> 변수에 대입되는 값(== 리터럴)에 의해서 자료형이 결정됨.
    - string(문자열 / "",'')
    - number(숫자 / 100(정수), -3.14(실수))
    - boolean(논리값 / true, false)
    - object(객체 / 배열(array), js객체 {K:V, K:V} )
    - function (함수)
    - undefined (자료형이 정의 되지 않은 변수) -> 값이 대입되지 않은 변수 
    
    * null은 참조하는 게 없음을 나타냄 -> 자바랑 비슷하네? (자료형 X)
    

테스트해보기

function test() { // test 함수 정의
    
    var num3 = 300; // 지역변수
    num4 = 400; // 전역변수
    
    console.log("함수 내부 num3 " + num3);
    console.log("함수 내부 num4 " + num4);


    if(true){
        var num5 = 500; // 지역변수
        num6 = 600; // 전역변수
    }

    console.log("if문 종료 후 num5 " + num5);
    console.log("if문 종료 후 num6 " + num6);
}

test(); // 함수 호출

// console.log("함수 외부 num3 " + num3); num3 is not defined 
// --> 이게 에러인데 밑에 코드(num4)
// 가 안 읽히는 이유는 스크립트 언어는 중간에 에러가 발생하면 멈추기 때문.
// -> 즉 인터프리터가 한 줄씩 읽어 내려 가기에 에러 발생하면 멈춤
// 함수 종료 후에는 사용 불가
profile
ha lee :)

0개의 댓글