zoukankan      html  css  js  c++  java
  • js面试题

    题目:如何让下面的表达式成立,成功打印出 123 ?

    if(a==1&&a==2&&a==3){console.log(123)}

     解决方案:

    // 1. 利用Object.definePrototype
    
    (function () {
        let i = 0;
        Object.defineProperty(window, 'a', {
            get () { return ++i; }
        })
    })()
    
    if (a == 1 && a == 2 && a == 3) { console.log(a, 123) }
    // 2. 利用隐式转换 valueOf
    
    var a = {i: 0};
    a.valueOf = function () { return a.i += 1; }
    
    if (a == 1 && a == 2 && a == 3) { console.log(a, 123) }
    // 3. 利用隐式转换 toString
    var a = {i: 0};
    a.toString = function () {
      return a.i += 1;  
    }
    
    if (a == 1 && a == 2 && a == 3) { console.log(a, 123) }
    // 4. 利用隐式转换 [Symbol.toPrimitive]
    var i = 0;
    var a = {
        [Symbol.toPrimitive]() { return ++i ;}
    }

    if (a == 1 && a == 2 && a == 3) { console.log(a, 123) }
  • 相关阅读:
    Pentaho
    sympy 解四元一次方程
    install R language on ubuntu
    pyside
    浙江省医院网上挂号
    mtu值相关
    Python 中除法运算需要注意的几点
    idea
    kilim
    good blog
  • 原文地址:https://www.cnblogs.com/EnSnail/p/9706398.html
Copyright © 2011-2022 走看看