target(switch 괄호 내) 이나 case instance가 함수식으로 주어지면 함수가 호출됨 값을 리턴하는 과정에서 예를 들어 로그를 찍으면 당연히 찍혀짐
switch 내부의 함수는 처음 한번만 호출되는 것 같음 case 비교할때마다 매번 호출하진 않는듯
if else와 마찬가지로 한번 case에 진입하면 그 이후 case는 조건 검사를 아예 안 함
비교는 === (strict equality) 인것 같음 null undefined NaN을 case로 주고 확인해봤음
스위치가 함수냐.. 당연히 그 안에 있는것들은 함수처럼 동작 안함. 뭘 생각하는거야.. 함수 이외에는 실행의 개념이 아니라 문자의 개념이다
내 뇌피셜이 아니라 다 직접 돌려보고 말하는건데. 내가 글을 좀 이상하게 적긴 했는데 이해는 네가 못한 듯
함수가 런타임에 평가되는거고 case 안에 있는 함수는 아직 한번도 값으로 리턴안되었으니 평가가 필요해서 그 스위치 문 들어갈때 함수 한번 돌려서 표현식 즉 값으로 환산해야 되서 한거임. 그 함수가 한번 실행되고 난 그 자리에는 함수에서 리턴해준 값이 꽃히겠지? 이제 값이니 함수를 실행 안해줘도 됨.
아.. ㅇㅋㅇㅋ 알려줘서 고맙다.