[JS] Primitive

> 콘솔창 초기화 방법

-분명한()

-cmd+k

1. 원시 유형

►번호

  • 숫자 유형만 있음
  • 정수, 양수, 음수, 십진수, 십진수
  • 제곱(**), 곱셈
  • 나누기(/), 더하기(+), 빼기(-) (PEMDAS)
  • 나머지(%), 몫(//)
typeof 4
>> "number"

typeof NaN
>> "number"

0 / 0
>> NaN

1 + NaN
>> NaN

200 + 0 / 0
>> NaN

NaN(숫자가 아님):

  • ► 변수
  • 값을 저장하고 사용할 수 있습니다.
  • 다양한 종류와 숫자
  • 변수 이름을 지정할 때 “의미” 측면에 주의하십시오.
  • 변수 이름은 숫자로 시작할 수 없습니다.
  • Snakefall: 밑줄(_) 사용 가능(흔하지 않음) 낙타 케이스
// 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이 등장하기 전에 유일하게 사용됨)

: 변수의 첫 글자를 제외한 단어는 대문자로 표시(소문자로 시작)(공통)

  • ► 부울
true
>> true
false
>> false

let isActiveGame = true;
isActiveGame
>> true

옳고 그름

  • ►문자열
// 큰따옴표 또는 작은따옴표로 문자열을 감쌀 것
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"

문자열은 변경할 수 없습니다.

  • 문자열 메서드
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!!!"

특정 문자열에 대해 수행할 수 있는 작업을 메서드라고 합니다.

  • 인수
thing.method(arg)

메서드의 동작을 변경하기 위해 메서드에 전달되는 입력 값입니다.

let tvShow = 'catdog';

tvShow.indexOf('cat');
>> 0
tvShow.indexOf('dog');
>> 3
tvShow.indexOf('z');
>> -1 (not found)

indexOf: 검색된 인수의 첫 번째 인덱스 값을 반환합니다.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

String.prototype.indexOf() – 자바스크립트 | MDN

indexOf() 메서드는 지정된 값과 일치하는 String 개체의 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.

developer.mozilla.org

let str = "abcdefghijk";

// (시작하는 지점, 끝나는 지점)
str.slice(0,5);
>> "abcde"

// (지정한 인덱스부터 끝까지)
str.slice(5);
>> "fghijk"

// 음수로 접근해서 마지막 문자부터 추출
str.slice(-1);
>> "k"

슬라이스: 문자열의 일부를 추출하고 반환합니다.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/slice

String.prototype.slice() – 자바스크립트 | MDN

Slice() 메서드는 문자열의 일부를 추출하고 새 문자열을 반환합니다.

developer.mozilla.org

let annoyingLaugh="teehee so funny! teehee!";

annoyingLaugh.replace('teehee', 'haha');
>> 'haha so funny! teehee!'

replace : (바꿀 문자, 바꿀 문자) / 문자열의 첫 번째 인수가 중복되면 첫 번째 문자만 교체

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/replace

String.prototype.replace() – 자바스크립트 | MDN

replace() 메서드는 패턴의 일치하는 일부 또는 전체가 교체된 새 문자열을 반환합니다. 패턴은 문자열 또는 정규식(RegExp)일 수 있으며 대체 문자열은 문자열 또는 모든 일치 항목일 수 있습니다.

developer.mozilla.org

let greeting = 'hi';

greeting.repeat(3);
>> 'hihihi'

반복: 반복 횟수를 입력합니다.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/repeat

String.prototype.repeat() – 자바스크립트 | MDN

repeat() 메서드는 지정된 횟수만큼 문자열을 연결하여 새 문자열을 반환합니다.

developer.mozilla.org

  • 템플릿 리터럴
`I counted ${3 + 4} sheep`;
>> "I counted 7 sheep"

템플릿 리터럴을 사용할 때는 백틱(`)을 사용해야 합니다.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

템플릿 리터럴(템플릿 문자열) – JavaScript | MDN

템플릿 리터럴은 백틱(`)으로 구분된 리터럴로 여러 줄 문자열, 포함된 표현식이 있는 문자열 보간 및 태그가 지정된 템플릿이라는 특수 구문을 허용합니다.


developer.mozilla.org

  • ►제로
// 말 그대로 값이 없는 것
let loggedInUser = null;

loggedInUser="Alan Rickman";

의도적으로 무기한 값 설정

  • ► 정의되지 않음
let n;
>> undefined

아무것도 정의되지 않았습니다

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

►수학적 객체

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/en/docs/Web/JavaScript/Reference/Global_Objects/Math

수학 – 자바스크립트 | MDN

Math는 수학 상수 및 함수에 대한 속성과 메서드가 있는 내장 개체입니다. 함수 개체가 아닙니다.

developer.mozilla.org