자 바스 크 립 트 의 강압 적 인 이미 지 를 만 드 는 법 을 알려 드릴 게 요.
1. 익명 함수 의 N 가지 표기 법
너 는 희 의 네 가지 문법 을 아니?ε=(・д・`*)ハ ァ..............................................................................
(function(){})();
그러나 아래 의 몇 가지 문법 도 괜찮다.
!function(){}(); +function(){}(); -function(){}(); ~function(){}(); ~(function(){})(); void function(){}(); (function(){}());
사실 자세히 보면 규칙 을 알 수 있 습 니 다. + -! ~ 이것들 은 매우 높 은 우선 순 위 를 가지 고 있 기 때문에 오른쪽 함수 성명 에 괄호 를 넣 은 부분 (사실은 함수 가 실행 하 는 쓰기) 은 바로 실 행 됩 니 다. 물론 이런 쓰기 방법 은 차이 가 없습니다. 순 전 히 엄 살 도 를 봅 니 다.
2. 또 다른 undefined
자바 스 크 립 트 는 할당 되 지 않 은 변 수 를 undefined 로 자동 으로 설정 하기 때문에 변 수 를 undefined 라 고 설명 할 필요 가 없습니다. 코드 에 이렇게 쓰 면 무시 당 합 니 다.var data = undefined;
그러나 만약 당신 이 강박 증 발작 이 라면, 잠시 가치 가 없 는 변 수 를 다시 성명 할 때 undefined 를 부여 해 야 합 니 다. 그러면 당신 은 이렇게 하 는 것 을 고려 할 수 있 습 니 다.var data = void 0; // undefined
void 는 JavaScript 에서 들 어 오 는 동작 을 실행 하지 않 고 undefined 로 되 돌려 줍 니 다. void 뒤에 () 와 함께 사용 할 수 있 습 니 다. 예 를 들 어 void (0) 는 익숙 해 보이 지 않 습 니까? 맞습니다. HTML 에서 href 가 있 는 기본 클릭 동작 을 막 을 때 href 를 javascript: void (0) 로 쓰 는 것 을 좋아 합 니 다. 실제로 void 작업 에 의 해 실행 되 지 않 는 다 는 뜻 입 니 다.
물론, 강요 하 는 것 을 제외 하고 실제 용도 에 서 는 void 를 사용 하 는 것 에 찬성 하지 않 습 니 다. void 의 등장 은 일찍 일어 나 는 ECMAScript 표준 에 undefined 속성 이 없 기 때 문 입 니 다. void 0 의 쓰기 방법 은 코드 를 어렵 게 만 듭 니 다.
3. 당신 을 버 린 if 와 else
JS 코드 에 대량의 조건 논리 적 판단 이 있 을 때 그 코드 는 얼마나 무서워 보 입 니까?if () { // ... } else if () { // ... } else if () { // ... } else { // ... }
내 가 말 하지 않 아 도 당신 은 어떤 문법 으로 if - else 를 간소화 하 는 지 알 아 맞 혔 습 니 다. 맞습니다. | | 과 &, 아주 간단 한 원 리 는 말 할 필요 가 없습니다. 특히 가끔 은!! 연산 자 를 사용 해도 if - else 모드 를 간소화 할 수 있 습 니 다. 예 를 들 어:// if-else var isValid = false; if (value && value !== 'error') { isValid = true; } // !! var isValid = !!(value && value !== 'error');
"!" 는 반동 을 취 하 는 것 이 고, 두 개 "!" 는 당연히 마이너스 가 플러스 가 되 는 것 이다.
4. 별점 없 음
자바 스 크 립 트 에 점 수 를 붙 일 지 말 지 에 대한 논쟁 은 이미 몇 년 동안 벌 어 졌 다. 구 글 의 자바 스 크 립 트 문법 안내 서 는 점 수 를 붙 여야 한 다 는 것 을 알려 주 었 고, 많은 자바 스 크 립 트 문법 서적 들 도 점 수 를 붙 이 는 것 이 더 안전 하 다 고 알려 주 었 다. 그러나 점 수 를 붙 일 지 말 지 는 개인 이 코드 를 쓰 는 방법 에 달 려 있다. 안전하게 쓰 면 점 수 를 붙 이지 않 는 것 이 더 커 보인다 고 확신한다.
5. ES6 아침 차 를 타 세 요.
ES6 는 곧 연말 에 정식으로 발 표 될 것 입 니 다. 유행 을 따 르 는 개발 자 들 은 빨리 자신의 코드 에 사용 하 세 요. module 성명 을 쓰 고 class 를 쓰 고 맵 을 만 지 는 것 은 당신 의 코드 를 더욱 높 게 만 들 것 입 니 다. 신마? 당신 은 사용 하지 않 을 것 입 니 다. 그래도 코드 머리 에 ES5 의 "use strict" 를 추가 하 는 것 은 좋 습 니 다.
6. AMD 모듈 지원 추가
당신 이 쓴 코드 에 AMD 모듈 규범 을 설명 합 니 다. 그러면 다른 사람 이 AMD 의 규범 을 통 해 당신 의 모듈 을 직접 불 러 올 수 있 습 니 다. 만약 다른 사람 이 규범 을 통 해 당신 의 모듈 을 불 러 오지 않 았 다 면 당신 도 일반적인 전체 대상 으로 우아 하 게 돌아 갈 수 있 습 니 다. jQueryUI 의 작성 방법 을 보 세 요.(function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define( [ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { // return $.widget; }));
그것 으로 당신 의 실제 코드 를 감 싸 세 요. 다른 사람 이 코드 를 보면 당신 이 전문 적 인 개발 자 라 는 것 을 알 수 있 도록 보장 합 니 다.
7. 함수 구조 함수
많은 JavaScript 튜 토리 얼 은 내 장 된 대상 의 구조 함수 로 기본 변 수 를 만 들 지 말 라 고 알려 줍 니 다. 예 를 들 어 var arr = new Array (2); 의 표기 법 은 var arr = [1, 2]; 의 표기 법 으로 대체 해 야 합 니 다. 그러나 Function 구조 함수 (대문자 Function 주의) 는 좀 특별 합 니 다. Function 구조 함수 가 받 아들 이 는 매개 변수 중 첫 번 째 는 들 어 올 매개 변수 이름 이 고 두 번 째 는 함수 내 코드 입 니 다.var f = new Function('a', 'alert(a)'); f('test'); // test
여러분 이 궁금 해 하 실 수도 있 습 니 다. 이렇게 돌아 서 쓰 시 면 function f (a) {alert (a);} 와 무슨 좋 은 점 이 있 습 니까? 사실 어떤 경우 에는 좋 습 니 다. 예 를 들 어 eval 을 사용 할 수 없 을 때 문자열 내용 을 입력 하여 함 수 를 만들어 야 할 때 입 니 다. 일부 자바 스 크 립 트 템 플 릿 언어 에 대한 해석 과 문자열 이 json 대상 을 바 꿀 때 실 용적 입 니 다.
8. 네 이 티 브 돔 인터페이스 로 jQuery 사용 안 함
츤 데 레 의 전단 엔 지 니 어 는 jQuery 를 필요 로 하지 않 는 다. 전 제 는 당신 이 고생 을 견 뎌 낼 수 있다 는 것 이다. 실제로 거의 모든 jQuery 방법 은 같은 Dom 원생 인터페이스 로 이 루어 질 수 있다. 왜냐하면 이 물건 은 원래 원생 인터페이스 로 이 루어 진 것 이기 때문이다. 하하. jQuery (jQuery - free 라 고도 함) 를 사용 하지 않 으 면 어떻게 할 수 있 을 까? 완 선생님 의 박문 인 《 jQuery - free 를 어떻게 할 수 있 을 까? 》 방법 을 잘 설명해 주 었 습 니 다. query Selector 와 query Selector All 이라는 두 현대 브 라 우 저의 인터페이스 에 의존 하면 jQuery 와 같은 편리 하고 효율 적 인 Dom 검색 을 실현 할 수 있 습 니 다. 또한 다른 Ajax 와 CSS 와 유사 한 인터페이스 역시 원생 방법 을 호 환 적 인 포장 으로 만 들 수 있 습 니 다. jQuery - free.
총결산
위 와 같은 모든 자 바스 크 립 트 장 착 법, 일 부 는 프로그램 이 이해 하기 쉽 거나 효율 을 높이 기 위 한 문법 사탕 입 니 다. 이런 방법 은 비교적 바람 직 합 니 다. 예 를 들 어 앞에서 말 한 if - else 를 생략 하 는 방법 입 니 다. 일부 쓰기 법 은 코드 가 어렵 거나 효율 이 낮 습 니 다. 예 를 들 어 위 에서 말 한 void 0 의 쓰기 법 은 실제 적 으로 바람 직 하지 않 습 니 다. 자 바스 크 립 트 문법 이 유연 하여 사람들 로 하여 금같은 기능 에는 여러 가지 다른 쓰기 가 있 습 니 다. 쓰기 의 최적화 는 프로그램 구조 와 코드 유지 에 큰 도움 이 됩 니 다. 그래서 잘 난 척 합 니 다.
본문 은 다음 과 같다.http://www.52html5.com/?p=2408
다음으로 전송:https://www.cnblogs.com/lady/p/3757786.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.