第 101 题 答案解析
var a = [3];
var b = [1];
console.log(a - b);
第 100 题 答案解析
var a=[1, 2, 3];
console.log(a.join());
第 99 题 答案解析
console.log(0.1   0.2 == 0.3);
第 98 题 答案解析
console.log(Array(3));
console.log(Array(2,3));
第 97 题 答案解析
console.log(Boolean(false));
console.log(Boolean('0'));
console.log(Boolean(''));
console.log(Boolean(NaN));
第 96 题 答案解析
console.log((function(){ return typeof arguments; })());
第 95 题 答案解析
function foo1() {
    return {
        bar: "hello"
    };
}
function foo2() {
    return 
    {
        bar: "hello"
    };
}
console.log(foo1());
console.log(foo2());
第 94 题 答案解析
console.log('b'   'a'    'a' 'a');
第 93 题 答案解析
var str = "123abc";
console.log(typeof str  );
第 92 题 答案解析
var x = 1;
if(function f(){}){
    x  = typeof f;
}
console.log(x);
第 91 题 答案解析
var a;
var b = 'undefined';
console.log(typeof a);
console.log(typeof b);
console.log(typeof c)
第 90 题 答案解析
console.log(typeof a);
function a() {}
var a;
console.log(typeof a);
第 89 题 答案解析
var a = 666;
console.log(  a);
console.log(a  );
console.log(a);
第 88 题 答案解析
console.log(1   "2"   "2");
console.log(1    "2"   "2");
console.log(1   -"1"   "2");
console.log( "1"   "1"   "2"); 
console.log( "A" - "B"   "2"); 
console.log( "A" - "B"   2);
第 87 题 答案解析
console.log(false.toString()); 
console.log([1, 2, 3].toString()); 
console.log(1.toString()); 
console.log(5..toString());
第 86 题 答案解析
var a = 6;
setTimeout(function () {
    a = 666;
}, 0)
console.log(a);
第 85 题 答案解析
(function() {
  var a = b = 3;
})();
console.log(typeof a === 'undefined');
console.log(typeof b === 'undefined');
第 84 题 答案解析
if (!('a' in window)) {
var a = 1;
}
console.log(a);
第 83 题 答案解析
var a = 1;
if(true){
    console.log(a);
    let a = 2;
}
第 82 题 答案解析
if(false){
    var a = 1;
    let b = 2;
}
console.log(a);
console.log(b);
第 81 题 答案解析
var g = 0;
g = 1 && g++;
console.log(g);
第 80 题 答案解析
function b(b) {
  return this.b && b(b)
}
console.log(b(b.bind(b)))
第 79 题 答案解析
console.log(1 << 33)
console.log((1 << 31) << 2)
第 78 题 答案解析
var a;
if (a = (1+1==2)) {
    console.log(a);
} else {
    console.log('false');
}
第 77 题 答案解析
console.log(5 > 3 > 2)
第 76 题 答案解析
setTimeout(function() {
  setTimeout(function() {
    console.log('foo');
  }, 50);
}, 100);
setTimeout(function() {
  setTimeout(function() {
    console.log('baz');
  }, 100);
}, 50);
第 75 题 答案解析
var a = (1,5 - 1) * 2
console.log(a)
第 74 题 答案解析
var foo = bar ? bar : 0;
第 73 题 答案解析
function a() {
    console.log(this);
}
a.call(null);
第 72 题 答案解析
var a = 1,
    b = function a(x) {
        x && a(--x);
    };
console.log(a);
第 71 题 答案解析
var f = (function f(){ return "1"; }, function g(){ return 2; })();
console.log(typeof f)
第 70 题 答案解析
function foo(){}
delete foo.length;
console.log(typeof foo.length);
第 69 题 答案解析
function foo(a, b) {
    arguments[1] = 2;
    console.log(b);
}
foo(1);
第 68 题 答案解析
var myArr = ['foo', 'bar', 'baz'];
myArr[2];

