JS: 기초

김현수·2020년 12월 24일
0

JavaScript

목록 보기
1/4

Expression: 표현식

  • 값을 만들어내는 간단한 코드
  • 함수의 인자로 사용 가능.
true
26
1000 + 900 + 90 + 4
"Anna"
"Hello" + "JavaScript"
alert(1000 +900 + 90 + 4);
alert ("Hello" + " JavaScript");

Statement: 문장

  • 하나 혹은 여러개의 표현식이 모여 문장을 이룸.
  • 모든 표현식은 문장이 될 수 있음.
  • 모든 문장 뒤엔 세미콜론이 붙음.
var name ="Mark";
alert("Hello");
  • 한 줄에 문장이 하나인 경우엔 세미 콜론을 붙이지 않아도 상관없지만 관례적으로 붙임.
  • 한 줄에 여러 문장을 적을 경우 세미콜론으로 문장을 구분해야함.
  • 마지막 문장에는 세미콜론을 붙이지 않아도 상관없음.
  • 마지막 문장의 결과가 반환됨.
    e.g., true; 26; 1000+900+90+4; => 1994
  • 조건문과 반복문도 문장. 이경우에는 ;를 붙이지 않음.
  • 문장들이 모여 만들고자하는 프로그램이 됨.

Keyword

자바스크립트에서 특정한 목적을 위해 사용하는 단어. Reserved Keywords예약어로 지정되어 있음.

  • var: 변수를 선언할 때 사용하는 키워드. 변수를 선언함.
  • 예약어는 프로그램을 작성할 때 변수명, 함수명 등 이름으로 사용할 수 없음.
    -- var return, function for 등은 불가능.

Future reserved keywords

앞으로 예약어로 쓰일 가능성이 있는 예약어. 역시 사용 불가능.

Indentifier: 식별자

  • 코드 내의 변수, 함수, 속성을 식별할 때 사용.
  • var name ="Mark"; 여기선 Mark는 name이라는 변수의 이름.
  • function hello() {} : hello가 함수의 이름.
  • var person = {name: "Mark", age: 37}; : name, age
  • 대소문자 구별. myName과 myname은 다르다.
  • 유니코드 문자, $, _, 0-9를 사용 가능. 숫자로 시작할 수는 없다.
  • 예약어 사용 불가능, 공백 사용 불가능.
var name1;
var $name;
var _name;

var 이름; // 가능은 함. 하지만 영문을 사용.
var 1name; // 불가능.

변수나 함수의 이름을 짓는 건 언제나 어려운 일. 적절한 이름을 짓도록 노력해야.

Comment: 주석

  • 소스 코드에서 영향 주지 않고 무시됨.
  • 소스 코드를 이해할 수 있도록 돕는 역할
  • 한줄만 주석 처리 할 경우 // 를 사용.
    // 블라블라.
  • 여러줄 주석 처리 할 경우 /* */를 사용.

const 상수_이름 = 값;

  • 상수를 선언하면서 바로 값을 설정해야함.

let 변수_이름;

  • 값이 할당되지 않음.
  • 변수_이름 = 값; / let 변수_이름 = 값;
  • 아직 선언되지 않은 변수에는 값을 할당할 수 없음.
  • 값 선언 후 값을 재할당할 수 있음.

유효 범위(scope)

const, let의 유효 범위: 블록 스코프

블록{ } 안에서 선언된 변수, 상수는 그 블록 안에서만 사용가능하다. 블록 밖에서 선언된 것은 다른 블록 안에서 사용할 수 있다.

{
const name = "Mark";
console.log(name);
}
//Mark를 출력.

console.log(name);
// 오류. name이 블록 안에서 선언되어 블록 밖에서는 사용 불가능

var의 유효 범위: 함수 스코프

  • ES6 이후엔 var를 잘 안 씀. const, let의 블록 스코프가 좀 더 직관적이기 때문.

var와 Hoisting

  • Hoisting: 아래있는 선언을 끌어올린다.
  • 보통은 함수를 먼저 선언하고 함수를 호출하지만, 함수를 먼저 호출해도 작동한다.
age = 6;;
age++;
console.log(age);
var age;

도 작동한다!

console.log(name); 	// undefined
name = "Mark";
console.log (name); 	// Mark
var name;

console.log(name); 	// undefined
name = "Mark";
console.log (name); 	// Mark
var name = "Hyeonsu"; 

: var name = "Hyeonsu";이 통으로 올라가는 게 아니라 var name라는 선언부만 올라간다.

let에서는 hoisting 문제가 발생하지 않는다. 무조건 위에서 선언해야 함.

0개의 댓글