한 걸음씩
[JS][udemy] Primitive Types 본문
> console창 초기화 방법
- clear()
- cmd + k
1. Primitive Types
► Number
- 하나의 숫자 타입만 가짐
- 정수, 양수, 음수, 소수, 십진수
- 제곱(**), 곱셈(*), 나눗셈(/), 덧셈(+), 뺄셈(-) (PEMDAS)
- 나머지(%), 몫(//)
- NaN(NOT A NUMBER) :
typeof 4
>> "number"
typeof NaN
>> "number"
0 / 0
>> NaN
1 + NaN
>> NaN
200 + 0 / 0
>> NaN
► Variables
- 값을 저장하고 활용가능
- 숫자뿐만 아니라 다양한 타입들도 가능
- 변수명을 지을 때 '의미' 측면에 신경 쓰기
- 변수 이름은 숫자로 시작할 수 없음
- snake case : underscore(_) 사용가능 (uncommon)
- camel case : 변수 첫 문자(소문자로 시작)를 제외한 단어가 등장 시 대문자로 표시 (common)
// BASIC SYNTAX
// let : 값 변경 가능 변수
let someName = value;
// RECALL VARIABLES
let numHens = 5;
let numRoosters = 1;
numHens + numRoosters
>> 6
// 아래 두 코드는 같은 코드
let score = 5;
score = score + 5
>> 10
score += 5
>> 10
// ++ -- 와 같이 축약해서 사용가능하고 1씩 증가/감소
score++
>> 11
// const : 값 변경 불가 변수
// 값을 바꾸지 않을 경우에 사용 ; 데이터 구조를 공부하면 이해 가능
const boilingPointC = 100;
const boilingPointF = 212;
// VAR
// let과 비슷함 (let이 등장하기 전에 유일하게 사용됨)
► Boolean
- True or False
true
>> true
false
>> false
let isActiveGame = true;
isActiveGame
>> true
► String
- 문자열은 변경 불가능
// 큰따옴표 또는 작은따옴표로 문자열을 감쌀 것
let username = "danny";
// strings are indexed
let animal = "chicken";
0123456
// 문자열은 0부터 카운트
// 문자 사이의 공백도 카운트
// 인덱스 범위를 벗어난 경우 : undefined
animal.length
>> 7
"apple".length
>> 5
"apple"[0]
>> a
"hello" + "js"
>> "hellojs"
// 문자와 숫자 결합시 숫자를 문자열로 바꿔서 합쳐버림
// 타입은 문자열
let result = 1 + "hi"
result
>> "1hi"
typeof result
>> "string"
typeof 1
>> "number"
◆ String Methods
- 특정 문자열을 사용해 수행할 수 있는 동작을 메서드라고 함
thing.method()
// 대문자로 바꾸는 메소드
let msg = 'hellojs";
msg.toUpperCase()
>> "HELLOJS"
let helloMsg = msg.toUpperCase()
helloMsg
>> "HELLO"
// 소문자로 바꾸는 메소드
thing.toLowerCase()
// 문자열의 좌우 공백 삭제
let userInput = " hello my name is tim"
userInput.trim()
>> "hello my name is tim"
// 메소드를 연속해서 사용할 때
let greeting = " hello again!!! "
greeting.trim().toUpperCase()
>> "HELLO AGAIN!!!"
◆ arguments (인수)
- 메서드로 전달되어서 메서드의 동작을 변경하는 입력 값
thing.method(arg)
○ indexOf : 찾고자 하는 인수의 첫 번째 인덱스 값을 반환
let tvShow = 'catdog';
tvShow.indexOf('cat');
>> 0
tvShow.indexOf('dog');
>> 3
tvShow.indexOf('z');
>> -1 (not found)
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
String.prototype.indexOf() - JavaScript | MDN
indexOf() 메서드는 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.
developer.mozilla.org
○ slice : 문자열 일부를 추출하고 반환
let str = "abcdefghijk";
// (시작하는 지점, 끝나는 지점)
str.slice(0,5);
>> "abcde"
// (지정한 인덱스부터 끝까지)
str.slice(5);
>> "fghijk"
// 음수로 접근해서 마지막 문자부터 추출
str.slice(-1);
>> "k"
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/slice
String.prototype.slice() - JavaScript | MDN
slice() 메소드는 문자열의 일부를 추출하면서 새로운 문자열을 반환합니다.
developer.mozilla.org
○ replace : (바꿀문자, 바뀔 문자) / 문자열 속 첫 번째 인수가 중복이 될 경우 가장 먼저 등장하는 문자만 치환
let annoyingLaugh = 'teehee so funny! teehee!';
annoyingLaugh.replace('teehee', 'haha');
>> 'haha so funny! teehee!'
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replace
String.prototype.replace() - JavaScript | MDN
replace() 메서드는 어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환합니다. 그 패턴은 문자열이나 정규식(RegExp)이 될 수 있으며, 교체 문자열은 문자열이나 모든 매치에
developer.mozilla.org
○ repeat : 반복하고 싶은 횟수만큼 입력
let greeting = 'hi';
greeting.repeat(3);
>> 'hihihi'
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/repeat
String.prototype.repeat() - JavaScript | MDN
repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.
developer.mozilla.org
◆ template literals
- 템플릿 리터럴 사용 시 반드시 백틱(`) 사용
`I counted ${3 + 4} sheep`;
>> "I counted 7 sheep"
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
Template literals (Template strings) - JavaScript | MDN
Template literals are literals delimited with backtick (`) characters, allowing for multi-line strings, string interpolation with embedded expressions, and special constructs called tagged templates.
developer.mozilla.org
► Null
- 일부러 값을 지정하지 않는 걸로 설정하는 것
// 말 그대로 값이 없는 것
let loggedInUser = null;
loggedInUser = 'Alan Rickman';
► Undefined
- 아무것도 정의되지 않은 것
let n;
>> undefined
► Math object
Math.PI
>> 3.141592653589793
// 반올림
Math.round(4.9)
>> 5
// 절대값
Math.abs(-456)
>> 456
// 제곱
Math.pow(2,5)
>> 32
// 버림
Math.floor(3.9999)
>> 3
// 올림
Math.ceil(34.1)
>> 35
◆ Random Integers
const step1 = Math.random();
>> 0.6107943208569846
const step2 = step1 + 10;
>> 10.610794320856984
const step3 = Math.floor(step2);
>> 10
const step4 = step3 + 1
>> 11
Math.floor(Math.random() * 10) + 1;
>> 6
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math
Math - JavaScript | MDN
Math 는 수학적인 상수와 함수를 위한 속성과 메서드를 가진 내장 객체입니다. 함수 객체가 아닙니다.
developer.mozilla.org
'JS' 카테고리의 다른 글
[JS][udemy][multicampus] JS Object Literals (0) | 2023.03.14 |
---|---|
[JS][multicampus]Basic syntax of JavaScript (0) | 2023.03.14 |
[JS][udemy][multicampus] Arrays (0) | 2023.03.13 |
[JS][udemy] JS 판단 내리기 (0) | 2023.03.13 |
[JS][multicampus] History and DOM (0) | 2023.03.13 |