기계어 : 일반적인 컴퓨터는 0과 1의 조합으로 모든 정보를 표현하고 이해.
🔥자바스크립트(JavaScript)는 프로그래밍 언어이다.
//
다음에 작성하거나, /*
, */
사이에 작성// 문자열 'hello world'를 설명하는 주석입니다.
// 주석은 가능하면 코드 위에 작성합니다.
'hello world';
/*
여러 줄의 코드를 주석 처리할 수 있습니다.
console.log('Hello');
*/
a b c d // Uncaught SyntaxError: Unexpected identifier
1. REPL에 a b c d를 입력.
2. Uncaught SyntaxError: Unexpected identifier / 문법 에러 발생.
123; // 123
1. 123을 입력.
2. 에러가 발생하지 않는다. 문법을 잘 지킴.
console.log('hello world'); // hello world
console.log(2);
console.log(4);
console.log(6);
console.log(8);
console.log(10);
console.log(12);
console.log(14);
console.log(16);
console.log(18);
* 연산자로 좀 더 직관적으로 구구단 표현 가능.
console.log(2 * 1); // 2
console.log(2 * 2); // 4
console.log(2 * 3); // 6
console.log(2 * 4); // 8
console.log(2 * 5); // 10
console.log(2 * 6); // 12
console.log(2 * 7); // 14
console.log(2 * 8); // 16
console.log(2 * 9); // 18
100; // 정수를 표현할 수 있다.
-100; // 음수를 표현할 수 있다.
100.123; // 실수를 표현할 수 있다.
//typeof 연산자로 해당 값이 숫자 타입인지 확인할 수 있다.
typeof 100; // 'number'
typeof -100; // 'number'
typeof 100.123; // 'number'
+
, -
, *
, /
... )console.log(1 + 2); // 3
console.log(1 - 2); // -1
console.log(1 * 2); // 2
console.log(1 / 2); // 0.5
console.log(9 % 2); // 1 (9를 2로 나눈 나머지 구하기)
Math.floor()
: 괄호 안의 숫자를 내림하여 반환Math.ceil()
: 괄호 안의 숫자를 올림하여 반환Math.round()
: 괄호 안의 숫자를 반올림하여 반환Math.abs()
: 괄호 안의 숫자의 절대값을 반환Math.sqrt()
: 괄호 안의 숫자의 루트값을 반환Math.pow()
: 괄호 안의 첫 번째 숫자를 밑, 두 번째 숫자를 지수인 숫자를 반환Math.floor(100.621); // 100
Math.ceil(100.621); // 101
Math.round(100.621); // 101
Math.round(100.421); // 100
Math.abs(-100); // 100
Math.abs(100); // 100
Math.sqrt(4); // 2
Math.sqrt(2); // 1.4142135623730951
Math.pow(2, 5); // 32
'사과'
"JavaScript"
"欢迎你"
"😇"
"최초의 JavaScript는 Netscape의 Brendan Eich에 의해 만들었다."
`JavaScript (줄여서 JS)는 일급 함수를 사용하는 가벼운 객체 지향 인터프리터 언어이며
웹페이지의 스크립트 언어로 잘 알려져 있지만, 브라우저가 아닌 환경에서도 많이 사용된다.
프로토타입 기반, 다중 패러다임 스크립트 언어이며, 동적이고 명령어, 객체 지향, 함수 프로그래밍
스타일을 지원한다.`
+
로 문자열을 이어 붙일 수 있다. "안녕하세요" + "!!"; // 안녕하세요!!
"감사합니다." + " " + "🙏" // 감사합니다. 🙏
1 + "1" // 11
console.log('欢迎你'.length); // 3
console.log('최초의 JavaScript는 Netscape의 Brendan Eich에 의해 만들었다.'.length); // 48
인덱스(Index)
로 확인할 수 있다.let str = 'codestates';
console.log(str[0]); // 'c'
console.log(str[4]); // 's'
toLowerCase()
: 문자열을 소문자로 변경toUpperCase()
: 문자열을 대문자로 변경concat()
: 문자열 연결 연산자 +처럼 문자열을 이어 붙일 수 있다.slice()
: 문자열의 일부를 자를 수 있다.'HELLO WORLD'.toLowerCase(); // 'hello world'
'hello world'.toUpperCase(); // 'HELLO WORLD'
'hello '.concat('world'); // 'hello world'
'hello world'.slice(0, 5); // 'hello'
indexOf()
: 문자열 내에 특정 문자나 문자가 몇 번째 위치하는지 확인.'🍎🍓🍉🍇'.indexOf('🍎'); // 0
'🍎🍓🍉🍇'.indexOf('🖥'); // -1
'최초의 JavaScript는 Netscape의 Brendan Eich에 의해 만들었다.'.indexOf('Eich'); // 34
'최초의 JavaScript는 Netscape의 Brendan Eich에 의해 만들었다.'.indexOf('Dahl'); // -1
includes()
: 문자열 내에 특정 문자나 문자가 포함되어 있는지 확인.'🍎🍓🍉🍇'.includes('🍎'); // true
'🍎🍓🍉🍇'.includes('🖥'); // false
'최초의 JavaScript는 Netscape의 Brendan Eich에 의해 만들었다.'.includes('Eich'); // true
'최초의 JavaScript는 Netscape의 Brendan Eich에 의해 만들었다.'.includes('Dahl'); // false
true;
false;
true
로 “여겨지는” 값은 truthy
값이라고 한다. // 대표적인 falsy 값
false
0
-0
0n
""
''
``
null
undefined
NaN
===
, !==
: 엄격한 동치 연산자true
, 다르면 false
를 반환 (값, 타입 일치)false
가 된다.123 === (100 + 23); // true ("123의 값과 100 + 23의 값은 같다."는 사실이기 때문에 true)
123 === '123'; // false ("123의 값과 '123'의 값은 같다."는 사실이 아니기 때문에 false)
123 !== (100 + 23); // false ("123의 값과 100 + 23의 값은 같지 않다."는 사실이기 아니기 때문에 false)
123 !== '123'; // true ("123의 값과 '123'의 값은 같지 않다."는 사실이기 때문에 true)
==
, !=
: 느슨한 동치 연산자true
, 다르면 false
를 반환 (값 일치)12 == '12' // true
>
, <
, >=
, <=
: 대소 관계 비교 연산자100 > 200; // false ("100은 200보다 크다."는 거짓)
200 > 100; // true ("200은 100보다 크다."는 참)
100 >= 100; // true ("100은 100보다 크거나 같다."는 참)
200 <= 100; // false ("200은 100보다 작거나 같다."는 거짓)
||
: 논리합(OR)//두 값 중 하나만 true여도 true로 판단
true || false; // true
false || true; // true
100 > 200 || 200 > 100; // true ("100은 200보다 크다" 혹은 "200은 100보다 크다" 중 하나는 true)
//두 값이 모두 false면 false로 판단
false || false // false
200 < 100 || 20 < 10; // false
&&
: 논리곱(AND)//두 값이 모두 true면 true로 판단
true && true // true
200 > 100 && 20 > 10; // true
//두 값 중 하나만 false여도 false로 판단
true && false // false
false && true // false
100 > 200 && 200 > 100; // false
!
: 부정(NOT)//오른쪽 피연산자와 반대의 사실을 반환
!true // false
!(100 > 200) // true
//falsy, truthy의 반대 값을 반환
!0 // true
!'' // true
!1 // false
!'코드스테이츠' // false
↓ 좌변의 3을 4로 바꾸어 3단을 4단으로 변경.
let num; // 변수 선언
//변수 선언 키워드 : let
//변수 : num
변수 선언으로 구구단 5단을 출력해보자.
let num; // 변수 선언
num = 5; // 값 할당
console.log(num * 1); // 5
console.log(num * 2); // 10
console.log(num * 3); // 15
console.log(num * 4); // 20
console.log(num * 5); // 25
console.log(num * 6); // 30
console.log(num * 7); // 35
console.log(num * 8); // 40
console.log(num * 9); // 45
undefined
가 자동으로 할당.let variable; // 아무것도 할당하지 않음
console.log(variable) // undefined
할당연산자(=)
를 사용한다.let name = 'kimcoding';
console.log(name) // 'kimcoding'
name = 'parkhacker'; //name에 재할당
console.log(name) // 'parkhacker'
let
키워드가 아닌 const
키워드를 사용하면 재할당이 금지.const
는 상수.const name = 'kimcoding';
console.log(name) // 'kimcoding'
name = 'parkhacker'; // Uncaught TypeError: Assignment to constant variable.
카멜 케이스(camelCase)
를 사용.// 🐪카멜 케이스(camelCase)
let firstName = 'coding';
let lastName = 'kim';
외에 다양한 네이밍 사용법은 아래를 클릭.
보러가기
let number = 10;
console.log(number + 2); // 12
console.log(number - 5); // 5
console.log(number * 3); // 30
console.log(number / 2); // 5
console.log(number % 3); // 1
console.log(number); // 10
각각 독립적으로 이뤄져 있는 number를 이용하여 연산의 결과를 변수에 반영하려면?
let number = 10;
number = number + 2;
console.log(number); // 12
number = number * 3;
console.log(number); // 36
이 처럼 재할당을 이용해서 변수끼리의 연산도 가능하다.
let course = 'SEB FE';
let cohort = 99;
let name = 'kimcoding';
console.log(`${course} ${cohort} ${name}`); // 'SEB FE 99 kimcoding'