1)onkeydown, textContent, value
const header = document.querySelector(".header");
const input = document.querySelector(".input");
input.onkeydown = function changeHeader () {
header.textContent = input.value;
};
<input class='input1' type="text" placeholder='여기다 입력하시오' value='안녕하세요'/>
<script>
let a = document.querySelector('.input1')
document.write(a.value)
a.onclick = function(){
document.write(a.value)}
</script>
<input type="text" onkeydown="alertEvent()">
<script>
function alertEvent() {
alert("깜짝이야");
}
</script>
(1)정의
변수란 프로그램을 작성하는 과정에서 기본으로 주어지는 자바스크립트 사전에 등록되어 있지 않아 우리가 만든, 자바스크립트 프로그램이 이해하고 알아볼 수 있는 단어들을 의미합니다.
(2) = (할당, 대입)
자바스크립트에서 =의 의미는 =를 기준으로 오른쪽에 위치한 값을 왼쪽의 변수에 대입/할당 한다는 의미입니다.
(3)identifiers
변수를 선언할때 지어주는 이름을 Identifier라고 부릅니다. 자바스크립트에서 Identifier는 몇 가지 규칙을 반드시 따라야합니다. 숫자, 알파벳, $, _가 사용될 수 있다. 단, 숫자로 시작할 수는 없고 Javascript Keyword(Reserved Words)는 Identifier가 될 수 없다.
let foo; // valid
let _bar123; // valid
let $1234337; // valid
let 7seven; // invalid
let function; // invalid
const o = new Boolean(true); // 이렇게 만들어 사용하지 마세요.
const t = true; // 항상 이렇게 만들어 사용하세요.
4)null & defined
let k;
console.log(k); // undefined
let o = undefined;
console.log(o); // undefined
null이라는 값은undefined와는 다르게 의도적으로값이 없음을 표현하고 싶을때 대입해주곤 합니다.
let title = "Bootcamp";
title = null;
5)Numbers
var num = 1;
var num2 = num * 2;
var result = 3 > 7;
console.log(result); // false
var result2 = 3 >= 1;
console.log(result2); // true
a += 1; // a = a + 1
a += 2; // a = a + 2
a -= 1; // a = a - 1
a *= 3; // a = a * 3
a /= 2; // a = a / 2
a++; // a = a + 1
a--; // a = a - 1
a** // 유효하지 않은 코드
a// // 유효하지 않은 코드
var one = 5;
var two = 5;
console.log(one === two); // true
var a = 0;
var b = 0;
var c = a / b;
console.log(c);
위 코드를 실행한다면, 콘솔에는 NaN이라는 값이 표기됩니다. NaN: "Not A Number"라는 의미를 가진 특수한 값입니다. 유효하지 않은 숫자 연산을 실행했을때 생성되곤 합니다. 만약 어떤 값이 NaN인지 판별하고 싶다면 아래와 같이 isNaN이라는 함수를 사용하여 아래와 같이 판별할 수 있습니다.
var a = isNaN(3);
console.log(a); // false
var b = 10;
var c = isNaN(b);
console.log(c); // false
var d = NaN;
var e = isNaN(d);
console.log(e); // true
var a = typeof 10;
console.log(a); // "number" <- 따옴표를 잘 기억하세요.
6)String(문자열)
(1)문자열 붙이기
+로 문자열을 붙일 수 있습니다.
var s1 = "something";
var s2 = "else";
var result = s1 + s2;
console.log(result); // "somethingelse"
(2)문자열 비교
문자열을 ===로 같고 다름을 비교할 수 있습니다.
var s1 = "abc";
var s2 = "abc";
var result1 = s1 === s2; // s1과 s2가 같은지 확인하고 그 결과를 result1 변수에 담습니다.
console.log(result1); // true
var s3 = "abc "; // 유의: 문자열 끝자리에 공백이 붙어있습니다.
var s4 = "abc";
var result2 = s3 !== s4; // s3과 s4가 다른지 확인하고 그 결과를 result2 변수에 담습니다.
console.log(result2); // true
var str1 = "abc"; // 3개의 텍스트를 포함하고 있는 문자열
console.log(str1.length); // 3
var str2 = " "; // 공백 3개
console.log(str2.length); // 3
console.log("graph-ql".length); // 변수 할당하지 않고 바로 문자열 사용
var str = "abcdef";
console.log(str[0]); // "a"
console.log("cde"[2]); // "e"
(5)문자열 메서드
'6'.repeat(3);
'hi ken'.includes(' ke');
'what are you doing?'.startsWith('what ');
'I am doing FiNe'.endsWith('iNe');
'Are you sure?'.indexOf(' yo');
'Yeah I am sure'.slice(2, 5);
'I?doubt?that'.split('?');
'Why would you doubt my word?'.split('');
'You hAve BeEn DiSHonest'.toLowerCase();
'No wAy!'.toUpperCase();
7)Types(데이터의 종류)
// 초기값이 할당되지 않은 변수
let a;
console.log(a); // undefined
// 객체에서 존재하지 않는 속성을 접근하는 경우
const something = {
name: 'Ken'};
console.log(something.age); // undefined
const person = {}; // 빈 객체 생성
person.name = 'ken'; // 객체 내 Key, Value 생성
console.log(person.name); // 'ken'
console.log(person); // { name: 'ken' }
console.log(typeof person); // 'object'
const list = [1, 2, 3];
console.log(typeof list); // 'object'
function foo () {}
console.log(typeof foo); // 'function'
0
-0
false
undefined
null
""
''
``
NaN
(2)Logical OR Operator
||로 표현합니다. true나 false값이 아닌, 피연산자(operand) 값이 반환됩니다.
연산 방식 연산자를 기준으로 왼쪽부터 Truthy 값을 찾습니다.
Truthy 값을 찾은 경우, 연산을 중지하고 해당 값을 반환합니다.
마지막까지 Truthy 값을 찾지 못한 경우, 마지막에 위치한 값을 반환합니다.
const empty = null; //false
const trueOrFalse = !0; //true
const str = "Vanillacoding"; //true
const result = (empty || trueOrFalse || str);
console.log(result); //true
(3)Logical AND Operator
&&로 표현합니다. true나 false값이 아닌, 피연산자(operand) 값이 반환됩니다.
연산 방식 연산자를 기준으로 왼쪽부터 Falsy 값을 찾습니다.
Falsy 값을 찾은 경우, 연산을 중지하고 해당 값을 반환합니다.
마지막까지 Falsy 값을 찾지 못한 경우, 마지막에 위치한 값을 반환합니다.
const a = !!"";
console.log(a); // false
const trueOrFalse = !null;
const zero = 0;
const str = "Vanillacoding";
console.log(trueOrFalse && zero && str); // 0
9. If(조건문) - 중첩
else 대신 else if로 연결할 수도 음
var something = true;
var moreSomething = true;
if (something) {
console.log("I am inside something");
if (moreSomething) {
console.log("I am inside moreSomething");
} else {
console.log("I never gets called.");
}
} else {
console.log("I never gets called either.");
}
10. Loops(반복문) - 실행순서, 반복문 중단(break), 반복 구문 중단(continue)
for (1번 파트; 2번 파트; 4번 파트) {
3번 파트
}
console.log('before for loop');
for (var i = 1; i < 11; i += 2) {
if (i === 7) {
break;
}
console.log(i);
}
console.log('after for loop');
const slogan = "Progress, not perfection";
let result = null;
for (let i = 0; i < slogan.length; i++) {
result = slogan[i];
if (slogan[i] === "n") {
break;
}
}
if (result === "n") {
alert("🎉");
}
console.log('before for loop');
for (var i = 1; i < 11; i += 2) {
if (i === 7) {
continue;
}
console.log(i);
}
console.log('after for loop');
문자열에서 t,o,n은 result에 추가되지 않고 for문 종료됨. 이후 아래 if 조건문 실행함.
const slogan = "Progress, not perfection";
let result = "";
for (let i = 0; i < slogan.length; i++) {
if (slogan[i] === "n" || slogan[i] === "o" || slogan[i] === "t") {
continue;
}
result += slogan[i];
}
if (result === "Prgress, perfeci") {
alert("🎉");
}
'[바닐라코딩]' 카테고리의 다른 글
[바닐라코딩 | Javascript] - Events Practice (신호등 불 켜기), for문 (0) | 2023.03.10 |
---|---|
[바닐라코딩 | Javascript] - DOM API 요약 (0) | 2023.03.09 |
[바닐라코딩 | Javascript] - Part3 요약 (0) | 2023.03.08 |
[바닐라코딩 | Javascript] - Part2 요약 (0) | 2023.03.07 |
[바닐라코딩 | HTML/CSS] - 요약 (0) | 2023.03.05 |