본문 바로가기
JavaScript

[JavaScript] 제로초 강의 2강 공부

by 박헹구 2021. 8. 15.
반응형

 

parseInt : 문자열을 정수로 바꾼다.

parseFloat : 문자열을 소수로 바꾼다.

 

ex) parseInt('3.14') => 3

parseFloat('3.14') => 3.14

 

ex) typeof parseInt(prompt())) => number

prompt : 사용자가 직접 값을 입력할 수 있다. (문자열 입력)

 

숫자로 바꾸려면 parseInt(prompt()); 로 해주면 된다.


'문자열' + 0 을 하면 "문자열 0" 으로 숫자였던 0이 문자열로 바뀐 후 문자열과 더해진다. 이처럼 바뀌는 행위를 type casting(형 변환) 이라고 한다.

 

0.1+0.2 = 0.300000004; 가 나온다 

이런 이유는 컴퓨터가 2진법으로 계산하는데 소수점을 나타내주는게 힘들다.

부동소수점 계산을 검색

 

이런부분을 계산하기 위해서

(0.1 * 10 + 0.2 * 10)/10

이렇게 해주면 원하는 결과 0.3이 나오게 된다. 

 

  • 논리연산자
논리연산자
&& and
|| or
! true이면 false
false이면 true
!! true이면 true
false이면 false
   
   
논리연산자의 우선순위
!(2 < 0);
> true
!2 < 0;
> false

- !연산자의 우선순위가 < 연산자의 순위보다 높다

형 변환 했을 때 false가 되는 값 즉 거짓인 값 (falsy value)

1. ' '(빈문자열)

2. 0

3. NaN

4. undefined

5. null

6. document.all(잘사용 안됨)

7. false

 

null은 사용자가 의도적으로 빈 값을 넣을때 씀.

null == undefined

> true

null === undefined

> false

 

typeof null; > "object"

자바스크립트의 버그로써 원래의 값은 null 이 되어야 하지만 object로 나온다. 

이미 많은사람들이 쓰고 있는 부분이라 버그이나 값 수정이 불가능.

 

  • Switch
switch(조건식) {
case 비교조건식:
동작문;
}

let value = 'B';
  switch (value) {
    case 'A':
      console.log('A');
    case 'B':
      console.log('B');
    case 'C':
      console.log('C');
    default:
      console.log('아무것도 실행안됨')
  }
  
  >> B
  >> C

if와 다르게 switch문은 B가 실행되면 아래 C도 같이 실행되어서 값이 B, C가 나온다. 

그렇기 때문에 B만 실행되고 끝내고 싶은경우에는 console.log('B')아래에 break;를 적어주면 된다.

또한 value 값이 A, B, C가 아닌 다른 값이 들어갔을 때 default 가 실행되어 >> 아무것도 실행안됨이 찍힌다.

 

  •  조건부 연산자(삼항 연산자)조건식? true일 때 실행되는 식 : false일 때 실행되는 식
let value = 5 <  2 ? '참입니다' : '거짓입니다';



> value;

>> "거짓입니다"

let a = false;
let b = true;

let value = a? 'a가 참' : (b? 'b가 참' : '둘 다 거짓')
console.log(value);

>>b가 참

✔ 배열

unshift - 배열 맨 앞에 값을 넣어준다

shift - 첫번째 요소 제거

const target = ['나','다'];
target.unshift('가');

console.log(target)

>>['가','나','다']

const target = ['가','나','다'];
target.shift();

console.log(target)

>>['나','다']

push - 배열 끝에 추가 

pop - 마지막 요소 제거

const target = ['가','나','다']
target.push('라');

console.log(target)

>>['가','나','다','라']

const tartget= ['가','나','다','라']
target.pop();

console.log(target)

>>['가','나','다']

const는 엄밀히 말하면 상수는 아니다. const에 새로운 값을 대입(=)은 못하나 객체가 대입된 경우 객체 내부의 속성이나 배열의 요소는 수정이 가능하다.

  •  splice
const target = ['가','나','다','라','마'];
target.splice(2, 2); //인덱스 2번에서 2번째 자리까지 지워라
console.log(target)

>>['가','나','마'];

const target = ['가','나','다','라','마'];
target.splice(1); //1번이후부터 뒤에 싹지워버려라.
console.log(target);

>>["가"]

const target = ['가','나','다','라','마'];
target.splice(1, 3, '타','파'); //첫번째 인덱스부터 3개까지 지우고 그자리에 타 파를 껴 넣어라
console.log(target);

>>["가","타","파","마"];

//만약에 하나도 지우지 않고 중간에 껴 넣고 싶으면

const target = ['가','나','다','라','마'];
target.splice(2, 0, '바') //두번째 자리를 지우지말고 바를 껴넣기
console.log(target)

>> ["가","나","바","다","라","마"]
  •  includes - 배열에 특정 요소가 있는지 찾아본다(일종의 검색 기능)
const target = ["강아지","병아리","고양이","독수리"];
const result = target.includes("강아지");
const result1 = target.inclueds("멍멍이");
console.log(result);
console.log(result1);

>> true //강아지가 target에 있다.
>> false // 멍멍이는 target에 없다.
  • indexOf와 lastIndexOf(몇 번째 인덱스에 위치하는지)
const target = ['라','나','다','라','다'];
const result = target.indexOf('다');
const result2 = target.lastIndexOf('라');
const result3 = target.indexOf('가');

console.log(result)
console.log(result2)
console.log(result3)

>> 2 // 앞에서 부터
>> 3 // 뒤에서 부터 찾는다
>> -1 //값이 없으면 -1이 나온다​

splice와 indexOf 사용해서 값 지우기

위의 풀어쓴 설명을 반복문으로 돌리면 이와 같다.

 parameter선언 argument 인수

 

parameter = 'argument'

 

  • 객체 리터럴 - 속성(property)의 이름과 값이 필요한 경우 
const hyem = {
name : "헹구",
month: "8",
date : "5",
gender: "F",
};

//특별한 경우 앞에도 " ", ' ' 들어가야함

const abc = {
a : "hello",
'1a" : "hello", //앞에 숫자가 있는경우
"c a" : "hello", //띄어쓰기 있는경우
"c-1" : "hello",
}

hyem.name; //헹구
abc.['1a'] // 특별한 경우에는 대괄호로 해주어야 에러가 나지 않는다.

배열은 단순히 index만 있기 때문에 묶어놓는 용도로만 사용할 때 배열을 쓰고 

속성의 이름과 값이 필요한 경우에는 객체 리터럴을 사용한다.

 

  • method(메소드) - 객체의 속성 값으로 함수를 넣었을 때를 의미한다.

 

{} === {} //false

'str' === 'str' //true

//객체끼리의 비교는 변수에 저장하고 비교해야함.

const a = {name: 'hyem'};
connst array = [1, 2, a];
console.log(a === array[2]); // true

array === [1, 2, a];  //false 왜냐하면 다시한번 [1, 2, a]를 아래에서 새로 만든 것 이기 때문이다.
반응형

댓글