본문 바로가기
웹/JAVA SCRIPT

[코딩 공부_86] scope, const, 연산자, if문(조건문)

by BEE_0o0 2021. 6. 1.

1. scope :변수에 접근할 수 있는 범위

- 지연 변수는 블록문 내에서만 유효하다

** scope는 global(전역)과 local(지역) 2가지의 타입이 있다.

   - global scope : 전역에 선언되어 어느곳이든 해당 변수에 접근할 수 있다

   - local scope : 함수 내부에만 영향을 주며, global scope처럼 전역에 접근 할 수 없다!

 

2. const : 변하지 않는 값

<script>
// 상수
const pi = 3.14; //원주율
var radius = 0; //반지름
</script>

 1) var, let, const의 차이점

  - var는 함수 레벨 스코프이고, let, const는 블럭 레벨 스코프이다.

  - var로 선언한 변수는 선언 전에 사용해도 에러가 나지 않지만, let, const는 에러가 발생한다.

  - var는 이미 선언되어있는 이름과 같은 이름으로 변수를 또 선언해도 에러가 나지 않지만 let, const는 이미 존재하는 변수와 같은 이름의 변수를 또 선언하면 에러가 난다.

  - var, let은 변수 선언시 초기 값을 주지 않아도 되지만 const는 반드시 초기값을 할당해야한다.

  - var, let은 값을 다시 할당할 수 있지만 const는 한번 할당한 값은 변경할 수 없다(단, 객체 안에 프로퍼티가 변경되는 것까지는 막지 못한다.)

  *** var의 경우 호이스팅이 될 때 초기값이 없으면 자동으로 undefined를 초기값으로 메모리를 할당하여 에러가 발생하지 않지만 let, const의 경우 호이스팅이 될 때 초기값이 없다면 자동으로 할당이 되지 않는다.(문법 에러 발생)

 

3.연산자

  1) typeof 연산자 : 어떤 자료형인지 확인하는 연산자

   - typeof가 반환하는 값

     (string) (number) (boolean) (object) (function) (undefined)

 

  2) 논리연산자

연산자 구문 설명 예시
||(OR) exp1 || expr2 or 연산자
하나라도 참이면 참을 변환한다
var hour = 9;
if(hour < 10 || hour > 18)
alert('영업시간이아닙니다')
&&(AND) expr1 && expr2 and 연산자
둘다 참일 경우, 참을 반환한다
var hour = 12;
var min = 30;
if(hour == 12 && min ==30)
console.log("12시 30분 입니다")
! !ture, !false 논리 부정 연산자 true 이면 false
false이면 ture를 반환한다

 

   3) 삼항 연산자

연산자 구문 설명 예시
- 조건? 값1 :값2 삼항 연산자 var statue = (age >= 18)? "adult":"minor"

 

 

4. 제어문 : if문, else

<script>
if(조건식){ //statement1 
} else if(조건식){ //statement2 
} else { //statment3 
}
</script>

 - if 안에 있는 조건식이 참인 경우 해당하는 if문, else if문을 실행한다

 - 조건문(if, else if)에 모두 해당하지 않으면 else에 있는 statment3이 실행된다

 - else if에는 객수 제한이 따로 없다

  ** if문은 중첩이 가능하다

 

  1) 조건식 거짓으로 취급하는 값

   - false

   - undefined

   - null

   - 0

   - NaN

   - the empty string("")

 

  2) 조건문에서 사용할 수 있는 비교 연산자

===, !-- 한 값이 다른 값과 같거나 다른지 판단한다.
<, > 한 값이 다른 값보다 작은지 큰지 판단한다.
<=, >= 한 값이 다른 값보다 작거나 같은지, 크거나 같은지 판단한다.

 

댓글