forms의 정보를 서버로 보내기 위해서
document.forms.publish.onsubmit을 이용하는데 기본 적으로 함수를 실행후 새로고침이 실행이 된다. 새로고침을 없애기 위해서 return false를 넣어줘야 한다.
document.forms.publish.onsubmit = function() {
let outgoingMessage = this.message.value;
const obj = { "type": "message" , "params": { "value": outgoingMessage }}
socket.emit('message' ,JSON.stringify(obj));
return false;
};
엔터를 치더라도 문이 끝날 때 세미콜론을 넣자
0, null, undefined, NaN, ""는 false값
let i = undefinde
if(i){console.log('값이 있다.')
}else{
console.log('값이 없다.')
}
값이 없다가 출력되야한다.
문자 + 숫자는 숫자가 문자로 변환되고 -,/는 문자열없이 숫자만 있을때 문자가 숫자로 변형이 된다. - 햇갈렸음, \t\n는 공백을 만드는 문자여서 0취급됨
"" + 1 + 0 = "10"
"" - 1 + 0 = -1
4 + 5 + "px" = "9px"
"4px" - 2 = "NaN"
" \t \n" - 2 = -2
if와 논리 연산자를 이용한 로그인 예제 인데 빈칸과 null값이 들어왔을 때를 나누는것을 왜 생각을 못했을까 지금까지 로그인을 만들면서 예외처리를 잘못했지 않나라는 생각이 든다.
let userName = prompt("사용자 이름을 입력해주세요.", '');
if (userName == 'Admin') {
let pass = prompt('비밀번호:', '');
if (pass == 'TheMaster') {
alert( '환영합니다!' );
} else if (pass == '' || pass == null) {
alert( '취소되었습니다.' );
} else {
alert( '인증에 실패하였습니다.' );
}
} else if (userName == '' || userName == null) {
alert( '취소되었습니다.' );
} else {
alert( "인증되지 않은 사용자입니다." );
}
return으로 confirm을 내보내고 그것에 대한 처리는 함수 밖에서 사용가능
function checkAge(age) {
if (age >= 18) {
return true;
} else {
return confirm('보호자의 동의를 받으셨나요?');
}
}
let age = prompt('나이를 알려주세요', 18);
if ( checkAge(age) ) {
alert( '접속 허용' );
} else {
alert( '접속 차단' );
}