[TIL-6]

da.circle·2022년 9월 19일
0

TIL

목록 보기
6/44

JavaScript

반복문(loop iterate/Iteration Statements)

for 문

  • 초기값, 비교식, 증감연산을 같이 제어할 수 있다.

    for(초기화문; 조건문; 증감식){반복할 로직}

  • 증감식에는 할당 연산자를 사용한다.
/*1부터 10까지의 합*/
let sum = 0;
for(let i=0; i<11; i++){
	/*보통 i로 많이 쓴다(index)*/
	sum += i;
}
console.log(sum); //55
  • 순서!

    1. i=0이고, sum에 i를 더한다!
    2. i에 1을 더한다!(i++)
    3. i값이 11보다 작은지 판단한다!
    4. i값이 11보다 작으므로 sum에 i를 더한다!
    5. 반복하다가 i값이 11이 되면?
    6. i<11이 false이므로 로직을 종료하고 for문을 빠져나간다!
  • 무한루프

for(;;){
	console.log("안녕하세요!");
}

참고)할당 연산자

  • 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당한다.
  • 기본적인 할당 연산자는 오른쪽의 피연산자 값을 왼쪽 피연산자 값에 할당하는 등호(=)이다. → x = y는 y값을 x에 할당한다.
이름복합 할당 연산자
할당x = yx = y
덧셈 할당x += yx = x + y
뺄셈 할당x -= yx = x - y
곱셈 할당x *= yx = x * y
나눗셈 할당x /= yx = x / y
나머지 연산 할당x %= yx = x % y
지수 연산 할당x ** = yx = x ** y

ex) 1부터 10까지의 수에서 짝수만 배열에 넣기

let arr = [];
for(let i=2; i<11; i+=2){
	arr.push(i);
}
console.log(arr); //(5) [2, 4, 6, 8, 10]

문자열과 배열

  • 한 글자 이상의 문자열을 한글자씩 배열에 넣어보자
function getString(str) {
  let arr = [];

  for(let i=0; i<str.length; i++){
    arr.push(str[i]);
  }
  
  return arr;
}

객체(object)

'이름(key):값(value)' 형태의 프로퍼티들을 저장한다.

  • 여러개의 프로퍼티들을 포함할 수 있다.
  • 프로퍼티는 쉼표로 구분한다.
  • 배열과 다르게 순서가 없다!

객체 리터럴(Object Literal) 방식

let obj = {
            name : '홍길동',
            address : '서울특별시',
            age : 24
            //쉼표 반드시 넣기
        };

console.log(obj.name);
//obj에서 name을 출력

dot notation

  • 객체명.key
  • key이름에 공백이 없어야한다.
  • key가 숫자로 시작하면 안된다.
  • $, _ 를 제외한 특수문자가 있으면 안된다.
console.log(obj.name); //홍길동
console.log(obj.address); //서울특별시
console.log(obj.age); //24

bracket notation

  • dot notation이 알수없는 key값을 사용할 때 쓴다.
  • key값은 반드시 “”나 ‘’로 감싸야 한다.
  • 변수를 통해서도 값을 가져올 수 있다.
console.log(obj["name"]); //홍길동
console.log(obj["address"]); //서울특별시
console.log(obf["age"]); //24

/*변수를 통해서 값 가져오기*/
let str = 'name';
console.log(obj[str]); //홍길동

객체 수정

  • 이미 있는 프로퍼티에 값을 재할당할 수 있다.
let obj = {
            name : '홍길동',
            address : '서울특별시',
            age : 24
        };

obj.address = '경기도';

console.log(obj); //{name: '홍길동', address: '경기도', age: 24}

객체 속성 추가

  • 존재하지 않는 프로퍼티에 값을 할당하면 추가된다.
let obj = {
            name : '홍길동',
            address : '서울특별시',
            age : 24
        };

obj.mbti = 'ISFP';

console.log(obj); //{name: '홍길동', address: '경기도', age: 24, mbti: 'ISFP'}

객체 속성 삭제

  • delete 객체명.key값
delete obj.address;

console.log(obj); //{name: '홍길동', age: 24, mbti: 'ISFP'}

객체 안의 객체 접근

let myCat = {
            name : '고냥이',
            age : 8,
			'favorite food': {
				main : '통조림캔',
				snack : '츄르'
			}
						
        };

let snack = myCat['favorite food'].snack;
console.log(snack); //츄르

객체 안의 배열 접근

let myPets = [
	
	{
		type: 'cat',
		list: [
			'고걍이',
			'고냥이',
			'고댱이'
		]
	},
	{
		type: 'dog',
		list: [
			'강강이',
			'낭낭이',
			'당당이'
		]
	}
];

let findMyPet = myPets[0].list[1];
console.log(findMyPet); //고냥이

함수부터 어려워지기 시작했다! 객체에서는 생각보다 시간이 오래 걸렸다...연습을 많이 해야할 것 같다!

profile
프론트엔드 개발자를 꿈꾸는 사람( •̀ ω •́ )✧

0개의 댓글