const가 이런 경우에는 왜 오류가 안나는거죠 ?
624
작성한 질문수 4
function solution(s) {
s = "gg";
return s;
}
const str = "gooG";
console.log(solution(str));예제를 하다가 보통 solution에게 매개변수로 넘겨주는 값이 let로 되어 있어서 const로 바꾸어 보았는데요
str은 const이고 solution 함수로 전달되어서 str값을 변경을 시켜주었는데 오류가 안나고 변경이 되더라구요
const는 상수이고 변할수 없는 값인데요
이런경우 어떻게 변할수가 있는거죠 ?
답변 1
2
지나가다 답변합니다
scope(유효범위)가 달라서 그렇습니다. 혹시라도 scope 개념을 모르시면 따로 찾아서 공부하시는 거 추천합니다
함수 안은 지역 스코프이고 그 밖은 전역 스코프인데, 작성자님은 str 상수를 전역에서 선언하고 값을 할당했습니다
그리고 그 값은 변한 적이 없습니다
solution(str)이 실행한 것은 str 상수의 값인 "gooG"를 (str 상수 그 자체가 아님 주의) 솔루션 함수에 인자로 전달하고 그 값을 반환한 것뿐입니다
이때 사용된 건 s로 참조된 지역 스코프의 변수이지, 전역 스코프의 str 상수가 아닌 것입니다
따라서 위 코드에서 막줄에 console.log(str)을 해보시면, "gg"가 아니라 "gooG"가 출력됨을 볼 수 있습니다
또한 console.log(s)를 해보시면 s가 정의되지 않았다고 오류 메시지가 출력되는데, 왜냐하면 s는 솔루션 함수 스코프 안에서만 정의되었으므로 그 스코프 내에서만 접근할 수 있기 때문입니다
continue를 사용하는 이유
0
82
2
정렬 가능 여부 판단하기
0
66
2
알고리즘 학습법 관련해서 질문드립니다.
0
86
1
코드 리뷰 부탁드립니다!
0
91
1
indexOf를 사용해서 풀어보았습니다 !!
0
69
1
저는 이런식으로 구현 해보았습니다 !!
0
65
1
12,13,14 강의 소리만 나오고 검은 화면입니다
0
101
3
반복문 최소화하고 indexOf 사용해서 풀어봤습니다
0
63
1
영상 보기 전에 직접 풀어봤습니다.
0
75
1
섹션1의 17번문제 이 풀이로 풀어도 될까요?
0
136
2
정규표현식으로 처리해도 상관없나요 ?
0
120
2
3칸씩 건너뛸 수 있을 경우
0
126
2
강의에 대해 질문있습니다.
0
136
2
Object와 Set을 이용해 풀어봤습니다.
0
117
2
이렇게 해도 되나요?
0
102
2
선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.
0
146
2
이렇게 풀어도 괜찮을까요?
0
139
1
이렇게 풀어도 괜찮을까요?
0
114
1
모든 아나그램 찾기에서 시간복잡도
0
99
1
코드리뷰 부탁드립니다.
0
130
1
for loop 탈출은 return 문으로 해도 되지 않나요?
0
133
1
투포인트알고리즘으로 풀어봤습니다.
0
143
0
코드 리뷰 부탁드립니다.
0
120
1
코드 맞게 작성한 거 아닌가여??
0
146
1