console.log('2' in myArr);
第 67 题 答案解析
var bar = 1,
    foo = {};
foo: {
    bar: 2;
    baz:   bar;
};

console.log(foo.baz   foo.bar   bar)
第 66 题 答案解析
var x = 0;
function foo() {
    x++;
    this.x = x;
    return foo;
}
var bar = new new foo;

console.log(bar.x);
第 65 题 答案解析
let myArr = ['foo', 'bar', 'baz'];
myArr.length = 0;
myArr.push('bin');

console.log(myArr);
第 64 题 答案解析
var x = 3;
var foo = {
    x: 2,
    baz: {
        x: 1,
        bar: function() {
            return this.x;
        }
    }
}
var go = foo.baz.bar;

console.log(go());
console.log(foo.baz.bar());
第 63 题 答案解析
console.log("1" - - "1")
第 62 题 答案解析
function bar() {
    return foo;
    foo = 10;
    function foo() {}
    var foo = '11';
}
console.log(typeof bar());
第 61 题 答案解析
function aaa() {
    return
    {
        test: 1
    };
}
console.log(typeof aaa());
第 60 题 答案解析
console.log(['11','11','11','11'].map(parseInt))
第 59 题 答案解析
var foo = function bar(){ return 12; };
typeof bar();
第 58 题 答案解析
var y = 1;
if (function f(){}) {
  y += typeof f;
}
console.log(y);
第 57 题 答案解析
console.log([2, 3, -1, -6, 0, -108, 42, 10].sort())
第 56 题 答案解析
var scores = [98, 74,85, 77, 93,100,89];
var total = 0;
for (var score in scores) { 
  total  = score;
} 
var mean = total / scores.length;
console.log(mean); //?
第 55 题 答案解析
var a;
/* put your code here */
a !== a; // should be true
第 54 题 答案解析
function foo(){console.log("hello")}
foo.call.call.call.apply(function bar(x) {console.log(x)}, [this,"world"])
第 53 题 答案解析
a = [1,2,3,4]
a[1.5] = 1.5
console.log(a)
第 52 题 答案解析
function f(x, y) {
  x = 10;
  console.log(
    arguments[0],
    arguments[1]
  );
}
f();
第 51 题 答案解析
var x = 10;
var foo = {
  x: 20,
  bar: function () {
    var x = 30;
    return this.x;
  }
};
console.log(
  foo.bar(),
  (foo.bar)(),
  (foo.bar = foo.bar)(),
  (foo.bar, foo.bar)()
);
第 50 题 答案解析
var foo = {
  bar: function(){ return this.baz; },
  baz: 1
}

console.log(typeof (f = foo.bar)())
第 49 题 答案解析
var foo = {
  bar: function() { return this.baz; },
  baz: 1
};
(function(){
  console.log(typeof arguments[0]())
  return typeof arguments[0]();
})(foo.bar);
第 48 题 答案解析
function User(name) { this.name = name; }
var u1 = User('Bob');
var u2 = new User('Sam');
var u3 = User.call({}, 'Mike'); // <-- N.B.
console.log(u1)
console.log(u2)
console.log(u3)
第 47 题 答案解析
Logger = function(logFn) {
  _logFn = logFn;
  this.log = function(message) {
    _logFn(new Date()   ": "   message);
  }
};
var logger = new Logger(console.log);
logger.log("Hi!");
logger.log("Wazzup?");
第 46 题 答案解析
function A() {
  this.value = 1;
}
var B = function() {} ;
/* put your code here */
var b = new B;
console.log(b.value === undefined) // should be true
console.log(b instanceof A) // should be true
第 45 题 答案解析
var person = {
  name: "Sam",
  hello: function() {
    console.log(this.name);
  }
};
var hello = person.hello;
hello(); // Make it to output "Sam"
第 44 题 答案解析
foo();

var foo = function() {
  console.log(false);
}

foo();

function foo() {
  console.log(true);
}

