21.02.22 TIL

J·2021년 2월 22일
0

함수 선언/표현식

  1. 함수 선언식 - 바로 function 시작
function plusOne(input1) {
  input1 = input1 + 1;
  return input1;
}

2. 함수 표현식 - let 으로 선언 후 function 할당 (내가 이해 못 했던 부분)(문자열 6번)

let minusOne = function (input2) {
  input2 = input2 - 1;
  return input2;
};

method : 객체 안에 정의된 함수, 객체를 통해서 호출되는 함수

this : 실행 중에 this가 포함된 라인(scope)를 가능하게 하신 분

this 가 어려운 이유는 실행 중에 변하기 때문(동적)

함수 실행시 foo1(); → foo1함수의 값 반환

foo1; → 함수 foo1 자체를 반환

배열 - 순서를 가지는 고등객체

원본 배열 유지 : split / slice / join / concat ...

원본 배열 수정 : splice / push / pop / (un)shift ...

push / pop / (un)shift 이 메소드 들은 length 값 return - 헷갈리니 mdn 참고

array.slice(0, n); // 처음부터 n - 1 번째 idx 까지 추출

return array; → 헛짓(기껏 바꿔놓고 이전의 원본 값 추출) → return array.slice(0, n) 이렇게 해야 수정된 원하는 값 추출

배열은 대괄호 [ ] 로 구분짓는다.

ex) let fruits = ['apple', 'banana', 'pineapple'] // 과일들을 '요소(element)' 라고 부른다.

fruits[2] = 'pineapple'
fruits[3] = undefined

배열 안의 배열도 조회 가능 -> 다차원 / 다중 배열

let myNumber = [[1, 2], [3, 4], [5, 6]]

ex) myNumber[1][0]; // myNumber 변수의 [1]번째 배열의 [0]번째 요소값 조회 // 3

myNumber.length; // myNumber 변수의 길이 // 3

myNumber.push(7, 8); // () 요소값을 배열 뒤에 추가 // [7, 8]

myNumber.pop(); // 마지막 요소값을 제거

myNumber.unshift(); // 처음에 () 내부의 요소값 추가

myNumber.shift(); // 처음 요소값 제거

배열 여부 메소드

Array.isArray() // boolean 타입 반환

indexOf, includes

indexOf - 있다면 몇 번째 or 없으면 -1

let words = ['red', 'blue' ,'grey'] // 영문자일 경우 대소문자 구분 잘 해야 함

words.indexOf('red') = 0;

words.indexOf('purple') = -1; // 배열 내 없는 요소를 찾을 경우 -1 값으로 반환한다.

이를 이용하여 words.indexOf('grey') ≠= -1 // true

      words.indexOf('yellow') ≠= -1 // false 

includes - 포함여부 boolean 반환

words.includes('red'); // true

words.includes('black'); // false

객체 - 순서를 가지지 않음

형식 : 키 & 값(value)

let user = {

firstName : 'steve',

lastName : 'Lee',

e-mail : '—-@—-.com',

...

} → { } 로 객체 생성하고, 키 / 값 쌍은 쉼표로 구분한다.

객체의 값을 사용하는 방법

  1. Dot notation

    ex) user.firstName; // 'Steve'

  2. Bracket notation

    ex) user['firstName']; // 'Steve'

    Bracket notation의 경우 객체 키에 문자열 ' ' 을 꼭 넣을 것 !(안 넣으면 에러)

    ex) tweet['content'] === tweet.content

    tweet[content] ≠= tweet['content'] || tweet.content // tweet[content] : content 라는 변수를 보는 것('content'라는 문자열을 보는 게 아닌)

객체 값은 어떤 형태든 가능하다 → 문자열 ' ', boolean, 배열 등

delete tweet.firstName; 해당 키 값 삭제

'e-mail' in user; // true; → in 연산자로 boolean 해당 키 여부 확인 가능

for (let arr[i] of arr) = for (let i = 0; i < arr.length; i++)

for in : 객체에서의 반복문

for of : 배열에서의 반복문

0개의 댓글