(A == 3 && == 4 && == 5)의 복귀에 해당

 

1. Object.defineProperty

 
var val = 1;
Object.defineProperty(window, 'a', { configurable: true, get: function() { console.log(`触发第${val}次get`); return val++ } }) if(a == 1 && a == 2 && a == 3) { console.log('yes!') } 触发第1次get 触发第2次get 触发第3次get yes! 

2. toString valueOf () 메서드 ()

const b = {
  i: 1,
  toString: function () { return this.i++; } } if(b == 1 && b == 2 && b == 3) { console.log('Hello World!'); // Hello World! } const b = { i: 1, valueOf: function () { return this.i++; } } if(b == 1 && b == 2 && b == 3) { console.log('Hello World!'); // Hello World! } 
암시 적으로 비교 원래 값과 객체 비교의 유형, 객체가 원래 유형의 값을 변환 한 다음 비교 될 경우, toString 또는 valueOf 메소드를 호출합니다. 원래의 형태로 변환 개체 값이 알고리즘은 객체가 반환되는 경우 다음, 첫 번째 통화의 valueOf 메소드입니다 다시 toString 메소드를 호출

3. array.join = array.shift

var a = [1,2,3];
a.join = a.shift;
console.log(a == 1 && a == 2 && a == 3);

a == 1 ,此时 a 返回的就是shift返回的第一个元素 1 ,比较完之后  a = [2,3]
a == 2 ,此时 a 返回的就是shift返回的第一个元素 2 ,比较完之后  a = [3]
a == 3 ,此时 a 返回的就是shift返回的第一个元素 3 ,比较完之后  a = []
배열 객체, 배열 toString 메소드는 () 배열 있으며, toString 각 요소 문자열을 반환 (쉼표로 구분) () 메소드 커넥터 컴포넌트 가입 호출하여 값을 반환.

4.Proxy

VAR의 A는 = 새로운 프록시 (I {0 }, { 
 
얻을 : (대상 이름) ? => === Symbol.toPrimitive 이름은 ()> = ++ 타겟 [이름] : target.i을 
 
}) 
 
CONSOLE.LOG (a == 1 && == 2 && == 3);

 

5. Symbol.toPrimitive

// 다른 용액 된 toString ES6 당량이다 Symbol.toPrimitive을 사용 / valueOf은 
{(I ++ (I) => () =>) (0 [Symbol.toPrimitive] A =하자 )}; 
 
CONSOLE.LOG (a == 1 && == 2 && == 3);

 

6. 특별 지정

var에 A = ㅤ 1. ;
 var에 A = 2 ;
 var에 A =을 ㅤ 3. ,
 IF (.. ㅤ 1 && == == == 2 && ㅤ 3 ) { 
    을 console.log ( "! 왜 거기 안녕하세요" ) 
} 
 
/ / 송출 된 ㅤ A = 1]. 
// 송출 된 A = 2] 
// . 송출 된 ㅤ A = 3; 
// https://stackoverflow.com/questions/48270127/can-a-1-a-2-a-3- - 투 - 더 평가 - 이제까지 #에 충실 
// 여기에 세 가지 다른 변수, 첫 번째와 세 번째 공백 문자가 아닌 공간 전후이며, 유니 코드 FFA0가 
// 참고 이상한 간격의 if 문. 그것은 = = 반 폭 한국어입니다. 이 유니 코드 공백 문자이지만, ECMAScript를 하나의 공간으로 해석 할 수 없습니다 - 유효한 식별자를 의미합니다. 그러므로 세 개의 완전히 다른 변수 절반 폭 A는, 절반 폭은 한국 앞에는이며, 한국 후에 첨가되어있다.

7. 디지털 변수 이름

var  a = 1;
var ᅠ1 = a;
var ᅠ2 = a;
var ᅠ3 = a;
console.log( a ==ᅠ1 && a ==ᅠ2 && a ==ᅠ3 );

 

당신이 달성하기 위해 다른 방법이있는 경우, 구현 요에 귀하의 의견을 남길 수 있습니다!

 

추천

출처www.cnblogs.com/wangking/p/11202572.html