한 걸음씩

[JS][udemy] Primitive Types 본문

JS

[JS][udemy] Primitive Types

winter17 2023. 3. 8. 20:56

> 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