개발 기술을 향상시키는 데 도움이 되는 7가지 JavaScript 아이디어
15792 단어 beginnersjavascriptwebdevprogramming
1. 값 대 참조 변수 할당
버그 없는 JavaScript를 작성하려면 먼저 JavaScript가 변수를 할당하는 방법을 이해해야 합니다. 이를 이해하지 못하면 자신도 모르는 사이에 값을 변경하는 코드를 쉽게 작성할 수 있습니다.
JavaScript는 항상 값으로 변수를 할당합니다. 하지만 이 부분이 매우 중요합니다. 할당된 값이 JavaScript의 5가지 기본 유형(즉, Boolean, null, undefined, String 및 Number) 중 하나일 때 실제 값이 할당됩니다. 그러나 할당된 값이 배열, 함수 또는 개체인 경우 메모리의 개체에 대한 참조가 할당됩니다.
예제 시간!
다음 스니펫에서 var2는 var1과 동일하게 설정됩니다. var1은 프리미티브 타입(String)이므로 var2는 var1의 String 값과 동일하게 설정되며 현 시점에서 var1과 완전히 다른 것으로 생각할 수 있다. 따라서 var2를 재할당해도 var1에는 영향을 미치지 않습니다.
let var1 = 'My string';
let var2 = var1;
var2 = 'My new string';
console.log(var1);
// 'My string'
console.log(var2);
// 'My new string'
이것을 개체 할당과 비교해 봅시다.
let var1 = { name: 'Jim' }
let var2 = var1;
var2.name = 'John';
console.log(var1);
// { name: 'John' }
console.log(var2);
// { name: 'John' }
기본 할당과 같은 동작을 예상한 경우 이것이 어떻게 문제를 일으킬 수 있는지 알 수 있습니다! 의도하지 않게 개체를 변경하는 함수를 만들면 특히 보기 흉해질 수 있습니다.
2. 파괴
자바스크립트 매개변수 파괴에 현혹되지 마세요! 개체에서 속성을 깔끔하게 추출하는 일반적인 방법입니다.
const obj = {
name: 'Joe',
food: 'cake'
}
const { name, food } = obj;
console.log(name, food);
// 'Joe' 'cake'
다른 이름으로 속성을 추출하려는 경우 다음 형식을 사용하여 속성을 지정할 수 있습니다.
const obj = {
name: 'Joe',
food: 'cake'
}
const { name: myName, food: myFood } = obj;
console.log(myName, myFood);
// 'Joe' 'cake'
다음 예제에서는 구조 분해를 사용하여 person 개체를 소개 함수에 깔끔하게 전달합니다. 즉, 구조 분해는 함수에 전달된 매개변수를 추출하는 데 직접 사용될 수 있습니다(그리고 자주 사용됩니다). React에 익숙하다면 전에 본 적이 있을 것입니다!
const person = {
name: 'Eddie',
age: 24
}
function introduce({ name, age }) {
console.log(`I'm ${name} and I'm ${age} years old!`);
}
console.log(introduce(person));
// "I'm Eddie and I'm 24 years old!"
3. 폐쇄
클로저는 변수에 대한 비공개 액세스를 제공하는 중요한 JavaScript 패턴입니다. 이 예에서 createGreeter는 제공된 인사말 "Hello"에 액세스할 수 있는 익명 함수를 반환합니다. 향후 모든 사용을 위해 sayHello는 이 인사말에 액세스할 수 있습니다!
function createGreeter(greeting) {
return function(name) {
console.log(greeting + ', ' + name);
}
}
const sayHello = createGreeter('Hello');
sayHello('Joe');
// Hello, Joe
보다 실제적인 시나리오에서는 API 키를 사용하는 일부 메서드를 반환하는 초기 함수 apiConnect(apiKey)를 구상할 수 있습니다. 이 경우 apiKey는 한 번만 제공하면 되며 다시는 제공되지 않습니다.
function apiConnect(apiKey) {
function get(route) {
return fetch(`${route}?key=${apiKey}`);
}
function post(route, params) {
return fetch(route, {
method: 'POST',
body: JSON.stringify(params),
headers: {
'Authorization': `Bearer ${apiKey}`
}
})
}
return { get, post }
}
const api = apiConnect('my-secret-key');
// No need to include the apiKey anymore
api.get('http://www.example.com/get-endpoint');
api.post('http://www.example.com/post-endpoint', { name: 'Joe' });
4. 스프레드 구문
사람들을 혼란스럽게 할 수 있지만 상대적으로 단순한 JavaScript 개념은 스프레드 연산자입니다! 다음의 경우 Math.max는 배열을 인수로 사용하지 않고 개별 요소를 인수로 사용하기 때문에 arr 배열에 적용할 수 없습니다. 스프레드 연산자 ...는 배열에서 개별 요소를 가져오는 데 사용됩니다.
const arr = [4, 6, -1, 3, 10, 4];
const max = Math.max(...arr);
console.log(max);
// 10
5. 나머지 구문
JavaScript 나머지 구문에 대해 이야기해 봅시다. 이를 사용하여 함수에 전달된 인수를 얼마든지 배열에 넣을 수 있습니다!
function myFunc(...args) {
console.log(args[0] + args[1]);
}
myFunc(1, 2, 3, 4);
// 3
6. 항등 연산자(===) 대 동등 연산자(==)
JavaScript에서 식별 연산자(===)와 같음 연산자(==)의 차이점을 꼭 알아두세요! == 연산자는 값을 비교하기 전에 유형 변환을 수행하는 반면 === 연산자는 비교하기 전에 유형 변환을 수행하지 않습니다.
console.log(0 == '0');
// true
console.log(0 === '0');
// false
7. 콜백 함수
너무 많은 사람들이 JavaScript 콜백 함수에 겁을 먹고 있습니다! 간단합니다. 이 예를 들어보세요. console.log 함수는 myFunc에 콜백으로 전달됩니다. setTimeout이 완료되면 실행됩니다. 그게 전부입니다!
function myFunc(text, callback) {
setTimeout(function() {
callback(text);
}, 2000);
}
myFunc('Hello world!', console.log);
// 'Hello world!'
이전에 이 7가지 원칙 중 하나도 몰랐다면 JavaScript 지식이 향상되었을 것입니다! 그리고 당신이 그들 모두를 알고 있다면, 이것이 당신의 지식을 테스트할 수 있는 기회였기를 바랍니다.
Reference
이 문제에 관하여(개발 기술을 향상시키는 데 도움이 되는 7가지 JavaScript 아이디어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mianazanfarooq/7-javascript-ideas-to-help-you-improve-your-development-skills-23k0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)