foo();
第 43 题 答案解析
var a = {
  currentValue: 0,
  valueOf() {
     return this.currentValue += 1
  }
}
var eq = (a == 1 && a == 2 && a == 3);
console.log(eq); // awesome =)
第 42 题 答案解析
(function() {
   var a = b = 5;
})();
console.log(b);
第 41 题 答案解析
var a = (1,2,3);
console.log(a);
第 40 题 答案解析
falseStr = "false";
if(true){
  var falseStr;
  if(falseStr){
   console.log("false" == true);
   console.log("false" == false);
  }
}
第 39 题 答案解析
(function() {
 var a = 0;
  f();
  if( a ) {
    function f() { console.log("1"); };
  } else {
    function f() { console.log("2"); };
  }
})();
第 38 题 答案解析
(function() {
 var a = 'initial';
  if(a) {
    function f() { console.log("1"); };
  } else {
    function f() { console.log("2"); };
  }
  f();
})();
第 37 题 答案解析
var text = 'outside';
function logIt(){
    console.log(text);
    var text = 'inside';
};
logIt();
第 36 题 答案解析
function f(){ return f; }
console.log(new f() instanceof f)
第 35 题 答案解析
let test = (function f(){
  function f(){ return 1; }
  return f();
  function f(){ return 2; }
})();
console.log(test)
第 34 题 答案解析
var a = 1;
var b = function() {
 a = 10;
 return a;
 function a() {
   a = 5;
  }
};
console.log(b(), a);
第 33 题 答案解析
console.log("This is a string" instanceof String)
第 32 题 答案解析
console.log(new String('Hello') === 'Hello')
第 31 题 答案解析
(function() {
    logMe();
    var logMe = function() {
        console.log('Jesus, George, it was a wonder I was even born.');
    };
    logMe();

    function logMe() {
        console.log('Great Scott!');
    }
    logMe();
})();
第 30 题 答案解析
(function(foo){
  console.log(typeof foo.bar)
  return typeof foo.bar;
})({ foo: { bar: 1 } });
第 29 题 答案解析
var x = [typeof x, typeof y][1];
console.log(typeof typeof x);
第 28 题 答案解析
var y = 1, x = y = typeof x;
console.log(x);
第 27 题 答案解析
var f = function g(){ return 23; };
console.log(typeof g())
第 26 题 答案解析
(function() {
  var x = 1;

  function x() {};

  console.log(x);
})();
第 25 题 答案解析
(function() {
  f();
  f = function() {
    console.log(1);
  }
})();
function f() {
  console.log(2)
}
f();
第 24 题 答案解析
(function() {
  console.log(inner);
  inner();
  var inner = function() {
    console.log('inner');
  }
})();
第 23 题 答案解析
(function() {
  console.log(inner);

  inner();
  function inner() {
    console.log('inner');
  }
})();
第 22 题 答案解析
function test() {
  console.log(a);
  console.log(foo());

  var a = 1;

  function foo() {
    return 2;
  }
}
test();
第 21 题 答案解析
console.log("1" + 2);
console.log(2 + "1");
console.log(1 + 2 + 3 + 4 + "5");
第 20 题 答案解析
var a = {};
var b = { key: 'b' };
var c = { key: 'c' };

