JavaScript 기초 문법(1)

경용·2022년 6월 21일
0

JavaScript

목록 보기
1/4
post-thumbnail

CloudScape

JavaScript 란?

자바스크립트(JavaScript)는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 프로그래밍에도 사용되고 있다. 자바스크립트는 본래 넷스케이프의 브렌던 아이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발하였으며, 최종적으로 자바스크립트가 되었다.
- 위키백과

  • 객체(Object) 기반의 스트립트 프로그래밍 언어
  • ECMAScript 사양을 준수하는 범용 스크립팅 언어
  • 자바와 직접적인 연관은 없으며, 웹의 동적 동작을 구현하기 위해 제작
  • Mocha → LiveScript → JavaScript로 명칭 변경
  • JavaScript는 JS 엔진 위에서 수행

코드 구성

  • JavaScript는 문법의 대부분을 C, C++, Java로부터 차용하여 제작된 스트립트 기반의 언어
  • 다수의 표현식(expression)으로 하나의 명령문(statement)이 만들어지며, 명령문으로 프로그램 수행
  • 하나의 명령문 끝은 개행 문자(Enter) 혹은 세미콜론(;)으로 표시

키워드

  • JavaScript에서 문법을 만들 때 미리 정해진 용도로 동작하기 위해 정의해 놓은 단어
  • JavaScript에 예약된 키워드 목록 (*는 ES5와 ES6에 추가된 단어)

식별자

  • 스크립트에서 변수 또는 함수에 이름을 붙일 때 사용하는 단어
  • 대소문자를 구별하며 유니코드 문자셋을 이용
  • JavaScrip 내 식별자 규칙
    - 키워드 사용 불가
    - 숫자로 시작 불가
    - 특수문자는 _와 $만 허용
    - 공백 문자 포함 불가

변수

  • 변경 가능한 값을 저장하기 위한 기억 공간 (memory)
  • 사용하기 전 반드시 선언 필요
  • 중복 선언 불가능
  • 키워드: let

상수

  • 변경 불가능한 값을 저장하기 위한 기억 공간
  • 사용하기 전 반드시 선언 필요
  • 중복 선언 불가능
  • 키워드: const
const B = 123; //상수 선언 및 값 초기화
console.log(B); // output: 123

B= 456; //값  재할당 > 에러
		//TypeError: Assignment to constant variable

const C; //초기화 없이 상수 선언 > 에러
c = 123; // SyntaxError: Missing initializer in const declaration

변수/상수 예제코드

//선언 후 할당
let hi;
hi = "hello";

//선언과  동시에 초기화
let halo = "Hello!";

//한  줄에 여러 변수 선언과 초기화
let name = "john", age = 13, msg = "hello";

//상수는 보통 대문자로 표기
const TESTCASE = 5;
cont BIRTHDAY = '2000.1.1';

호이스팅

  • 코드에 선언된 변수 및 함수를 유요한 범위의 코드 상단으로 끌어 올리는 작업
  • var의 변수/함수의 선언만 위로 올려지고, 할당은 올려지지 않음
  • let/const 변수 선언과 함수 표현식에서는 호이스팅 발생하지 않음
//using var
console.log(name); //output: undefined

var name = "john";
console.log(name); //output: john

//using let/const
//ReferenceError: Cannot access 'name_2' before initialization
console.log(name_2);
let name_2 = "john";
profile
문제를 객관적으로. 그 후 true / false

0개의 댓글