자바스크립트는 브랜든 아이크에 의하여 1995년 12월 4일 발표된 프로그래밍 언어이다.

HTML에서 자바스크립트를 사용중인 장면 - 위키미디어 공용

개요[편집 / 원본 편집]

자바스크립트는 객체 기반의 스크립트 언어로, 대부분의 모든 브라우저 내부에는 자바스크립트 인터프리터가 내장되어 있다.[1]

역사[편집 / 원본 편집]

자바스크립트는 브랜든 아이크가 약 10일만에 설계한 언어다. 맨 처음에는 모카(Mocha)라는 이름으로 발표되었고, 나중엔 라이브 스크립트(Live Script)라는 이름으로 변경했다가, 3달 후 JavaScript라고 이름을 바꿨는데, 당시 자바가 아주 인기있었기에, 이름을 그렇게 지은 것이라 한다.[2]

버전들[편집 / 원본 편집]

여기선 ECMAScript의 버전들의 변화를 서술합니다.[3]

ES1 ~ ES3[편집 / 원본 편집]

ES1, ES2는 그렇게 큰 변화는 없었다. 다만 ES3에서, 정규식, try/catch, do-while, switch가 추가되었다.

ES5[편집 / 원본 편집]

엄격 모드(use strict)가 추가되었고, JSON 지원과, 배열의 많은 메소드들, String.trim()이 추가되었다

ES2015[편집 / 원본 편집]

let, const가 추가되었고, default parameter, for..of문, 자바스크립트의 Lambda인 Arrow Function(화살표 함수), Map, Set, Class, Promise, Symbol, 기본 매개변수, Rest Parameter[4], String.includes(), String.startsWith(), String.endsWith(), Array.from(), Array.keys(), Array.find(), Array.findIndex() 등이 추가되었다

장단점[편집 / 원본 편집]

장점[편집 / 원본 편집]

단점[편집 / 원본 편집]

  • 자바스크립트는 1995년 넷스케이프의 스크립트 언어로 Brendan Eich에 의해 개발되었다. 출시 되었을 때, 짧은 코드에만 사용될것이라고 예상했고, 따라서 빠르게 사용되도록 설계되었다. 즉, 설계가 부실한 언어인데, 문제는, 동적 웹사이트를 만드려면 자바스크립트를 무조건 사용해야 한다는 거다(!!!)
  • 자바스크립트 너무 관대한 언어다. 예를 들면, 브라우저의 콘솔을 기준으로 "안녕"+true, true+1, true+false, [1,2,3]+true등은 모두 실행된다. 결과값은 순서대로 "안녕true", 2, 1, "1,2,3true"를 반환한다. 이래서 자바스크립트를 이상하다고 하는거다.
  • 타입이 없는 것도 문제다. 타입을 생략할수 있는게 아니라 걍 타입을 지정할수조차 없다. 예를 들면 정수를 받아 더하는 함수(function addInt(a,b) { return a+b })를 선언했다고 생각해 보자. Python에서 같은 기능을 하는 함수를 선언할때, def addInt(a, b):return a+b라고도 선언이 가능하기는 하지만, 좀더 확실히 하려면, def addInt(a:int, b:int):return a+b처럼 파라미터에 타입을 지정하는게 가능하다. 하지만 자바스크립트에선 아예 파라미터의 타입을 지정하는 것 자체가 불가능하다. 그럼 또 입력값을 검증해야 하고, 코드는 계속 길어질것이다
  • 자바스크립트의 나쁜 부분은 매우 많지만 지금 와서 자바스크립트의 문제점을 그냥 제거할수는 없다는 점도 문제다. 전세계의 회사들이 자바스크립트를 이용하고 있고, 전세계의 수십억개의 웹사이트에서는 자바스크립트를 이용하고 있고, 자바스크립트에서 무언갈 삭제한다면, 전세계의 수많은 웹사이트들은 모두 고장나게 될것이다[5].

각주[편집 / 원본 편집]

  1. 쉽게 말하면 대부분의 크로미움 기반 브라우저들은 모두 내부에 자바스크립트 인터프리터가 내장되어 있다고 보면 된다
  2. 그렇다고 허락을 안받은건 아니고, 오라클(당시 썬 마이크로시스템즈)에게 허가를 받았다.
  3. 참고 [1]
  4. 예를 들면,function sum(...theArgs) {let total = 0;for (const arg of theArgs) {total += arg;};return total;} 출처 Rest parameters - JavaScript | MDN
  5. 그래서 지금 자바스크립트에 무언가를 추가하는 업데이트만 진행되고 있는 것이다.

{{#related:Node.js}}

• 현재 페이지 URL 줄이기