a[b] = 123;
a[c] = 456;
console.log(a[b]);
第 19 题 答案解析
var a = 1;
function b() {
  a = 10;
  return;
  function a() {
  }
}
b();
console.log(a);
第 18 题 答案解析
(function() {
  console.log(1);
  setTimeout(() => console.log(2), 1000);
  setTimeout(() => console.log(3), 0);
  Promise.resolve(true).then(() => console.log(4));
  console.log(5);
})();
第 17 题 答案解析
// 下一个代码打印 0,1,2,3,4,4,3,2,1,0 仅修改函数(不是循环)以获取输出为 4,3,2,1,0,0,1,2,3 ,4
// 修改前输出 0,1,2,3,4,4,3,2,1,0
var a = function(i) {
  console.log(i);
};
var b = function(i) {
  console.log(i);
};
for (var i = 0; i < 5; i++) {
  a(i);
}
for (var i = 4; i >= 0; i--) {
  b(i);
}
// 修改后输出 4,3,2,1,0,0,1,2,3 ,4
var a = function(i) {
  console.log(4-i);
};
var b = function(i) {
  console.log(4-i);
};
for (var i = 0; i < 5; i++) {
  a(i);
}
for (var i = 4; i >= 0; i--) {
  b(i);
}
第 16 题 答案解析
function say(a) {
  console.log(a);
}
say(1);
setTimeout(say(2), 5000);
setTimeout(function() {
  say(3);
}, 1000);
setTimeout(say, 2000, 4);
第 15 题 答案解析
console.log(1);
setTimeout(function() {
  console.log(2);
}, 1000);
setTimeout(function() {
  console.log(3);
}, 0);
console.log(4);
第 14 题 答案解析
const fn = () => {
 let a = 1;
 return () => {
   a  ;
   return a;
 }
};
const fnRes = fn();

console.log(fnRes())
console.log(fnRes())

const fnRes2 = fn();

console.log(fnRes2())
console.log(fnRes2())
第 13 题 答案解析
<button id="btn-0">Button 1!</button>
<button id="btn-1">Button 2!</button>
<button id="btn-2">Button 3!</button>
<script type="text/javascript">
    var prizes = ['A Unicorn!', 'A Hug!', 'Fresh Laundry!'];
    for (var btnNum = 0; btnNum < prizes.length; btnNum  ) {
        // for each of our buttons, when the user clicks it...
        document.getElementById('btn-'   btnNum).onclick = function() {
            // tell her what she's won!
            console.log(prizes[btnNum]);
            console.log(btnNum)
            // 输出结果 undefined
            // 输出结果 3
        };
    }
</script>
第 12 题 答案解析
(function(x) {
  return (function(y) {
      console.log(x);
  })(2)
})(1);
第 11 题 答案解析
(function() {
  var a = b = 5;
})();
console.log(b);
第 10 题 答案解析
var func = [];
for (var i = 0; i < 5; i  ) {
  func[i] = function() {
    console.log(i);
  };
}
func[3]();
第 9 题 答案解析
for (var i = 0; i < 5; i  ) {
  setTimeout(function() {
    console.log(i);
  }, 1000);
}
第 8 题 答案解析
var myObject = {
  price: 20.99,
  get_price: function() {
    return this.price;
  }
};
var customObject = Object.create(myObject);
customObject.price = 19.99;
delete customObject.price;
console.log(customObject.get_price());
第 7 题 答案解析
(function(a) {
  arguments[0] = 10;
  console.log(a)
  return a;
})(5);
第 6 题 答案解析
function Car(color) {
  this.color = color;
}
var lada = new Car("Black");
Car.prototype.currentGear = 1;
console.log(  lada.currentGear);
console.log(Car.prototype.currentGear);
第 5 题 答案解析
var User = function() {};

User.prototype.attributes = {
  isAdmin: false
};

var admin = new User("Sam");
var guest = new User("Bob");

admin.attributes.isAdmin = true;

console.log(admin.attributes.isAdmin);
console.log(guest.attributes.isAdmin);
第 4 题 答案解析
var obj = {a: 1};
(function(obj) {
  obj = {a: 2};
})(obj);
console.log(obj.a);
第 3 题 答案解析
var foo = { n: 1 };
var bar = foo;
foo.x = foo = { n: 2 };
console.log(foo.x)
第 2 题 答案解析
function Person(name) {
  if (name) this.options.name = name;
}

Person.prototype.options = {
  name: "Default name"
};

var foo = new Person("foo");
var bar = new Person("bar");

console.log(foo.options.name);
console.log(bar.options.name);
第 1 题 答案解析
var a = {};

(function b ( a ) {
    a.a = 10;
    a = null;
})( a );

console.log(a);