有趣的前端面试题——前篇:题目篇

本文为——前篇:题目篇,想看答案及解析可见

有趣的前端面试题——后篇:答案篇

1.看代码得结果 题1

var a = 1
if (true) {
  console.log(a)
  let a = 2
}

2.看代码得结果 题2

var a = {n: 1}
var b = a
a.x = a = {n: 2}

console.log(a.n, b.n)
console.log(a.x, b.x)

3.看代码得结果 题3

var c = 1
function c(c) {
  console.log(c)
  var c = 3
}
console.log(c)
c(2)

4.看代码得结果 题4

(function() {
  var a = b = 3
})()
console.log(typeof a === 'undefined')
console.log(typeof b === 'undefined')

5.看代码得结果 题5

function f() {
  return f
}
console.log(new f() instanceof f)

6.看代码得结果 题6

function Person() {
  getAge = function () {
    console.log(10)
  }
  return this
}

Person.getAge = function () {
  console.log(20)
}

Person.prototype.getAge = function () {
  console.log(30)
}

var getAge = function () {
  console.log(40)
}

function getAge() {
  console.log(50)
}


Person.getAge()
getAge()
Person().getAge()
new Person.getAge()
getAge()
new Person().getAge()

7.看代码得结果 题7

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)

8.看代码得结果 题8

console.log(typeof a)
function a() {}
var a
console.log(typeof a)

9.看代码得结果 题9

var x = 1
if (function f(){}) {
  x += typeof f
}
console.log(x)

10.看代码得结果 题10

var b = 10;
(function b(){
    b = 20;
    console.log(b); 
})();

11.看代码得结果 题11

var obj = {
    '2': 3,
    '3': 4,
    'length': 2,
    'splice': Array.prototype.splice,
    'push': Array.prototype.push
}
obj.push(1)
obj.push(2)
console.log(obj)

12.看代码得结果 题12

var a = {}, b = {key:'123'}, c = {key:'456'};  
a[b] = 'b';
a[c] = 'c';  
console.log(a[b]);

13.看代码得结果 题13

function changeObjProperty(o) {
  o.siteUrl = "http://www.baidu.com"
  o = new Object()
  o.siteUrl = "http://www.google.com"
} 
let webSite = new Object();
changeObjProperty(webSite);
console.log(webSite.siteUrl);

14.代码题 —— 接受参数 n = 5,不用 for 循环输出数组 [1, 2, 3, 4, 5]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值