변수 선언 위치에 따른 구분

Java

자바 변수 선언을 기준으로

public class Srudent{

//필드(멤버 변수)

private String name; //인스턴스 변수

public static String schoolName;//클래스 변수, static 변수

 

//메소드

public setName(String name /*메소드 매개변수*/){

this.name=name;

int num=10; //메소드 지역 변수

 

if(){

int a = 20;// if 지역변수

}

}

}

 

변수 선언하기: var 뒤에 변수 이름 작성, var을 한번만 쓰고 뒤에 여러개의 변수를 한꺼번에 선언할 수도 있음

스코프: 변수가 적용되는 범위, 스코프에 따라 지역변수(로컬변수)와 전역변수(글로벌 변수)

Javascript

자바스크립트 변수 선언을 기준으로

var num1; //전역변수(선언된 후 같은 문서 내 어디서든 사용가능)

num2; //전역변수(변수명 앞에 아무런 키워드가 없으면 전역변수가 된다.)

 

function test(){

var num3; //function 지역변수

num4; //전역변수(변수명 앞에 아무런 키워드가 없으면 전역변수가 된다.)

 

if(조건식){

var num5; //function 지역변수

num6; //전역변수(변수명 앞에 아무런 키워드가 없으면 전역변수가 된다.)

}

}

호이스팅: 변수를 뒤에서 선언하지만, 마치 앞에서 선언한 것처럼 인식함, 함수 실행문을 앞에 두고 선언 부분을 뒤에 두더라도 앞으로 끌어올려 인식함.

 

재선언과 재할당이 가능하다.

재선언: 이미 선언한 변수를 다시 선언할 수 있음

재할당: 같은 변수에 다른 값을 할당할 수 있음

->재선언과 재할당이 가능하면 실수로 변수를 잘못 조작할 확률이 높아짐.

 

let을 사용한 변수의 특징

  • 블록 변수- 블록({}) 안에서만 사용할 수 있다.->전역변수는 변수 이름과 초깃값만 할당하면 됨
  • 재할당은 가능하지만 재선언은 할 수 없다.
  • 호이스팅이 없다.

const를 사용한 변수의 특징

  • 상수- 변하지 않는 값을 선언할 때 사용
  • 재선언, 재할당할 수 없음

자바스크립트 변수, 이렇게 사용하자

  • 전역변수는 최소한으로 사용
  • var 변수는 함수의 시작 부분에서 선언
  • for문에서 카운터 변수는 var보다 let변수로 선언
  • ES6를 사용한다면var보다 let를 사용하는 것이 좋다.
<script>
        var x =10;

        function displayNumber(){
            console.log("x is"+x);
            console.log("y is "+y);
            var y = 20;
        }
        displayNumber();

        function addNumber(num1, num2){
            return num1+num2;
        }

        var sum = addNumber(10,20);
        console.log(sum);

        sum=50;
        console.log(sum);

        var sum = 100;
        console.log(sum);
    </script>

변수 선언 방식

var: 변수, 변수명 중복 O(덮어쓰기), 함수 레벨 scope, 재선언과 재할당이 가능.

let: 변수, 변수명 중복 X, 블록{} 레벨scope, 재할당을 가능하나 재선언은 불가능

const: 상수, 변수명 중복X, 블록{} 레벨 scope

1순위: const(Js는 특정 요소를 선택해서 사용하는 경우가 많아서 변수에 고정시케둠)

2순위: let

3순위: var (ES6 이후부터 사용 빈도가 많이 적어짐)

 

기본 숫자형 따옴표 없이 숫자로만 표기합니다  
  문자열 작은따옴표나 큰따옴표 묶어서, 숫자를 따옴표로 묶으면 문자로 인식  
  논리형 참과 거짓이라는 2가지 값만 있는 유형, true false는 소문자  
복합 배열 하나의 변수에 여러개의 값 저장  
  객체 함수와 속성을 함께 포함 var date() = new Date
특수 undefined 자료향이 지정되지 않았을 때의 상태 예를 들어 변수 선언만 하고 값을 할당하지 않은 변수  
  null 값이 유효하지 않음  

typeof: 콘솔에 입력하면 자료형을 알려줌

 

배열: 하나의 변수에 여러 값을 저장할 수 있는 복합 유형

배열명["값1", "값2",..]

배열명[ ]: 빈 배열 선언


자바스크립트 기능표현 함수 단위.

function 함수명([매개변수1, 매개변수2,...]){

명령

}

실행: 함수명() or 함수명(변수)

 

익명함수(함수 표현식)

function(매개변수){              // 함수 선언 ①
                // 함수 정의
            }

            const 변수 = function(매개변수){ // 함수 선언 ②
                // 함수 정의
            }

- 이름이 없는 함수이기 때문에 필요할 때 마음대로 호출하는 것이 불가능 ①
 - 이벤트 핸들러와 같이 바로 동작하는 함수가 필요한 경우 또는 변수, 매개변수에 함수를 저장 해야하는 경우 사용함.

즉시실행함수

(function(매개변수){
                // 함수 정의
            })();

            (function(매개변수){
                // 함수 정의
            }());

- 익명 함수의 한 종류로써
          함수가 정의 되자마자 바로 실행되는 함수

        *** 즉시 실행 함수 사용 이유
        1) 함수 선언, 정의, 호출의 일련의 과정을 수행하지 않아도 바로 실행된다. 
            -> 호출부가 없으므로 일반적인 함수보다 속도적 우위를 가지고 있음. 

        2) 사용하려는 변수명이 전역변수로 사용되어지고 있는 경우
           즉시 실행 함수를 이용하여 내부의 지역 변수로 작성하여
           변수명 충돌 문제를 해결할 수 있다.

화살표 함수

익명 함수의 표현식을 간단히(간결하게) 표현한 표기법

        작성법 1. 기본 형태 ([매개변수]) => { 함수 정의 }
            익명 함수   : function(){ }
            화살표 함수 : () => { }

            익명 함수   : function(num){   return num * 2;   }
            화살표 함수 : (num) => {  return num * 2;  }


        작성법 2. 매개변수가 "하나"인 경우 () 생략 가능
            익명 함수   : function(e){  
                            e.target.style.backgroundColor = "yellow"; 
                        }
            화살표 함수 : e => { 
                            e.target.style.backgroundColor = "yellow"; 
                        }

        작성법 3. 매개변수가 없을 경우 "무조건" () 작성

        작성법 4. 함수 정의 부분이 return [식 또는 값] 으로만 작성되어 있는 경우
                 4-1. {}, return 생략 가능
                 4-2. return되는 값이 객체(object)인 경우 {}, return 생략 불가능

'HTML+CSS+자바스크립트' 카테고리의 다른 글

객체  (0) 2023.05.31
함수, 이벤트  (0) 2023.05.30
자바스크립트  (0) 2023.05.25
CSS고급 선택자  (0) 2023.05.24
CSS,박스 모델  (0) 2023.05.23

+ Recent posts