자바스크립트는 변수의 데이터 유형을 런타임 시간에 자동으로 파악하기 때문에 개발자가 변수를 선언할 때 데이터 유형을 명시적으로 지정할 필요가 없음
=> 코드 단순화, 유연성 높임
자바스크립트는 객체의 속성을 런타임 시간에 동적으로 추가하거나 제거할 수 있음
=> 객체의 구조를 필요에 따라 유연하게 변경할 수 있게 해줌
자바스크립트는 함수를 동적으로 생성하고 호출할 수 있음
=> 함수는 객체로 취급되며, 런타임 시간에 생성하고 전달할 수 있음
자바스크립트는 프로토타입 기반의 상속을 지원함
=> 객체 간의 상속을 구현할 때 클래스 기반 언어보다 더 유연하게 동작할 수 있도록 해줌
자바스크립트는 함수를 변수에 할당하거나 함수를 인자로 받는 함수, 함수를 반환하는 함수를 만들 수 있음
=> 함수를 일급 객체로 취급하여 다양한 패턴을 구현할 수 있도록 함
자바스크립트는 클래스 기반의 언어와는 달리 프로토타입 기반의 상속을 지원
=> 객체의 속성과 메서드를 상속하고 확장할 수 있음