변경할수없는값
리터럴 방식의 문자열데이터
const singleQuotes = 'Single quotes String';
const doubleQuotes = "Double quotes String";
const templateLiterals =
`Template Literals String.
Not ${singleQuotes}.`;
'', ""취향에 따라 사용하며 `` 템플릿리터럴 방식은 문자 중간에 데이터를 채워넣을때 ${}
안에 보간하여 사용하며 모든 데이터는 문자열데이터로 반환됨
숫자데이터 아무기호없이 사용해야 숫자로 인식
기본 양수, -로 음수, 부동소수점 사용가능, 연산가능
NaN
: Not a Number, 숫자데이터타입인데 숫자로 표기할수 없음을 나타내는 데이터
숫자연산에 숫자가아닌 다른 값이 포함되어있을 확률이 높음
📌 부동소수점오류: 10진수를 연산을 컴퓨터는 2진수로 동작하기때문에 10진수 연산을 2진수로 변환하면서 무한소수가 발생되어 유한한 숫자로 만들기위해 나오는 계산오류
const a = 0.1; const b = 0.2; console.log(a + b);
- 해결방안
- .toFixed()메소드로 원하는 소숫점자리까지만 출력 -> string 데이터로 바뀜
console.log((a + b).toFixed(1));
- 자바스크립트 내장함수 Number()의 인수로 넣어 숫자데이터로 변환
console.log(Number((a + b).toFixed(1)));
불린데이터. true
(참), false
(거짓) 두가지의 값만있는 논리 데이터
true
: 대부분의 데이터는 참에 해당 (숫자데이터, 배열데이터, 객체데이터 등등)
false
에 해당하는 데이터:
값을 알수없음, 값이 없음, 값이 비어있음, 값이 존재하지않음을 개발자가 직접작성해 명시적으로 의미
값을 알수없음, 값이 없음, 값이 비어있음, 값이 존재하지않음을 자바스크립트가 자동으로 암시적으로 의미
변수선언후 값을 할당 안하면 변수가 연결되어있는 메모리공간이 초기화되며 자바스크립트가 자동으으로 값이없다는 undefined
데이터를 할당해놓음
변경할수 있는 값
자바스크립트에들어있는 Array 전역함수 에서 확장된 데이터 [] -> 배열데이터
제로베이스넘버링 사용
// 배열생성방법
// new 키워드로 생성자함수(class)로 생성
const fruits = new Array('Apple', 'Banana', 'Cherry');
// []로 생성, 배열 리터럴 방식(기호를 통해서)으로 만듦
const fruits = ['Apple', 'Banana', 'Cherry'];
console.log(fruits[1]);
'Apple', 'Banana', 'Cherry': 배열의 아이템(item) or 요소(Element)라고 부름
console.log(fruits[fruits.length - 1])
배열의 마지막 아이템 조회
자바스크립트에들어있는 Object 전역함수 에서 확장된 데이터 {} -> 객체데이터
key(속성, property): value(값)
형태의 데이터key
)은 순서가 없기때문에 순서가 보장되지 않음key
는고유한 값이기 때문에 똑같은 key
에 다른 값이 지정되면 마지막에 지정된 값으로 덮어 씌어짐new Object
생성자함수로 생성 const user = new Object();
user.name = 'POPPY';
user.age = 88;
new 함수명
생성자 함수로 생성 function User() {
this.name = 'this POPPY'
this.age = 888
}
const user = new User();
const user = {
name: 'literal POPPY',
age: 333
}
const 객체 = {
메소드: function () { 함수내용 }
// : function 생략가능
축약메소드() { 함수내용 }
}
console.log(`.를 사용해 데이터를 조회하는 점표기법 ${user.name}`);
console.log(`[]룰 사용해 데이터를 조회하는 대괄호 표기법 ${user['name']}`);
함수도 하나의 데이터, function키워드로 생성
function love() {
console.log('Love is YOU 💖');
}
love; // 함수코드 그자체의 데이터 호출을 안했기에 어디에도 출력되지 않음
love(); // ()로 호출(Call) 함수안의 명령이 실행됨
// -> Love is YOU 💖
console.log(love); // 함수코드문 자체가 콘솔에 출력
/*
-> function love() {
console.log('Love is YOU 💖')
}
*/
== 동등연산자 : 데이터를 타입(형)종류를 바꿔가며 비교하기 때문에 숫자데이터0과 글자데이터'0'의 비교값을 true로 반환함
0 == false
, 1 == true
둘의 결과가 true임=== 일치연산자 : 데이터 타입까지 비교 데이터를 비교할때는 일치연산자를 쓰는것이 정확함
const a = 0; // Number
const b = 1; // Number
const c = '0'; // String
const d = false; // Boolean
const e = true; // Boolean
console.log(a == c); -> true
console.log(a === c); -> false
console.log(a == d); -> true
console.log(a === d); -> false
console.log(typeof null); // object
console.log(typeof []); // object
console.log(typeof {} === 'object'); // true
console.log([].constructor); // ƒ Array() { [native code] }
console.log([].constructor === Array); // true
console.log({}.constructor); // ƒ Object() { [native code]}
console.log({}.constructor === Object); // true
console.log(Object.prototype.toString.call(null).slice(8, -1) === 'Null'); //true
// 타입체크 함수 생성
function checkType(data){
console.log(Object.prototype.toString.call(data).slice(8, -1));
}
checkType('Hi'); // String
checkType(23546); // Number
checkType(true); //Boolean
checkType(undefined); // Undefined
checkType(null); // Null
checkType([]); // Array
checkType({}); // Object
checkType(function () {}); // Function
🎮 패스트캠퍼스
프론트엔드 웹 개발의 모든 것 초격차패키지 Online.