โจ ๋ณ์, ์ฌ์น์ฐ์ฐ ๊ณผ์
๐ก ์ด์์จ ๊ณ์ฐ
์ฒซ ์๊ธ์ก์ด 5๋ง์ ๋ฏธ๋ง์ด๋ฉด ์ด์จ์ด ์ฐ 15ํผ์ผํธ,
์ฒซ ์๊ธ์ก์ด 5๋ง์ ์ด์์ด๋ฉด ์ด์จ์ด ์ฐ 20ํผ์ผํธ๊ฐ ๋๋๋ฐ
๋ณ์์ ์๊ธ์ก์ ๋ฃ์ผ๋ฉด 2๋ ํ์ ์ด ์๊ธ์ก์ ์ฝ์์ฐฝ์ ์ถ๋ ฅ๋๋๋ก ํด๋ผ
js
var ์๊ธ์ก = 10000; var ๋ฏธ๋์๊ธ์ก = 0; if(์๊ธ์ก>50000){ ๋ฏธ๋์๊ธ์ก= ์๊ธ์ก*(1.2)*(1.2); } else{ ๋ฏธ๋์๊ธ์ก= ์๊ธ์ก*(1.15)*(1.15); } console.log(๋ฏธ๋์๊ธ์ก)
๐ ์๊ฐํด ๋ณผ ์ : ๊ฑฐ๋ญ์ ๊ณฑํ๋ ค๋ฉด **์ ์ฌ์ฉํ๋ฉด ๋๋ค. var ๋ฏธ๋์๊ธ์ก = ์๊ธ์ก * (1.15) ** 2; ์ด๋ฐ์์ผ๋ก ์์ฑํ ์ ์๋ค.
๐ก ์ปคํผ ๋ฆฌํ์ ๊ณ์ฐ
๋ง์ ์ปคํผ์ 2/3๋งํผ ์ด 2๋ฒ ๋ฆฌํํด์ฃผ๋ ์นดํ๊ฐ ์๋ค. ์ฒ์ ์ฃผ๋ฌธํ ์ปคํผ ์์ ๋ฐ๋ผ ์ต๋ํ ๋ง์ค ์ ์๋ ์ปคํผ๋ฅผ ์ฝ์์ฐฝ์ ๊ณ์ฐํด์ฃผ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ผ. ์๋ฅผ ๋ค์ด, ์ฒ์์ 90ml์ฃผ๋ฌธํ๋ฉด ์ฒซ ๋ฆฌํ์ 60ml, ๋๋ฒ์งธ๋ฆฌํ์ 40ml๋ฅผ ํด์ค๋ค
js
var first = 360;
var maxCoffee = first+ first*(2/3)+ first*(2/3)*(2/3);
console.log(maxCoffee);
๐ค ์ฃผ์์ : ์๋ฌด์๊ฐ์์ด var maxCoffee = first*(2/3)*(2/3); ์ด๋ฐ์์ผ๋ก ์ฐ์ง ์์๊ฒ. ๋ฌธ์ ๋ฅผ ์ ์ฝ์ด๋ณด๋ฉด ์ฒซ๋ฒ์งธ์ ๋ฆฌํ์ด ๋ํด์ง๊ณ ๋๋ฒ์งธ์ ๋ฆฌํ์ด ๋ํด์ง๋ ๊ฒ์ ์์ ์๋ค.
๐ก ํด์ฆ UI ๋ง๋ค๊ธฐ
๋ต์ ๋ง์ถ๋ฉด alert('์ฑ๊ณต');
๋ต์ 3๋ฒ ์ฐ์ด์ ๋ชป๋ง์ถ๋ฉด alert('๋ฐ๋ณด') ๋ฅผ ๋์์ฃผ์
html
<p>ํ์กฐ ์ด์ฑ๊ณ๊ฐ ํ์ด๋ ๋
๋๋?</p>
<input type="text" id="answer">
<button id="send-answer">์ ์ถ</button>
<script>
var cnt=0;
document.getElementById('send-answer').addEventListener("click", function () {
if(document.getElementById("answer").value == "1335"){
alert('์ฑ๊ณต');
cnt=0;
}else{
cnt++;
if(cnt>2){
alert('๋ฐ๋ณด');
}
}
});
</script>
๐ก ๋ฌดํ์ปคํผ๋ฆฌํ
์์ ๋ฌธ์ ์์ ์ปคํผ๋ฆฌํ์ ๋ฌดํ์ผ๋ก ํด์ค๋ค๋ฉด ์ฒ์ ๋ด์์ฃผ๋ ์ปคํผ๊ฐ 360ml์ผ๋ ์ด ๋ช ml์ ์ปคํผ๋ฅผ ๋ง์ค ์ ์์๊น?
๋ฌดํ์ผ๋ก ๋ด์์ค ์ ์๋ค๋ฉด
var maxCoffee = first+ first\*(2/3)+ first\*(2/3)\*(2/3)+first\*(2/3)\*(2/3)\*(2/3)+first\*(2/3)\*(2/3)\*(2/3)\*(2/3)+ ....
์ด๋ฐ์์ผ๋ก ๋์ด ์์ ๊ฒ์ด๋ค.
์ด๊ฒ์ ๋ฌดํ ๋ฑ๋น๊ธ์์ ํฉ์ด๋ผ๊ณ ํ๋ค
๋คํํ 2/3์ -1์ด๊ณผ 1๋ฏธ๋ง์ด๋ฏ๋ก ๊ฐ์ด ์๋ ดํ๊ณ ๊ทธ ํฉ์ first*1/(1-2/3)์ด ๋ ๊ฒ์ด๋ค.
์ด์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์ง ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
var first = 360;
var maxCoffee = first*(1/(1-2/3));
console.log(maxCoffee);
๊ทธ๋ฌ๋ ๊ฒฐ๊ณผ๋ ์๋ 1080์ด ๋์์ผ ํ๋, ๋ถ๋ ์์์ ์ฐ์ฐ์ ํ๊ณ๋๋ฌธ์ ์ฝ์์ฐฝ์๋ 1079.999999๊ฐ ๋จ๊ฒ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก toFixed๋ฅผ ์ฌ์ฉํด ๋ฐ์ฌ๋ฆผํด์ค๋ค.
var first = 360;
var maxCoffee = (first*(1/(1-2/3))).toFixed();
console.log(maxCoffee);
toFixed์ ๋ํ ์์ธํ ์ค๋ช ์ ํ๋จ์ ์์ ํ ์์ ์ด๋ค
โจ setTimout ํ์ด๋จธ
๐ setTimeout
setTimeout(function(){},1000)
1000ms ํ์ ์ฝ๋๋ฅผ ์คํํ๋ผ๋ ๋ป
setTimeout(function(){document.querySelector(".alert").style.display='none'},5000)
์ด๋ฐ์์ผ๋ก ์์ฑํ๋ฉด 5์ด๋ค์ ํด๋น div๊ฐ ์จ๊ฒจ์ง๋ค.
html
<div class="alert alert-danger">
5์ด ์ด๋ด ๊ตฌ๋งค์ ์ฌ์ํ ์ฆ์ !
</div>
js
setTimeout(function(){document.querySelector(".alert").style.display='none'},5000)
setInterval(function(){},1000)
→ 1์ด ๋ง๋ค ์ฝ๋ ์คํ๋จ
๐ 1์ด๋ง๋ค 1์ฉ ๊ฐ์๋๋ ์ฝ๋
html
<div class="alert alert-danger">
<h id="num">5</h>
์ด ์ด๋ด ๊ตฌ๋งค์ ์ฌ์ํ ์ฆ์ !
</div>
js
initialTime=5;
function timer(){
initialTime--;
document.getElementById("num").innerHTML=initialTime;
}
setTimeout(function(){document.querySelector(".alert").style.display='none'},5000)
setInterval(timer,1000)
๐ค ์ฃผ์ํ ์ : js์์ setInterval(timer(),1000) ์ด๋ ๊ฒ ์์ฑํ๊ณ ์ ์๋๋ ์ถ์๋ค.. ๊ดํธ๋ฅผ ๋ถ์ด์ง ์์์ผ ์ฌ๋ฐ๋ฅด๊ฒ ํธ์ถ๋๋ค.
โจ ์ ๊ท์์ผ๋ก ์ด๋ฉ์ผ ํ์ ๊ฒ์ฆ
๐ ๋ฌธ์ ๊ฒ์ฌ
'๋ฌธ์'.includes('์ฐพ์๋จ์ด')
์ด๋ฐ์์ผ๋ก ๋ฌธ์๋ฅผ ๊ฒ์ฌํ ์ ์๋ค.
/abc/.test('abcdef')
/์ ๊ท์/.test(์ ๊ท์์ผ๋ก ๊ฒ์ฌํด๋ณผ๋ฌธ์)
๋ค์ด์์ผ๋ฉด true, ์๋ค๋ฉด false๋ฅผ ์ถ๋ ฅํ๋ค
/[a-d]/.test('aefg')
์ด๋ฐ์์ผ๋ก ์์ฑํ ์ ์๋ค.
/\S/.test('abcde')
์๋ฌด๋ฌธ์๊ฐ ์๋๋.. true๋ฅผ ์ถ๋ ฅ
/^a/.test('abcde')
a๋ก ์์ํ๋์ง ๊ฒ์ฌ
/e$/.test('abcde')
e๋ก ๋๋๋ ์ง ๊ฒ์ฌ
/(e|f)/.test('abcde')
e๋๋ f๊ฐ ์๋ ์ง ๊ฒ์ฌ
/a+/
a์ ์ผ์นํ๋ฉด ๋ฐ๋ณตํด์ ์ฐพ์๋ฌ๋ผ๋ ๋ง. ex. aaaaa
/\S+k/
๋ฌธ์ ์ฌ๋ฌ๊ฐ ๋ค์์ k๊ฐ ์๋๋๋ฅผ ๊ฒ์ฌ
aaaaak
ccck ์ด๋ฐ๊ฑธ ์ฐพ์ ์ ์๋ค.
/\S+@\S+\.\S+/
์ด๋ฐ์์ผ๋ก ์์ฑํ๋ฉด ์ด๋ฉ์ผ ํ์์ ๊ฒ์ฌํ ์ ์๋ค. (ex. dkffsda@naver.com)
\S+ ์ด๋ฐ์์ผ๋ก ์์ฑํ๋ ์ด์ ๋ ์ฌ๋ฌ๊ฐ์ ๋ฌธ์๊ฐ ๋์ด๋ ์ ์๊ธฐ ๋๋ฌธ
๐ ํผ ์ ์ก์ ํ์ ๊ฒ์ฆ
js
document.querySelector("form").addEventListener("submit", function (e) {
if (document.getElementById("email").value == "") {
e.preventDefault();
alert("์ด๋ฉ์ผ์ ์
๋ ฅํ์ธ์");
}else if(!/\S+@\S+\.\S+/.test(document.getElementById("email").value)){//์ด๋ฉ์ผ ํ์ ๋ชป์งํฌ ๊ฒฝ์ฐ
e.preventDefault();
alert('์ด๋ฉ์ผ ํ์์ ์ง์ผ์ฃผ์ธ์');
}
if (document.getElementById("pw").value == "") {
e.preventDefault();
alert("๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ์ธ์");
} else if (document.getElementById("pw").value.length < 6) {
e.preventDefault();
alert("๋น๋ฐ๋ฒํธ๋ฅผ 6์ ์ด์ ์
๋ ฅํ์ธ์");
} else if(!/[A-Z]/.test(document.getElementById("pw").value)){//๋๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ
e.preventDefault();
alert("๋๋ฌธ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์");
}
});
โจ ์บ๋ฌ์ (์ด๋ฏธ์ง ์ฌ๋ผ์ด๋)
๋ธ๋ผ์ฐ์ ํญ ==100vw
ํ๋ฉด์ด ๊ฝ ์ฐจ๊ฒ ๋๋ค.
float : left;
์ผ์ชฝ์ผ๋ก ๋ฐฐ์น
<div style="overflow: hidden"\>
๋์น๋ ์์๋ฅผ ์จ๊ฒจ๋ฌ๋ผ
transform: translateX(-100vw);
์์ผ๋ก 100vw์ฉ ๋๊ฒจ๋ฌ๋ผ
transition:all 1s;
์ ๋๋ฉ์ด์ ์ฃผ๊ธฐ
๐ ๋ฒํผ ๋๋ฌ ์ข์ฐ ์ด๋ฏธ์ง
html
<div style="overflow: hidden">
<div class="slide-container">
<div class="slide-box">
<img src="food1.jpg">
</div>
<div class="slide-box">
<img src="food2.jpg">
</div>
<div class="slide-box">
<img src="food3.jpg">
</div>
</div>
</div>
<button class="slide-1">1</button>
<button class="slide-2">2</button>
<button class="slide-3">3</button>
js
document.querySelector(".slide-2").addEventListener("click", function () {
document.querySelector(".slide-container").style.transform = "translateX(-100vw)";
});
document.querySelector(".slide-3").addEventListener("click", function () {
document.querySelector(".slide-container").style.transform = "translateX(-200vw)";
});
document.querySelector(".slide-1").addEventListener("click", function () {
document.querySelector(".slide-container").style.transform = "translateX(0vw)";
});
css
.slide-container {
width: 300vw;
transition: all 1s;
}
.slide-box {
width: 100vw;
float: left;
}
.slide-box img {
width: 100%;
}
๐ ์ด์ , ๋ค์ ๋ฒํผ ์ถ๊ฐ
html
<div style="overflow: hidden">
<div class="slide-container">
<div class="slide-box">
<img src="food1.jpg">
</div>
<div class="slide-box">
<img src="food2.jpg">
</div>
<div class="slide-box">
<img src="food3.jpg">
</div>
</div>
</div>
<button class="prev">์ด์ </button>
<button class="slide-1">1</button>
<button class="slide-2">2</button>
<button class="slide-3">3</button>
<button class="next">๋ค์</button>
js
document.querySelector(".slide-2").addEventListener("click", function () {
document.querySelector(".slide-container").style.transform =
"translateX(-100vw)";
});
document.querySelector(".slide-3").addEventListener("click", function () {
document.querySelector(".slide-container").style.transform =
"translateX(-200vw)";
});
document.querySelector(".slide-1").addEventListener("click", function () {
document.querySelector(".slide-container").style.transform =
"translateX(0vw)";
});
var nowPic = 1; //ํ์ฌ๋ณด๊ณ ์๋ ์ฌ์ง
document.querySelector(".prev").addEventListener("click", function () {//์ด์ ๋ฒํผ
if (nowPic > 1) {
document.querySelector(".slide-container").style.transform =
"translateX(" + -100 * (nowPic-2) + "vw)";
nowPic--;
}
});
document.querySelector(".next").addEventListener("click", function () {//๋ค์๋ฒํผ
if (nowPic < 3) {
document.querySelector(".slide-container").style.transform =
"translateX(" + -100 * nowPic + "vw)";
nowPic++;
}
});
css
.slide-container {
width: 300vw;
transition: all 1s;
}
.slide-box {
width: 100vw;
float: left;
}
.slide-box img {
width: 100%;
}
โจ ์๋ฐ์คํฌ๋ฆฝํธ ์ฃผ์์
๐ ์์์ ์ฐ์ฐ์ ์ฃผ์
console.log(1.1+0.3)
1.4๊ฐ ๋์ค์ง ์๊ณ 1.40000000001 ์ด๋ ๊ฒ ๋์ค๋๋ฐ, 2์ง๋ฒ์ ๋ฌธ์ ๋ค.
๊ทธ๋์ ์์์ ์ฐ์ฐ์ ์ด๋ฐ ์ค์ฐจ๊ฐ ๋ฐ์ํ๋ค.
๐ ์์์ ๋ฐ์ฌ๋ฆผ
์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ toFixed๋ฅผ ์ฌ์ฉํด ํด๊ฒฐํ ์ ์๋ค.
console.log( (1.1 + 0.3).toFixed(1) );
์ซ์.toFixed(์์๋ค์ ์๋ฆฟ์)
์ด๋ฐ์์ผ๋ก ์ฌ์ฉํ ์ ์๊ณ , 0์์ 100๊น์ง์ ๊ฐ์ ์ธ ์ ์๋ค. ์์ ์์ ์์์ 1์๋ฆฌ์๊น์ง ๋ฐ์ฌ๋ฆผํ์ฌ 1.4์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
๋งค๊ฐ๋ณ์ ์๋ฆฌ์ ์๋ฌด๊ฒ๋ ์์ผ๋ฉด 0์ด ๋ค์ด๊ฐ๋ค.
๐ค์ฃผ์์ : ๋ฌธ์๋ก ๋ณํ๋๋ฏ๋ก ์ซ์๋ก ์ฐ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ซ์๋ก ๋ณํ์์ผ์ผ ํ๋ค.
๐ ์ซ์๋ก ๋ณํ
parseFloat('100')
์ค์(not mistake)๋ก ๋ณํํด์ค๋ค
parseInt('100')
์ ์๋ก ๋ณํํด์ค๋ค.
๐ก ๋ถ,์ด๋ฅผ ์ ๋ ฅํ๋ฉด ms๋จ์๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
function StoMs(min,sec){
return (min*60+sec)*1000;
}
console.log(StoMs(1,30));
console.log(StoMs(2,10));
๐ก ๊ฐ๊ฒฉ์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ ฅํ๋ฉด 10% ํ ์ธ๊ฐ ์๋ ค์ฃผ๊ธฐ
function discount(price,ifFirst){
var finalPrice=(price*0.9).toFixed(1);
if(ifFirst==true){
finalPrice-=1.5;
}
return finalPrice;
}
console.log(discount(70,false));
console.log(discount(10,true));
'๐ Front-End Study with me' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Javascript ์ ๋ฆฌ โฅ (0) | 2024.05.17 |
---|---|
Javascript ์ ๋ฆฌ โค (0) | 2024.05.01 |
Javascript ์ ๋ฆฌ โฃ (0) | 2024.04.22 |
Javascript ์ ๋ฆฌ โก (1) | 2024.03.28 |
Javascript ์ ๋ฆฌ โ (0) | 2024.03.25 |