12 가지 유용 한 자 바스 크 립 트 기법
1)사용!!변 수 를 불 형식 으로 변환 합 니 다.
때때로,우 리 는 일부 변수 가 존재 하 는 지,아니면 유효한 값 이 있 는 지 검사 해서,그것들의 값 을 true 로 간주 해 야 한다.이러한 검 사 를 할 때||(이중 부정 연산 자)를 사용 할 수 있 습 니 다.모든 종류의 데 이 터 를 불 값 으로 자동 으로 변환 할 수 있 습 니 다.이 변수 만 false:0,null,",undefined 또는 NaN 으로 되 돌아 갈 수 있 습 니 다.다른 것 은 true 로 돌아 갑 니 다.우 리 는 이 간단 한 예 를 보 자.
function Account(cash) {
this.cash = cash;
this.hasMoney = !!cash;
}
var account = new Account(100.50);
console.log(account.cash); // 100.50
console.log(account.hasMoney); // true
var emptyAccount = new Account(0);
console.log(emptyAccount.cash); // 0
console.log(emptyAccount.hasMoney); // false
이 예 에서 account.cash 의 값 이 0 보다 크 면 account.hasMoney 의 값 은 true 입 니 다.2)사용+변 수 를 숫자 로 변환
이 변환 은 매우 간단 하지만 숫자 문자열 에 만 적 용 됩 니 다.그렇지 않 으 면 NaN(숫자 가 아 닙 니 다)으로 돌아 갑 니 다.이 예 를 보 세 요.
function toNumber(strNumber) {
return +strNumber;
}
console.log(toNumber("1234")); // 1234
console.log(toNumber("ACB")); // NaN
이 변환 동작 은 Date 에 도 사용 할 수 있 습 니 다.이 경우 타임 스탬프 를 되 돌려 줍 니 다.
console.log(+new Date()) // 1461288164385
3)단락 조건만약 당신 이 이런 유사 한 코드 를 본 적 이 있다 면:
if (conected) {
login();
}
그러면 이 두 변수 사이 에&&(AND 연산 자)를 사용 하여 코드 를 줄 일 수 있 습 니 다.예 를 들 어 앞의 코드 는 한 줄 로 줄 일 수 있 습 니 다.
conected && login();
너 도 이런 방법 으로 대상 에 어떤 속성 이나 함수 가 존재 하 는 지 검사 할 수 있다.다음 코드 와 유사 합 니 다:
user && user.login();
4)사용|||기본 값 설정ES6 에는 기본 매개 변수 라 는 기능 이 있 습 니 다.이전 브 라 우 저 에서 이 기능 을 모 의 하기 위해 서 는||(OR 연산 자)를 사용 하고 기본 값 을 두 번 째 인자 로 사용 할 수 있 습 니 다.첫 번 째 매개 변수 가 false 로 돌아 가면 두 번 째 매개 변 수 는 기본 값 으로 돌아 갑 니 다.이 예 를 보 세 요.
function User(name, age) {
this.name = name || "Oliver Queen";
this.age = age || 27;
}
var user1 = new User();
console.log(user1.name); // Oliver Queen
console.log(user1.age); // 27
var user2 = new User("Barry Allen", 25);
console.log(user2.name); // Barry Allen
console.log(user2.age); // 25
5)순환 중 캐 시 array.length이 기 교 는 매우 간단 하고 대수 그룹 을 순환 처리 할 때 성능 에 큰 영향 을 미 치 는 것 을 피 할 수 있다.기본적으로 거의 모든 사람 이 이렇게 for 를 사용 하여 하나의 배열 을 반복 합 니 다.
for (var i = 0; i < array.length; i++) {
console.log(array[i]);
}
작은 배열 을 사용 하면 괜 찮 지만 큰 배열 을 처리 하면 이 코드 는 모든 순환 에서 배열 의 크기 를 반복 해서 계산 합 니 다.이것 은 일정한 지연 이 생 길 수 있 습 니 다.이러한 상황 을 피하 기 위해 서 는 array.length 를 변수 에 캐 시 할 수 있 습 니 다.순환 할 때마다 array.length 대신 캐 시 를 사용 할 수 있 습 니 다.
var length = array.length;
for (var i = 0; i < length; i++) {
console.log(array[i]);
}
더욱 간결 하기 위해 서 는 이렇게 쓸 수 있다.
for (var i = 0, length = array.length; i < length; i++) {
console.log(array[i]);
}
6)검 측 대상 의 속성일부 속성 이 존재 하 는 지 확인 하고 정의 되 지 않 은 함수 나 속성 을 실행 하지 않도록 해 야 할 때 이 기술 은 매우 유용 합 니 다.크로스 브 라 우 저 코드 를 만 들 려 면 이 기술 을 사용 할 수도 있 습 니 다.예 를 들 어,이전 버 전의 Internet Explorer 6 와 호 환 되 는 코드 를 작성 해 야 한다 고 가정 하고,document.query Selector()를 사용 하여 ID 를 통 해 일부 요 소 를 가 져 오 려 고 합 니 다.그러나 현대 브 라 우 저 에 서 는 이 함수 가 존재 하지 않 습 니 다.따라서 이 함수 가 존재 하 는 지 확인 하려 면 in 연산 자 를 사용 할 수 있 습 니 다.이 예 를 보 세 요.
if ('querySelector' in document) {
document.querySelector("#id");
} else {
document.getElementById("id");
}
이 경우 document 에 query Selector 함수 가 없 으 면 document.getElement ById()를 대체 합 니 다.7)배열 의 마지막 요 소 를 가 져 옵 니 다.
Array.prototype.slice(begin,end)는 배열 을 자 르 는 데 사용 할 수 있 습 니 다.그러나 종료 매개 변수 end 의 값 을 설정 하지 않 으 면 이 함 수 는 자동 으로 end 를 배열 길이 값 으로 설정 합 니 다.나 는 이 함수 가 마 이 너 스 를 받 아들 일 수 있다 는 것 을 아 는 사람 이 별로 없다 고 생각한다.만약 에 begin 을 마이너스 로 설정 하면 배열 에서 마지막 요 소 를 얻 을 수 있다.
var array = [1, 2, 3, 4, 5, 6];
console.log(array.slice(-1)); // [6]
console.log(array.slice(-2)); // [5,6]
console.log(array.slice(-3)); // [4,5,6]
8)배열 절단이 기술 은 배열 의 크기 를 잠 글 수 있 습 니 다.이것 은 배열 의 고정 수량 요 소 를 삭제 하 는 데 매우 유용 합 니 다.예 를 들 어 10 개의 요 소 를 포함 하 는 배열 이 있 지만 앞의 5 개의 요소 만 얻 으 려 면 array.length=5 단계 배열 을 설정 할 수 있 습 니 다.이 예 를 보 세 요.
var array = [1, 2, 3, 4, 5, 6];
console.log(array.length); // 6
array.length = 3;
console.log(array.length); // 3
console.log(array); // [1,2,3]
9)모두 교체String.replace()함 수 는 String 과 Regex 를 사용 하여 문자열 을 바 꿀 수 있 습 니 다.이 함수 자 체 는 첫 번 째 일치 하 는 문자열 만 바 꿀 수 있 습 니 다.그러나 정규 표현 식 끝 에/g 를 추가 하여 replace All()함 수 를 모 의 할 수 있 습 니 다.
var string = "john john";
console.log(string.replace(/hn/, "ana")); // "joana john"
console.log(string.replace(/hn/g, "ana")); // "joana joana"
10)병합 배열두 배열 을 합 쳐 야 한다 면 Array.concat()함 수 를 사용 할 수 있 습 니 다.
var array1 = [1, 2, 3];
var array2 = [4, 5, 6];
console.log(array1.concat(array2)); // [1,2,3,4,5,6];
그러나 이 함 수 는 큰 배열 에 적합 하지 않 습 니 다.새로운 배열 을 만 들 고 많은 메모 리 를 소모 하기 때 문 입 니 다.이 경우 Array.push.apply(arr1,arr2)를 사용 할 수 있 습 니 다.새 배열 을 만 들 지 않 고 두 번 째 배열 을 첫 번 째 배열 에 합 쳐 메모리 사용 을 줄 일 수 있 습 니 다.
var array1 = [1, 2, 3];
var array2 = [4, 5, 6];
console.log(array1.push.apply(array1, array2)); // [1,2,3,4,5,6];
11)NodeList 를 배열 로 변환document.query Selector All("p")함 수 를 실행 하면 DOM 요소 배열,즉 NodeList 대상 을 되 돌려 줍 니 다.그러나 이 대상 은 배열 에 속 하 는 함수 가 없습니다.예 를 들 어 sort(),reduce(),map(),filter().이 함수 와 배열 의 다른 원생 함 수 를 사용 하기 위해 서 는 NodeList 를 배열 로 변환 해 야 합 니 다.변환 을 하려 면 이 함수 만 사용 하 십시오:[].slice.call(elements):
var elements = document.querySelectorAll("p"); // NodeList
var arrayElements = [].slice.call(elements); //
var arrayElements = Array.from(elements); // NodeList
12)배열 요소 에 대한 카드 세탁외부 라 이브 러 리 Lodash 처럼 데이터 요 소 를 다시 섞 으 려 면 이 기술 만 사용 하 십시오.
var list = [1, 2, 3];
console.log(list.sort(function() {
return Math.random() - 0.5
})); // [2,1,3]
결론.현재,당신 은 유용 한 JS 기술 을 배 웠 습 니 다.그들 은 주로 자바 스 크 립 트 코드 의 양 을 줄 이 는 데 사 용 됩 니 다.그 중에서 일부 기술 은 많은 유행 하 는 JS 프레임 워 크 에서 사용 되 고 있 습 니 다.예 를 들 어 Lodash,Underscore.js,Strings.js 등 입 니 다.다른 JS 기술 을 알 고 있다 면 공유 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.