JavaScript
-
실습 과제 콘솔에 찍힐 b 값을 예상해보고, 어디에서 선언된 “b”가 몇번째 라인에서 호출한 console.log에 찍혔는지, 왜 그런지 설명해보세요. 주석을 풀어보고 오류가 난다면 왜 오류가 나는 지 설명하고 오류를 수정해보세요. let b = 1; function hi () { const a = 1; let b = 100; b++; console.log(a,b); } //console.log(a); // function 내에서 a에 대한 선언을 했기 때문에 값을 불러 올 수 없다. console.log(b); // let b =1 선언, 1이 찍힌다 hi(); // 함수내에서 a와 b 선언하여 1,101이 찍힌다. console.log(b); // let b =1 선언했던 1이 찍힌다. 주석처리 된 ..
[Javascript] 콘솔에 찍힐 값 예상하기실습 과제 콘솔에 찍힐 b 값을 예상해보고, 어디에서 선언된 “b”가 몇번째 라인에서 호출한 console.log에 찍혔는지, 왜 그런지 설명해보세요. 주석을 풀어보고 오류가 난다면 왜 오류가 나는 지 설명하고 오류를 수정해보세요. let b = 1; function hi () { const a = 1; let b = 100; b++; console.log(a,b); } //console.log(a); // function 내에서 a에 대한 선언을 했기 때문에 값을 불러 올 수 없다. console.log(b); // let b =1 선언, 1이 찍힌다 hi(); // 함수내에서 a와 b 선언하여 1,101이 찍힌다. console.log(b); // let b =1 선언했던 1이 찍힌다. 주석처리 된 ..
2022.08.09 -
JavaScript 객체와 불변성 불변성이란 '변하지 않는 것'을 뜻한다. JavaScript에서 불변은 이미 할당 된 객체가 변하지 않는다는 뜻을 가지고 있다. 프로그래밍을 하다 보면, 의도치 않게 전역 공간이나 외부 스코프의 값이나 상태가 변경되는 Human Error가 언제든지 일어난다. 이 Human Error는 추적이 어렵고 프로그래밍에 치명적이다. JavaScript는 객체를 Immutable하게 만들어서 Human Error로 부터 객체를 보호한다. 그렇다면 React와 불변성은 어떤 연관을 갖는가? 리액트가 지향하는 함수형 프로그래밍의 특징에서 이를 찾을 수 있다. 함수형 프로그래밍의 특징은 "순수함수를 사용한다"는 것이다. 순수함수는 동일매개 변수 넣었을 때 동일한 리턴 값을 출력한다. ..
[JavaScript] JavaScript 객체와 불변성JavaScript 객체와 불변성 불변성이란 '변하지 않는 것'을 뜻한다. JavaScript에서 불변은 이미 할당 된 객체가 변하지 않는다는 뜻을 가지고 있다. 프로그래밍을 하다 보면, 의도치 않게 전역 공간이나 외부 스코프의 값이나 상태가 변경되는 Human Error가 언제든지 일어난다. 이 Human Error는 추적이 어렵고 프로그래밍에 치명적이다. JavaScript는 객체를 Immutable하게 만들어서 Human Error로 부터 객체를 보호한다. 그렇다면 React와 불변성은 어떤 연관을 갖는가? 리액트가 지향하는 함수형 프로그래밍의 특징에서 이를 찾을 수 있다. 함수형 프로그래밍의 특징은 "순수함수를 사용한다"는 것이다. 순수함수는 동일매개 변수 넣었을 때 동일한 리턴 값을 출력한다. ..
2022.08.09 -
undefined 원시값이다. 선언한 후에 값을 할당하지 않은 변수나, 값이 주어지지 않은 인수에 자동으로 할당된다. 이 값은 전역 객체의 속성 중 하나로, 전역 스코프에서 변수이기도 하다. 따라서 undefined 변수의 초기 값은 undefined 원시 값이다. * undefined는 예약어가 아니다. 전역 범위 외에서 변수 이름으로 사용할 수 있다. 그러나 유지보수와 디버깅에 어려움 겪을 수 있으므로 피하는 것이 좋다. undefined를 반환하는 경우 값을 할당하지 않은 변수 메서드와 선언에서 변수가 할당 받지 않은 경우 함수가 값을 return 하지 않았을 때 null 원시값이다. 어떤 값이 의도적으로 비어있음을 표현한다. undefined는 값이 지정되지 않은 경우를 의미하지만, null의 경..
[JaveScript] undefined와 null의 차이undefined 원시값이다. 선언한 후에 값을 할당하지 않은 변수나, 값이 주어지지 않은 인수에 자동으로 할당된다. 이 값은 전역 객체의 속성 중 하나로, 전역 스코프에서 변수이기도 하다. 따라서 undefined 변수의 초기 값은 undefined 원시 값이다. * undefined는 예약어가 아니다. 전역 범위 외에서 변수 이름으로 사용할 수 있다. 그러나 유지보수와 디버깅에 어려움 겪을 수 있으므로 피하는 것이 좋다. undefined를 반환하는 경우 값을 할당하지 않은 변수 메서드와 선언에서 변수가 할당 받지 않은 경우 함수가 값을 return 하지 않았을 때 null 원시값이다. 어떤 값이 의도적으로 비어있음을 표현한다. undefined는 값이 지정되지 않은 경우를 의미하지만, null의 경..
2022.08.07 -
JavaScript의 형변환 ->자바스크립트는 타입이 유연한 언어이다. 자바스크립트 형 변환에는 자바스크립트 엔진이 필요에 따라 변환되는 암시적 변환과 개발자의 의도에 따라 변환되는 명시적 변환이 있다. 암시적 형 변환 ( lmplicit type conversion) : 자바스크립트 엔진 필요에 따라 자동으로 데이터 타입이 변환 시키는 것 1)산술연산자 더하기 연산자(+)는 숫자보다 문자열이 우선시 된다. 때문에 숫자형+문자형이면 문자형으로 변환하여 연산된다. number + number // number number + string // string string + string // string string + boolean // string number + boolean // number 50 + ..
[JavaScript] JavaScript 형변환/== , ===JavaScript의 형변환 ->자바스크립트는 타입이 유연한 언어이다. 자바스크립트 형 변환에는 자바스크립트 엔진이 필요에 따라 변환되는 암시적 변환과 개발자의 의도에 따라 변환되는 명시적 변환이 있다. 암시적 형 변환 ( lmplicit type conversion) : 자바스크립트 엔진 필요에 따라 자동으로 데이터 타입이 변환 시키는 것 1)산술연산자 더하기 연산자(+)는 숫자보다 문자열이 우선시 된다. 때문에 숫자형+문자형이면 문자형으로 변환하여 연산된다. number + number // number number + string // string string + string // string string + boolean // string number + boolean // number 50 + ..
2022.08.07 -
-> JavaScript는 느슨한 타입(loosely typed)의 동적(dynamic) 언어이다. 동적 언어 (Dynamically Typed Language) 런타임에 비로소 타입이 결정 되는 언어 : 소스가 컴파일, 빌드 될때 자료형을 결정하는 것이 아니라 실행할때 결정됨 언어 자체에서 타입을 추론하여 형을 변환함 대표적인 동적언어로는 JaveScript, Ruby, Python이 있다. 변수 생성시 마다 타입을 기재할 필요없기 때문에 빠르고 편하게 코드작성 가능 그러나 실행 하는 도중 변수에 예상치 못한 타입이 들어와 Type Error발생하는 경우가 생길수 있음. 정적언어와는 달리 실행되는 시점에서 오류를 출력함 정적 언어 (Statically Typed Language) 컴파일 시간에 변수의 ..
[JavaScript] 느슨한 타입(loosely typed)의 동적(dynamic) 언어-> JavaScript는 느슨한 타입(loosely typed)의 동적(dynamic) 언어이다. 동적 언어 (Dynamically Typed Language) 런타임에 비로소 타입이 결정 되는 언어 : 소스가 컴파일, 빌드 될때 자료형을 결정하는 것이 아니라 실행할때 결정됨 언어 자체에서 타입을 추론하여 형을 변환함 대표적인 동적언어로는 JaveScript, Ruby, Python이 있다. 변수 생성시 마다 타입을 기재할 필요없기 때문에 빠르고 편하게 코드작성 가능 그러나 실행 하는 도중 변수에 예상치 못한 타입이 들어와 Type Error발생하는 경우가 생길수 있음. 정적언어와는 달리 실행되는 시점에서 오류를 출력함 정적 언어 (Statically Typed Language) 컴파일 시간에 변수의 ..
2022.08.06 -
str_text.replace("찾을 문자열", "변경할 문자열") -> 특정 문자를 다른 문자로 치환하게 해줌. -> 바꿀문자 직접 입력 or 정규표현식 사용 가능 *replace()함수는 제일 먼저 일치하는 패턴만 변환 후 모든 텍스트를 바꾸지 않음 (유의할 것 !) var test = '가나다라 마바사 가나' var result = test.replace('가','나'); console.log(result); //-> 나나다라 마바사 가나 정규표현식 모든 문자 변환 가능, 숫자만 변환가능, 맨 앞 or 맨 뒤만 변환 가능 var test = '가나다라 마바사 가나' var result = test.replace(/가/gi,'나') console.log(result) //->나나다라 마바사 나나 /표..
[JavaScript] Replace() 문자 변환, 치환/정규표현식str_text.replace("찾을 문자열", "변경할 문자열") -> 특정 문자를 다른 문자로 치환하게 해줌. -> 바꿀문자 직접 입력 or 정규표현식 사용 가능 *replace()함수는 제일 먼저 일치하는 패턴만 변환 후 모든 텍스트를 바꾸지 않음 (유의할 것 !) var test = '가나다라 마바사 가나' var result = test.replace('가','나'); console.log(result); //-> 나나다라 마바사 가나 정규표현식 모든 문자 변환 가능, 숫자만 변환가능, 맨 앞 or 맨 뒤만 변환 가능 var test = '가나다라 마바사 가나' var result = test.replace(/가/gi,'나') console.log(result) //->나나다라 마바사 나나 /표..
2022.08.06