function
이라는 키워들 없이 =>
를 이용해 함수를 생성하는 방법이다.return
명령어 없이도 함수 실행을 종료시키고 값을 반환한다.화살표함수의 특징
- function 표현에 비해 구문이 짧고 자신의 this, arguments, super 또는 new.target을 바인딩 하지 않는다.
- 화살표 함수는 항상 익명이다.
- 메소드 함수가 아닌 곳에 가장 적합하다.
- 생성자로서 사용할 수 없다.
var/let/const 함수명 = (매개변수) => {실행문}
+익명함수: 함수를 재사용하지 않을 목적으로 함수에 이름을 붙이지 않는 것
//표현식을 이용한 화살표함수
var addNumber (a, b) => {
return a + b;
};
//표현식을 이용하지 않은 화살표함수
function (a, b) => {
return a + b;
};
화살표함수는 일반함수보다 간결하게 콜백함수로 사용될 수 있다.
var numbers = [1, 2, 3, 4, 5];
var newArray = numbers.map(a => a + a);
console.log(newArray); //[2, 4, 6, 8, 10]
[참고링크]
'=='
- ==는 a == b 라고 할때, a와 b의 값이 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.
'==='
- ===는 Strict, 즉 엄격한 Equal Operator로써, "엄격하게" 같음을 비교할 때 사용하는 연산자이다.
- ===는 a === b 라고 할때, 값과 값의 종류(Data Type)가 모두 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.
var a = 1;
var b = "1";
console.log(a == b); // true
console.log(a === b); // false
console.log(null == undefined); // true
console.log(null === undefined); // false
console.log(true == 1); // true
console.log(true === 1); // false
console.log(0 == "0"); // true
console.log(0 === "0"); // false
console.log(0 == ""); // true
console.log(0 === ""); // false
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
var a = [1,2,3];
var b = [1,2,3];
console.log(a == b); // false
console.log(a === b); // false
var a = [1,2,3];
var b = [1,2,3];
var c = b;
console.log(b === c); // true
console.log(b == c); // ture
var x = {};
var y = {};
var z = y;
console.log(x == y) // false
console.log(x === y) // false
console.log(y === z) // true
console.log(y == z) // true
[참고링크]
적당한 양의 데이터를 정기적으로 요청하게 만들고 , 기존의 데이터는 가상돔에 렌더링하고 실제 데이터는 받아오는 새 데이터로 교체하는 방식으로 메모리에 누적되지 않게 만든다. React-query의 InfiniteQuery를 활용하여 다음 스크롤의 데이터를 캐싱하고 중간에 로딩이 생기는 경우 스켈레톤UI/로딩애니메이션/LAZYQUERY등을 활용해 사용자 경험에 신경쓰는 것이 좋다.
intetcection Observer를 활용한 Inview로 보이지않는 100px짜리 컨테이너를 페이지 바닥에 생성하고 이를 ref로 감시하는 방식으로 해당 컨테이너가 스크롤에 들어올때마다 InfiniteQuery를 통해 캐싱된 데이터를 적당량 가져오며, 기존 데이터는 렌더링시키고 새 데이터로 메모리를 교체하는 식으로 효율적인 구조를 만들고, 트렌드에 맞게 중간에 로딩이 발생할시 next/image의 blur이미지로 스켈레톤UI를 보여주는 방식으로 구현하게 될 것 같습니다.
[참고링크]
❓XML이란?
- XML(eXtensible Markup Language) 은 HTML과 같은 마크업 언어이지만, HTML은 데이터를 표현하는 마크업 언어라면, XML은 데이터를 기술하는 언어이다.
- 예를 들어 HTML에서는 h1, p 같은 이미 만들어진 태그를 사용해야 하지만, XML은 정의된 부분을 제외하고는 사용자가 태그를 임의로 만들 수 있다.
- 엄밀히 말하자면 XML은 마크업 언어라기 보다 마크업 언어를 정의하기 위한 언어라고 할 수있다.
JS
import './App.css';
function App() {
return (
<div class="App">
<div class='black-nav'>
<h4>블로그</h4>
</div>
</div>
);
}
export default App;
JSX
import './App.css';
function App() {
return (
<div className="App">
<div className='black-nav'>
<h4>블로그</h4>
</div>
</div>
);
}
export default App;
제로 블로그를 제작했을 때는 저렇게 직접 글 제목을 작성하는것이 아니라 서버에서 보내준 데이터를 띄울것이다.
import './App.css';
function App() {
let post = '블로그 글 제목';
return (
<div className="App">
<div className='black-nav'>
<h4>블로그</h4>
</div>
<h4> {post} </h4>
</div>
);
}
export default App;
위에 써있듯이 변수를 {}로 감싸서 저 return문 안에서 바인딩하면, 언제든지 저 변수안에 있는 내용을 그대로 사용 할 수가 있다.
JSX에서는 스타일을 지정할때도 { }로 감싸주어서 그 안에 지정할 스타일들을 작성해주어야 한다.
import './App.css';
function App() {
let post = '블로그 글 제목';
return (
<div className="App">
<div className='black-nav'>
<h4 style= { {color : 'red', fontSize : '16px'} }>블로그</h4>
</div>
<h4>{ post }</h4>
</div>
);
}
export default App;
style = { } 안에 { }로 한번 더 감싸주어서 지정할 스타일들을 작성해야한다.
안에 스타일 내용들은 객체형으로 key : value 형태로 작성해야한다.
HTML에서는 폰트사이즈를 font-size 였지만, 자바스크립트에서는 font (마이너스) size로 인식하므로 붙여서 fontSize로 작성해야한다.
import './App.css';
function App() {
let post = '블로그 글 제목';
return (
<>
<div className='black-nav'>
<h4 style= { {color : 'red', fontSize : '16px'} }>블로그</h4>
</div>
<h4>{ post }</h4>
</>
);
}
export default App;
[참고링크]