원시형 : 1개의 데이터를 담고 있는 자료형, 고정된 메모리 크기, 직접적 가리킴, call by value
숫자형 : 정수, 실수문자열형불리언형 : true, false널형 : null만 가질 수 있음Undefined형 : 값이 할당 X오브젝트형 : 1가지 데이터X, 데이터 컬렉션과 같은 여러가지 자료형 표현가능, call by reference
숫자형
var nan = '난'/10;
console.log(nan); // NaN
undefined : 사용자의 실수, 오류의 값null : 사용자가 의도적으로 한것(추천)var love = null;
console.log(love); // null
console.log(Boolean(love)); // false
var name;
console.log(name); // undefined
var nickname = 'lch';
console.log(nickname); // lch
nickname = undefined;
console.log(nickname); // undefined
오브젝트 형콜스택과 메모리 힙자바스크립트 엔진은 콜스택 + 메모리 힙콜 스택 : call by value(데이터 저장)메모리 힙(동적 메모리) : call by reference(필요할 때 할당)1. 데이터는 메모리 힙에 저장2. 데이터의 주소는 콜 스택에 저장var msg = 100; // 원시형
var msg = {haha : '불꽃 남자'}; // 오브젝트형
// 1
var msg = {
name : '불꽃 남자',
comment : '포기를 모르는 남자',
age : 16
};
var array = [];
array.push(msg);
console.log(array);
// 2 (new 연산자 사용)
var msg = new Object();
msg = {
name : '불꽃 남자',
comment : '포기를 모르는 남자',
age : 16
};
var array = new Array();
array.push(msg);
console.log(array);
// 숫자데이터인 문자열 앞에 + 붙인 경우
console.log(+'1024'+1); // 1025
console.log(+true); // 1
console.log(+false); // 0
console.log(+'tent'); // NaN
// +
console.log('10' + 2); // 102
console.log('긴급출동' + 119); // 긴급출동119
// - * / (형변환)
console.log('10' - 2); // 8
console.log('10' * 2); // 20
console.log('10' / 2); // 5
console.log('10' - '2'); // 8
console.log('10' * '2'); // 20
console.log('10' / '2'); // 5
var size1 = 1024;
var size2 = '1024';
console.log(size1 == size2); // true
console.log(size1 === size2); // false
console.log(null == undefined); // true
console.log(null === undefined); // false
console.log(null == 0); // false
console.log(0 == undefined); // false
// 조건부
var age = 30;
var result = age >= 19 ? '성인입니다.' : '애기';
console.log(result);
// !연산자의 기본 원리
console.log(!'jason'); // false
console.log(!null); // false
console.log(!0); // false
// ??
var id = 'jason';
var result = (id != null && id != undefined) ? '아이디가 입력되었습니다.' : '다시 입력해';
console.log(result); // 아이디가 입력되었습니다.
var id = 'jason';
var result = (id ?? null) ? '아이디가 입력되었습니다.' : '다시 입력해';
// 변수 id가 null도 아니고 undefined도 아니면 a 값이 유효하다. 그 외에는 b가 유효
console.log(result);
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('프로그래밍 언어 이름을 입력하시오 : ', function(data){
// 입력값에 대한 처리
console.log('가장 졸하아는 프로그래밍 언어는 ' + data + '입니다.');
rl.close();
});
// 짝수 홀수
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('정수를 입력하세요 : ', function(num){
num = num % 2;
if (num) {
console.log("홀수 입니다.");
} else {
console.log("짝수 입니다.");
}
rl.close();
});
// overlap
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('점수를 입력하세요. : ', function(score){
if (score >= 60 && score <= 100) {
if (score >= 90) {
console.log('장학대상압니다.');
} else {
console.log('합격입니다.');
}
} else {
if (score >= 0 && score < 60) {
console.log('불합격입니다.');
} else {
console.log('값이 유효하지 않습니다.');
}
}
rl.close();
});
// elseif
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('점수를 입력하세요. : ', function(score){
if (score >= 90 && score <= 100) {
console.log('장학대상압니다.');
} else if (score >= 60 && score < 90) {
console.log('합격입니다.');
} else if (score >= 0 && score < 60) {
console.log("불합격입니다.")
} else {
console.log('값이 유효하지 않습니다.')
}
rl.close();
});
// switch
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('C 드라이브를 포맷하시겠습니까? ', function(ch){
switch(ch) {
case 'y':
console.log('예 드라이브를 포맷하겠습니다. ');
break;
case 'n':
console.log('아니오 드라이브를 포맷하지 않겠습니다. ');
break;
default:
console.log('유효하지 않은 문자입니다. ');
break;
}
rl.close();
});
// 예시
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('점수를 입력하세요. : ', function(score){
if (score >= 60 && score <= 100) {
console.log('합격입니다.');
} else {
console.log('불합격입니다.');
}
rl.close();
});
// for
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question('단수를 입력하세요 : ', function(dan){
for (var i = 1; i < 10; i ++) {
console.log(dan + ' * ' + i + " = " + dan * i);
}
rl.close();
});
// while
var dan = 2;
outside: while(dan < 10) {
var num = 1;
while (num < 10) {
if (dan == 6 && num == 1) {
break outside;
}
console.log(dan + '*' + num + '=' + dan * num);
num++;
}
dan++;
}
function showMsg() {
console.log('Hello Javascript');
}
showMsg();
showMsg();
showMsg();
function plus(a, b){
console.log('두 수의 합 : ' + (a + b));
}
plus(2, 3);
plus('ABCD', 'EFGH');
plus(3.14, 1.58);
// 지역변수 전역변수 매개변수
function account() {
var savedUser = '송재근';
console.log('반갑습니다.' + savedUser + '님');
}
account();
console.log('또 오셨네요' + savedUser + '님'); // savedUser 지역변수
function naver() {
console.log('naver 함수 진입');
var savedUser = '명재우';
google();
console.log('naver 함수 탈출');
}
function google() {
console.log('google 함수 진입');
var savedUser = '전승준';
console.log('google 함수 탈출');
}
naver();
// 전역변수
var savedUser = '이은성';
function account() {
console.log('반갑습니다.' + savedUser + '님');
savedUser = '김사랑'; // 변경 해버리기
}
account();
console.log('또 오셨네요' + savedUser + '님');
// 매개변수
function account(userId) {
var savedUser = '송재근';
if (userId == savedUser) {
console.log('반갑습니다.' + userId + '님');
} else {
console.log('로그인 실패했습니다. ');
}
}
account('송재근');
var userName = '송재근';
var userPW = '1111';
function account(userId, userPw) {
console.log(userId);
console.log(userPw);
var savedName = "송재근";
var savedPw = '1111';
userPw = userPw || '1111';
if (userId == savedName) {
if (userPw == savedPw) {
console.log("반갑습니다. " + userId + '남');
}
}
}
account(userName); // userPw = '1111'
//account(userName, userPW); // account(userName);
function Week() {
console.log('Mon');
console.log('Tue');
console.log('Wed');
return;
console.log();
console.log();
console.log();
console.log();
}
console.log(Week() === undefined);
// 함수 표현식
var nickName = function() {
console.log('송재근');
};
nickName(); // 익명함수
// 함수 선언식
nickName = function() {
console.log('명재우');
};
nickName();
// 함수 변수에 복사
var nickName = function() {
console.log();
};
var userName = nickName;
userName();
nickName();