[JS] array, object, loop, while

강의 출처 : The Complete Javavscript - Jonas(Udemy)

Section 3 - JavaScript Fundamentals 2

Function

Function expression

 const calcAge2 = function(birthYear){
     return 2037 - birthYear;
 }

Function declaration

 function calcAge2(birthYear){
     return 2037 - birthYear;
 }

Arrow function

변수에 할당된다는 점 기억할 것!

const  calcAge = birthYear => 2037 - birthYeah;

Array

Array 자체가 const로 정의되었어도 안의 item을 수정할 수 있다. mutable datatype.
하지만 array 자체가 바뀔 수는 없음!

const years = new Array(1991, 1984, 2008, 2020);
const friends = ['Michael', 'Steven', 'Peter'];
friends[2] = 'Jay';

friends = ['Bob','Alice']// 허용되지 않음. !!

Object

Method

Object 내의 함수 (const, let 등을 붙히지 않고 변수에 함수를 할당한다.
Method는 function expression을 이용한다. no declaration.

 const jonas = {
     firstName :'Jonas',
     lastName : 'Scemedtmann',
     birthYear : 1991,
     age : 2037 -1991,
     job : 'teacher',
     friends : ['Michael', 'Peter', 'Steven'],
     hasDriversLicense : true,
     calcAge : function(birthYear){
         return 2037 - birthYear
     }

this

object 내에서 object를 언급할 때는 this를 사용할 수 있다.

calcAge : function(){
        return 2037 - this.birthYear;}

Array도 사실은 object이다.ex) array.push()
push()는 array라는 객체 안에 있는 method

dot notation vs bracket notation

객체의 item에 접근하기 위한 방법 두가지 - dot notation, bracket notation
dot notation으로는 computed property(final property)를 적어야만 value 값을 얻을 수 있다.
bracket notation은 어떠한 정보로든 value 값 얻을 수 있다.

const jonass = {
   firstName :'Jonas',
     lastName : 'Scemedtmann',
     birthYear : 1991,
     age : 2037 -1991,}
     
const interestedIn = prompt('What do you want to know about Jonas? Choose between firstName, lastName, birthYear, and age');

if(jonass[interestedIn]){
console.log(jonass[interestedIn]);
}else {    
console.log('Wrong request!')
}

promt 창에 사용자가 직접 firstName, lastName, burthYear, age 중 하나를 입력하면 그에 맞는 value 값을 얻을 수 있다.
이때 만약 jonass.interestedIn 으로 적는다면 computed property 가 아니기 때문에 value값을 얻을 수 없다.

console.log(jonass.calcAge(`1991`));
console.log(jonass['calcAge']('1991'));

bracket notation을 쓸때는 꼭 ''를 붙혀주는 것 잊지 말기!

  • method 함수를 만들때 return에 계산 식을 직접 넣는 것보다 변수에 할당한 후 변수를 return 하는 방식이 더 좋다. 계산을 여러번 할 필요가 없으므로!
 calcAge : function(){
        this.age = 2037 - this.birthYear;
         return this.age;
    }

loop

continue and break

continue : 해당 조건에 해당하는 것들은 skip하고 반복문을 이어간다.
break : 해당 조건에 해당하면, 반복문을 종료한다.

for (let i = 0; i <jonas.length; i++){
    if(typeof jonas[i] !== 'string'){
        continue;
    }
    console.log(jonas[i], typeof jonas[i]);
}
//string type만 출력된다.  string이 아닌 것들은 skip함. 

for (let i = 0; i <jonas.length; i++){
    if(typeof jonas[i] === 'number'){
        break;
    }
    console.log(jonas[i], typeof jonas[i]);
}

//number 앞에서 멈춤. 

while loop

let dice = Math.trunc(Math.random() * 6) + 1;

while(dice !==6){
    console.log(`You rolled a ${dice}`);
    dice =  Math.trunc(Math.random() * 6) + 1; // 변수 안지정해주면 계속 while 반복됌 
    if(dice ===6){
        console.log('Loop is about to end...')
    }
}

얼마나 반복해야할지 알때는 for loop , 잘 모르겠을 때는 while 이 좋다!

for loop를 포함하는 함수를 이용할 때는 for 밖에서 값을 return 해주자

function calcAverage(arr){
    let sum = 0;
for(let i= 0; i <arr.length; i++){
    // sum = sum + arr[i];
    sum += arr[i];
}
    return sum/arr.length;
}

좋은 웹페이지 즐겨찾기