JavaScript란?비공식 자바스크립트 로고 프로그래밍 패러다임: 스크립트 언어, 객체 지향 프로그래밍(프로토타입 기반 프로그래밍), 명령형 프로그래밍, 함수형 프로그래밍, 사건 기반 프로그래밍 설계자 :브렌던 아이크 개발자 :넷스케이프,모질라 재단,Ecma 인터내셔널 발표일 :1995년12월 4일 최근 버전 : ECMAScript 2020 최근 버전 출시일 :2020년 6월 파일 확장자 :.js / .mjs 자바스크립트( JavaScript )는객체 기반의스크립트 프로그래밍 언어이다. 이 언어는웹 브라우저내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한Node.js와 같은 런타임 환경과 같이 서버 프로그래밍에도 사용되고 있다. 자바스크립트는 본래 넷스케이프 커뮤니케이션즈 코퍼레이션의브렌던 아이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발하였으며, 최종적으로 자바스크립트가 되었다. 자바스크립트가썬 마이크로시스템즈의자바와구문이 유사한 점도 있지만, 이는 사실 두 언어 모두 C 언어의 기본 구문에 바탕을 뒀기 때문이고, 자바와 자바스크립트는 직접적인 관련성이 없다. 이름과 구문 외에는 자바보다셀프나스킴과 유사성이 많다. 자바스크립트는 ECMAScript의 표준 사양을 가장 잘 구현한 언어로 인정받고 있으며 ECMAScript 5 (ES5)까지는 대부분의 브라우저에서 기본적으로 지원되었으나 ECMAScript 6 이후부터는 브라우저 호환성을 위해트랜스파일러로 컴파일된다.
HTML과 자바스크립트
HTML은 < > 태그로엘리먼트(element)를 정의한다면, 이러한 HTML의 <body> Hello, World! </body> 엘리먼트에 일대일 대응하는 자바스크립트(ECMA스크립트)는
document.body.innerText = "Hello, World!";
처럼 정의된다. 여기서처럼 HTML과 자바스크립트 간에는 광범위한 호환성을 보장하는 동전의 양면성 같은 구조를 엿볼 수 있는데, 이것이 가능한 것은DOM때문이라고 말할 수 있다.
한편 자바스크립트는 HTML과의 연동관계에서 HTML의 로딩시점 또는 초기화와 관련된 즉시 실행 함수(Immediately invoked function expression)를 제공한다.
프로그래밍 언어 한편 자바스크립트에서 사용되는 기초적인 문법의 개념으로는 속성과메소드를 갖는객체(오브젝트) 개념이 있으며, 변수선언,함수정의,연산자그리고제어문등을 이 프로그래밍 언어의 주요 개념으로 언급할수 있을뿐만아니라 이 언어가 속한객체 지향 프로그래밍언어(OOP)의 공통적인 주요 개념이기도 한다.
var a;
console.log("a 값은 " + a); // "a 값은 undefined"로 로그가 남음.
console.log('b 값은 ' + b); // b 값은 undefined
var b;
console.log("c 값은 " + c); // ReferenceError 예외 던짐
let x;
console.log('x 값은 ' + x); // x 값은 undefined
console.log('y 값은 ' + y); // ReferenceError 예외 던짐
let y;