JavaScript Study 01
50969 ワード
休みが始まり、フロントで勉強を始めました.
初めてJavaScriptを使って「今までやってきたのは本当のフロントじゃないんですよね…」という思いで、^-^
フロントの参考資料を学ぶためです.
説明も親切で、理解も良いのですが、基礎のない私は他の参考資料をもっと探さなければなりません.😭
JavaScript基礎構文
- Data type
JAvascriptはdatatypeを単独で宣言する必要はありません!
-宣言変数
let
変数名:可変値を宣言するために使用const
変数名:不変値を宣言するために使用-出力
文字列を出力する場合、backstepを使用して+を使用せずに出力を直接貼り付けます.
-優先度
各変数に優先順位を付けたい場合は、
symbol
識別子を使用します.ただし、符号を出力する場合は、
${symbol**.description**}
を付けて文字列に変換して出力しなければならない.-ユーザー入力の受信
prompt
:ユーザー入力を受信するため(必須!文字)、デジタル入力を受信する際にフォーマットコピーを変換する必要があります.🌟)alert
:通知ウィンドウとして表示された場合に使用confirm()
:確認用-関数
함수 선언문
Function sayHello() {
console.log('Hello');
}
함수 표현문
let sayHello = function() {
console.log('Hello');
}
화살표 함수
let add = function(num1, num2) => (
return num1+num2;
)
let add = (num1, num2) => num1 + num2;
let sayHello = (name) => `Hello, ${name};`
-同期と非同期
function printImmediately(print) {
print();
}
function printWithDelay(print, timeout) {
setTimeout(print, timeout);
}
console.log('1'); //동기
setTimeout(() => console.log('2'), 1000); //비동기 콜백함수 사용
console.log('3'); //동기
printImmediately(() => console.log('hello')); //동기 콜백함수 사용
printWithDelay(() => console.log('async callback'), 2000); //비동기 콜백함수 사용
- Array
forEach()
:各配列の値は、私が渡した関数を出力します.//array에 들어있는 값마다 콜백함수 수행.
fruits.forEach((fruit, index, array) => console.log(fruit, index));
push()
:要素の追加//push
fruits.push('🍑');
pop()
:要素の削除//pop
fruits.pop();
console.log(fruits);
unshift()
:前から順に要素を追加fruits.unshift('🍨');
shift()
:前から順に要素を削除fruits.shift()
splice()
:指定された場所を削除//unshift, shift는 push, pop보다 시간이 엄청 걸림
fruits.push('🍈', '🍒');
fruits.splice(1, 1); //어디 인덱스부터 몇개를 지울지 말해야함
fruits.splice(1,1,'🍅'); //지워진 위치에 추가도 가능
console.log(fruits);
배열 합치기 & 배열 찾기
//combine two arrays
const fruits2 = ['🍨'];
const newFruits = fruits.concat(fruits2);
console.log(newFruits);
// array searching
console.clear();
console.log(fruits);
console.log(fruits.indexOf('🍑')); //해당하는 인덱스를 알려줌
console.log(fruits.includes('🍑')); //있는지 없는지 true or false로 알려줌
-継承と多形性
class Shape{
constructor(width, height, color) {
this.width = width;
this.height = height;
this.color = color;
}
draw() {
console.log(`drawing ${this.color} color of`);
}
getArea() {
return width * this.height;
}
}
class Rectangle extends Shape{}
class Triangle extends Shape{
draw() {
super.draw()
}
getArea() {
return (this.width * this.height / 2);
}
}
const rectangle = new Rectangle(20, 20, 'blue');
rectangle.draw();
const triangle = new Triangle(20, 20, 'red');
triangle.draw();
- Object
object = { key : value }
const obj1 = {};
const obj2 = new Object();
function print(person) {
console.log(person.name);
console.log(person.age);
}
const yeon = {name: 'yeonhee', age: 22};
print(yeon);
yeonhee.hasJob = true;
console.log(yeonhee.hasJob);
delete yeonhee.hasJob;
//for (key in obj) key에 할당이 되면서.. 따라서 모든 키들을 받아서 처리하고 싶을 때 사용
console.clear()
for (key in yeonhee) {
console.log(key);
}
//for (value of iterable) 배열과 같은 것을 출력하고 싶을때
const array = [1,2,3,4,5];
for (value of array) {
console.log(value1)
}
Week1 Mission
第1週ミッション!
上記の機能を実現するための参考サイトを添付します.
検索機能
Darkmode機能
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="mission 01.css">
<script src="mission 01.js"></script>
<title>Document</title>
</head>
<body>
<div class="head_title" onclick="DarkMode()">
<p>여러분의 눈은 소중하니까, <strong>지금 바로 다크 모드를 켜보세요!</strong></p>
</div>
<button onclick="DarkMode()" id="dark_bt">다크 모드로 보기</button>
<div class="search">
<input onkeyup="search()" type="text" id="searchbar" placeholder="원하는 동물을 검색해보세요.">
<p id="list_title">ANIMAL LIST</p>
<div class="animal">
<p class="item">호랑이</p>
<p class="item">토끼</p>
<p class="item">사자</p>
<p class="item">다람쥐</p>
<p class="item">고양이</p>
<p class="item">강아지</p>
</div>
</div>
</body>
</html>
CSS
@import url(//fonts.googleapis.com/earlyaccess/notosanskr.css);
.notosanskr * {
font-family: "Noto Sans KR", sans-serif;
}
* {
font-family: "Noto Sans KR", sans-serif;
}
body {
margin: 0;
}
.head_title {
background-color: #d7d0e3;
}
.head_title p {
margin: 0;
font-size: 18px;
display: block;
text-align: center;
color: #000;
padding: 1rem 1rem;
}
#dark_bt {
background-color: #d7d0e3;
display: flex;
margin-top: 1%;
margin-left: 80%;
font-size: 15px;
border: none;
border-radius: 20px;
width: 232px;
height: 40px;
padding: 0.5rem 3.5rem;
}
#searchbar {
font-size: 15px;
margin-top: 5%;
width: 650px;
height: 55px;
box-shadow: 3px 3px 3px 3px #e4e4e4;
border-radius: 10px;
border: none;
}
#list_title {
font-size: 20px;
}
input:focus {
outline: none;
}
.search {
text-align: center;
margin-top: 1%;
}
.animal {
margin-top: 2%;
font-size: 17px;
border-radius: 10px;
width: 100%;
height: 320px;
text-align: center;
}
.animal p {
display: flex;
justify-content: center;
/* text-align: center; */
margin-top: 1.5%;
}
.dark-mode {
background-color: black;
color: white;
}
JS
'use static';
// DarkMode 구현
function DarkMode() {
var body = document.body;
body.classList.toggle("dark-mode");
var button = document.getElementById("dark_bt");
if (button.innerHTML == "다크 모드로 보기") {
button.innerHTML = "라이트 모드로 보기";
button.style.backgroundColor = "#FFEFB2";
} else {
button.innerHTML = "다크 모드로 보기";
button.style.backgroundColor = "#E3DBEB";
}
}
// Search 기능 구현
const item = document.getElementsByClassName('item');
function search() {
var searchbar, i;
searchbar = document.getElementById("searchbar");
for (i = 0; i < item.length; i++) {
//각 동물을 의미
const animal = item[i].textContent;
if (animal.indexOf(searchbar.value) > -1) {
item[i].style.display = "flex";
} else {
item[i].style.display = "none";
}
}
}
Darkmode Ifゲートと
innerHTML
を使用して「暗いモードで表示」ボタンをクリックすると、ボタンのフォントを「光モードで表示」に変換できます.また、ボタンの色を変更するために、
button.style.backgroundColor
によりボタンの背景色を変更した.Search
各動物名を表すitemを用いてsearch()という関数を作成した.
.length
を用いて、FOR文は、動物の個数毎に実行される.itemは動物を動物と命名し、If文と
indexOf
を用いて文字列を抽出した.同じ文字列を抽出する場合は、
.style.display = "flex"
を選択して画面に表示する必要があります.そうしないと、.style.display = "none"
を選択して画面に表示しません.実行画面
問題シュート
幸いなことに...あまり問題なくシュートして、ただ間違えたから、どうしてだめなのか、一人で数十分もかんしゃくを起こしただけ・・・o.^以外はいいですね
来週のミッションも頑張ります!
Reference
この問題について(JavaScript Study 01), 我々は、より多くの情報をここで見つけました https://velog.io/@yyeonhee/JavaScript-Study-01テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol