
시작하기 전에...
아래 내용은 필자의 지극히 주관적인 의견입니다. 그저 이런 사람도 있구나 생각하고 읽어주세요, 감사합니다.
(피드백과 의견은 항상 환영입니다!)
JS(JavaSpcript)는 프로그래밍 언어 중 하나로 스크립트 언어이다. 웹 개발을 하는 사람이라면 필수 소양 중 하나인 언어다.
낭만적인 언어 포스트가 왜인지 모르겠지만 꽤 많은 관심을 받으면서 주변에 프론트 개발자인 친구가 이 글에 아이디어를 제공했다.
???: 아니 JS만큼
개같은낭만있는 언어가 없다니까?
이런 소리 하는 사람은 좀 맞자 잘 없을 것이라고 생각하지만. 실제로 Java와 JS는 엄연히 다른 언어이며 그저 이름에 Java가 공통적으로 들어갈 뿐이다.
비유하자면 인도와 인도네시아 같은 느낌이다.

들리는 소문으로는 개발 당시에 Java가 유명하고 많이 아는 언어였기에 유행 좀 타볼라고 이름에 Java를 넣었다나 뭐라나...
일단 본격적으로 JS를 접한건 올해 초 웹 프로그래밍 기초 과목을 들으면서 접하게 되었다. 결론부터 말하자면 나에게는 혼돈 그 자체였다.
일단 변수 선언 시에 따로 자료형이 없다, 그냥 "let" 혹은 "const" 등으로 변수 선언 후 알잘딱으로 쓰면 된단다.
let i; // 선언, "undefined"가 저장됨
let sum = 0; // 선언과 초기화
let i, sum; // 한 번에 여러 개의 변수를 함께 선언할 수 있음
let i=0, sum=10, message=”Hello”; // 선언과 초기화를 동시에 해줄 수 있음
일단 이거부터 좀 혼동이었다. 어떻게 변수에 자료형이 없지..? 라는 생각이 머릿속에 맴돌았다.
JS를 논하면서 함수를 빼먹을 수 없다. JS는 정말 다양한 함수가 있다 익명 함수, 화살표 함수 등등...
근데 이 익명 함수가 정말 골때린다, 무려 "변수 안에 함수를 집어넣어서" 선언한다.
let test = function(){
console.log("Java")
}

이건 좀 아닌거 같다.
그리고 JS를 공부하면 나오는 가장 유명한 짤 "banana"이다. 실제로 구글에 banana js 라고만 검색해도 수두룩하게 나온다.

정말이지 해괴망측한 언어다.
???: 아니 이런 언어가 세상에 없다니까? 이건 해괴망측한게 아니라 특별한거야!
그만 알아보도록 하자.
JS도 좋은 언어이긴 하지만 Java에 찌들어버린 나에게는 너무나 어려운 친구다. 그래도 조금 부럽운 점은 거의 모든 부분이 가능하다는 점..?
프론트는 물론이고 백엔드까지 다양한 라이브러리와 프레임워크가 있어서 JS 하나만 잘 배워두면 풀스택 개발자가 마냥 꿈은 아닌 것 같다.

객체 지향을 생각해 보다가 모든 것이 객체가 되면 어떨까 상상해 보면 JS처럼 될 것 같습니다.
변수도 객체가 되면 필요에 따라서 타입도 자동으로 바뀌고 메모리도 자동으로 할당하는 만능 변수를 만들면 되고 그러면 직접 자료형을 정의할 필요가 없으니 let, const로 객체가 만들어졌다는 것만 알면 되겠다.
함수는....함수도 객체이니 변수처럼 사용해도 되겠다.
+"a" 도 문자열 객체이니 오퍼레이터 처리를 하면 되겠다.
모든 것이 객체라면 객체 지향도 아닌 객체 언어라고도 할 수 있겠다. 라는 생각을 하게 되네요.
자바로도 다 되는디...