||
: 마지막 falsy 값 혹은 처음 만난 truthy 값을 반환한다.
&&
: 마지막 truthy 값 혹은 처음 만난 마지막 falsy 값을 반환한다.
Truthy
: 참 같은 값이란 불리언을 기대하는 문맥에서 true로 평가되는 값
Falsy
: 거짓 같은 값은 불리언 문맥에서 false 로 평가되는 값
falsy 값 (JS에서 이거 빼곤 다 truthy )
0, NaN, false, null, undefined, "",
1 || 2 || 3 || 4 || 5
-> 1
0 || 0 || 0 || 0 || 5
-> 5
0 && 1 && 2
-> 0
html 내용을 트리형태로 구조화해서 웹페이지랑 자바스크립트를 연결한다.
이때 각각 요소, 속성, 콘텐츠를 표현하는 단위를 노드라고 한다.(element 아님!)
const container = document.getElementById('container')
Id로 접근
const item = document.getElementsByClassName('item-second');
클래스를 가진 모든 요소를 다 가지고 와서, 결과를 배열처럼 저장한다.
다만 배열은 아니다.(arrayLike라고 함.)
const item2 = container.getElementsByTagName('li');
tag로 접근. 다만 같은 tag를 가지고 있으면 모두 접근한다.
const item1 = document.querySelector('.item-second');
Id로 접근하려면 앞에 #을 붙이고, class로 접근하려면 앞에 . 을 붙인다.
css로 접근하듯이 접근이 가능하다.
addEventListener - 이벤트를 붙이는 함수
const myBtn = document.querySelector('button');
myBtn.addEventListener('click', function () {
// blue 라는 클래스의 속성 값을 지정 할 수 있습니다.
myBtn.classList.add('blue');
console.log(myBtn.classList.contains('blue'));
// myBtn.classList.remove(“blue”); 클래스를 제거합니다.
// myBtn.classList.toggle(“blue”); 클래스를 토글합니다.
// myBtn.classList.contains(“blue”); 해당하는 클래스가 있는지 확인합니다.
})
event - mozilla 참고링크:
https://developer.mozilla.org/ko/docs/Web/Events
로또 번호 만들기
방법1.
function lottoNum () {
let lotto = [];
let i = 0;
while (i < 6) {
let n = Math.floor(Math.random() * 45) + 1;
if (! sameNum(n)) {
lotto.push(n);
i++;
}
}
function sameNum (n) {
for (var i = 0; i < lotto.length; i++) {
if (n === lotto[i]) {
return true;
}
}
return false;
}
return lotto;
}
방법2.
function randomFunc(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
let lottoSet = new Set();
function lottoGenerator() {
while (lottoSet.size < 6){
let result = randomFunc(1, 46);
lottoSet.add(result);
return lottoSet;
}
console.log(lottoGenerator());
방법3.- include 버전
function randomFunc(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
function lottoGenerator() {
let lottoArr = [];
while (lottoArr.length < 6) {
let result = randomFunc(1, 46);
// 중복 판단, 다만 include는 IE지원안됨
// 중복되는 숫자가 없다면
if(!lottoArr.includes(result)) {
lottoArr.push(result);
}
}
return lottoArr;
}
console.log(lottoGenerator());
이번주 내내 자바스크립트가 어렵다고 쓴 것 같은데, 오늘도 다르지는 않다. 진도가 빠른건지, 내가 이해를 잘 못하는 건지..! 마음이 점점 조급해진다..
잘한점