오늘 공부한 내용 요약
모던 JavaScript 튜토리얼 학습
<script src=“http://……………..”> </script>
(1) 변수 - 데이터를 저장할떄 쓰이는 이름이 붙은 저장소
let user = ‘me’;
let age = 20;
let message = ‘hello’;
let user = ‘me’,
age = 20,
message = ‘hello’;
let user = ‘me’
, age = 20
, message = ‘hello’;
3가지 방식의 결과는 모두 동일
(2) 상수
변하지 않는 변수를 선언시 let 대신 const를 사용 이를 상수라 한다
변수와 달리 재할당 불가 (변경 불가)
대문자로 상수를 만들면 가독성이 좋고 기억하기 좋을수 있음
대문자 상수로 하면 유용한 경우
-> 하드코딩한 값의 별칭을 만들때, 이미 알고있는 값, 변하지 않을 값
변수명을 정할때
간결하면서 자세하고 내용에 연관있게, 팀의 규칙에 맞게 해야한다
숫자형
정수 + 부동소수점 숫자 / infinty , -infinity, NaN(오류) 포함
정수를 +- 2의 53승 까지 표현가능
아주 큰 숫자를 사용시 BigInt로 길이 상관없이 정수가능
ex) const bigInt = 34759024757903750937950n;
문자형
“와 ‘는 자바스크립트에서 차이가 없음
역따옴표`로 표현식을 감싼후 ${ } 을 넣어주면 문자열 중간에 변수나 표현식을 추가할수 있다.
“와 ‘는 중간에 넣을 수 없다 / ${ } 에는 무엇이든 들어갈수 있음
alert( `the result is ${1 + 2}` ); // 결과는 3
let vae = 4 > 1;
alert(vae) // true 출력
typeof 3 // number
typeof 10n // bigInt
typeof math // object (참조형 타입은 객체가 출력)
typeof null // object
(이는 하위호환성을 위해 남겨둔 언어상 오류로 null은 객체가 아님)
alert( Number(" 123 ") ); // 123
alert( Number("123z") ); // NaN ("z"를 숫자로 변환하는 데 실패함)
alert( Number(true) ); // 1
alert( Number(false) ); // 0
alert( boolean(“”) // false
alert( boolean(“0”) // true
alert( boolean(“ ”) // true
(1) 피연산자(인수) - 연산을 당함 ex) 5 * 2 = 10 에서 5와 2는 피연산자
단항 연산자 - 피연산자를 하나만 받음
이항 연산자 - 2개의 피연산자를 받음
(2) 자바스크립트에서 지원하는 연산자 종류
+, -, *, /, %(나머지), **(거듭제곱)
(3) 이항연산자 + 는 다른 산술연산자와 달리 하나만 문자열이면 나머지도 문자열로 변환
alert ( “2” + “3”); // 23
alert ( “2” + 3); // 23
alert ( 2 + 3); // 5
alert( +”2” + +”3”); // 5 —> 앞에 +를 붙이는것으로 number() 와 동일효과
alert ( “2” - “3”); => -1
alert ( 2 - “3”); => -1
(4)연산자의 우선순위
(5) 할당 연산자(=)
let n = 2;
n *= 3 + 5; -> 우측 먼저 n = n * 8
alert( n ); -> 16
(6)증가 감소 연산자
변수++, 변수 = 변수 + 1 는 같음
변수--, 변수 = 변수 - 1 는 같음
let counter = 0;
alert( ++counter ); // 1
let counter = 0;
alert( counter++ ); // 0
(7)쉼표 연산자(,)
let a = ( 1+2, 3+2); alert(a); // 5
(8)
alert(“” + 2 + 1); // 문자열 21
alert( “a” + 0 + 1); // a01
alert( 0 + 1 + “a”); // 1a
(9)
문자열을 숫자로 바꿔주기 —> 변수앞에 +를 붙여주거나 Number(변수)를 해주기
동등연산자는 ==로 2번들어감 / 할당연산자는 =1번 들어감
부등연산자는 !=
문자열비교시
사전상 뒤쪽의 문자열이 더 큼 (정확히는 유니코드순)
문자열의 길이가 길수록 큼
대문자보다 소문자가 더 큼
비교하려는 자료형이 다르면 자바스크립트가 문자열을 숫자로 변환시킴
true는 1 , false는 0으로 변환됨
let a = 0;
alert( Boolean(a) ); // false
let b = "0";
alert( Boolean(b) ); // true
alert(a == b); // true!
각각은 다른 결과가 도출되지만 둘을 비교하면 같은 값이 나오는 이유는 둘을 비교할 경우 문자열을 숫자형으로 바꿔서 비교시키기 때문
alert( 0 == false); // true
alert( 0 === false); // false
alert( 0 == null ); // false
alert( undefined == null ); // true
let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', '');
if (year == 2015) {
alert( "정답");
} else {
alert( "오답");
}
// 2015를 입력시 정답, 그외는 오답 출력
Let goo = A ? B : c; // 이 경우 A가 true 이면 B가 출력 , false이면 c가 출력
(1) ||(or)
alert( null || 0 || 1 ); // 1
(2) &&(and)
피연산자 모두가 참일때 true, 나머지는 false
||와 비슷하게 피연산자가 여러개인 경우
각 자료형을 boolean형으로 변환후 false가 나오면 멈추고, 모두 true라면 마지막 피연산자 출력
&&의 우선순위가 ||보다 높다.
(3) ! (Not)
alert( !true ); // false
(4) 종합
alert( alert(1) || 2 || alert(3) ); // alert는 undefined를 반환
이때 alert(1)를 평가하면서 1이 출력되고, 첫번째 ||결과 2가 출력
alert( alert(1) && alert(2) ); // alert는 undefined를 반환
이때 alert(1)를 평가하면서 1이 출력되고, 첫번째 &&결과 변환된 undefined가 출력
1바이트(8비트)의 경우 256가지 정수의 표현이 가능한데 맨 앞 자리 비트는 부호로 사용.
0이면 양수, 1이면 음수로 범위화하면 '-128 ~ + 127' 이다.
그렇다면 맨 앞 비트를 양수로 쓰지 않는경우, 즉 부호가 정해져 있는 경우에는 음수 또는 양수를 더 많은 값으로 표현가능.
부호가 없다고 가정시 10000000의 절대값은 128로
10000000 = -128에서 시작
10000001 = -127
11111111 = 10000000 + 01111111 = -128 + 127 = -1
공부하면서 몰랐던 용어 및 알게 된 내용
공부사이트
가지면 좋은 습관
느낀점
개선방안 및 아쉬운 점
위의 내용은 공부중 본인이 이해한 내용으로 몇몇 틀린 내용이 있을 수 있습니다.
회독중 발견시 수정하겠습니다