VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > JavaScript教程 >
  • js烧脑面试题大赏

本文精选了20多道具有一定迷惑性的js题,主要考察的是类型判断、作用域、this指向、原型、事件循环等知识点,每道题都配有笔者详细傻瓜式的解析,偏向于初学者,大佬请随意。

第1题

let a = 1
function b(a) {
  a = 2
  console.log(a)
}
b(a)
console.log(a)
点击查看答案
点击查看解析

第2题

function a (b = c, c = 1) {
  console.log(b, c)
}
a()
点击查看答案
点击查看解析

第3题

let a = b = 10
;(function(){ 
  let a = b = 20 
})()
console.log(a)
console.log(b)
点击查看答案
点击查看解析

第4题

var a = {n:1}
var b = a
a.x = a = {n:2}
console.log(a.x)
console.log(b.x)
点击查看答案
点击查看解析

第5题

var arr = [0, 1, 2]
arr[10] = 10
console.log(arr.filter(function (x) {
  return x === undefined
}))
点击查看答案
点击查看解析

第6题

var name = 'World'
;(function () {
  if (typeof name === 'undefined') {
    var name = "Jack"
    console.info('Goodbye ' + name)
  } else {
    console.info('Hello ' + name)
  }
})()
点击查看答案
点击查看解析

第7题

console.log(1 + NaN)
console.log("1" + 3)
console.log(1 + undefined)
console.log(1 + null)
console.log(1 + {})
console.log(1 + [])
console.log([] + {})

点击查看答案
点击查看解析

第8题

var a={},
    b={key:'b'},
    c={key:'c'}
a[b]=123
a[c]=456
console.log(a[b])
点击查看答案
点击查看解析

第9题

var out = 25
var inner = {
  out: 20,
  func: function () {
    var out = 30
    return this.out
  }
};
console.log((inner.func, inner.func)())
console.log(inner.func())
console.log((inner.func)())
console.log((inner.func = inner.func)())
点击查看答案
点击查看解析

第10题

let {a,b,c} = { c:3, b:2, a:1 }
console.log(a, b, c)
点击查看答案
点击查看解析

第11题

console.log(Object.assign([1, 2, 3], [4, 5]))
点击查看答案
点击查看解析

第12题

var x=1
switch(x++)
{
  case 0: ++x
  case 1: ++x
  case 2: ++x
}
console.log(x)
点击查看答案
点击查看解析

第13题

console.log(typeof undefined == typeof NULL)
console.log(typeof function () {} == typeof class {})
点击查看答案
点击查看解析

第14题

var count = 0
console.log(typeof count === "number")
console.log(!!typeof count === "number")
点击查看答案
点击查看解析

第15题

"use strict"
a = 1
var a = 2
console.log(window.a)
console.log(a)
点击查看答案
点击查看解析

第16题

var i = 1
function b() {
  console.log(i)
}
function a() {
  var i = 2
  b()
}
a()
点击查看答案
点击查看解析

第17题

var obj = {
  name: 'abc',
  fn: () => {
    console.log(this.name)
  }
};
obj.name = 'bcd'
obj.fn()
点击查看答案
点击查看解析

第18题

const obj = {
  a: {
    a: 1
  }
};
const obj1 = {
  a: {
    b: 1
  }
};
console.log(Object.assign(obj, obj1))
点击查看答案
点击查看解析

第19题

console.log(a)
var a = 1
var getNum = function() {
  a = 2
}
function getNum() {
  a = 3
}
console.log(a)
getNum()
console.log(a)
点击查看答案
点击查看解析

第20题

var scope = 'global scope'
function a(){
  function b(){ 
    console.log(scope)
  }
  return b
  var scope = 'local scope'
}
a()()
点击查看答案
点击查看解析

第21题

function fn (){ 
  console.log(this) 
}
var arr = [fn]
arr[0]()
点击查看答案
点击查看解析

第22题

var a = 1
function a(){}
console.log(a)

var b
function b(){}
console.log(b)

function b(){}
var b
console.log(b)
点击查看答案
点击查看解析

第23题

function Foo() {
  getName = function () { console.log(1) }
  return this
}
Foo.getName = function () { console.log(2) }
Foo.prototype.getName = function () { console.log(3) }
var getName = function () { console.log(4) }
function getName() { console.log(5) }

//请写出以下输出结果:
Foo.getName()
getName()
Foo().getName()
getName()
new Foo.getName()
new Foo().getName()
new new Foo().getName()
点击查看答案
点击查看解析

第24题

const person = {
	address: {
		country:"china",
		city:"hangzhou"
	},
	say: function () {
		console.log(`it's ${this.name}, from ${this.address.country}`)
	},
	setCountry:function (country) {
		this.address.country=country
	}
}

const p1 = Object.create(person)
const p2 = Object.create(person)

p1.name = "Matthew"
p1.setCountry("American")

p2.name = "Bob"
p2.setCountry("England")

p1.say()
p2.say()
点击查看答案
点击查看解析

第25题

setTimeout(function() {
  console.log(1)
}, 0)
new Promise(function(resolve) {
  console.log(2)
  for( var i=0 ; i<10000 ; i++ ) {
    i == 9999 && resolve()
  }
  console.log(3)
}).then(function() {
  console.log(4)
})
console.log(5)
点击查看答案
点击查看解析

第26题

console.log('1');

setTimeout(function() {
  console.log('2');
  process.nextTick(function() {
    console.log('3');
  });
  new Promise(function(resolve) {
    console.log('4');
    resolve();
  }).then(function() {
    console.log('5');
  });
}); 

process.nextTick(function() {
  console.log('6');
});

new Promise(function(resolve) {
  console.log('7');
  resolve();
}).then(function() {
  console.log('8');
});

setTimeout(function() {
  console.log('9');
  process.nextTick(function() {
    console.log('10');
  }) 
  new Promise(function(resolve) {
    console.log('11');
    resolve();
  }).then(function() {
    console.log('12')
  });
})





来源:https://www.cnblogs.com/wanglinmantan/p/15086909.html

相关教程