资讯专栏INFORMATION COLUMN

前端面试经典

W4n9Hu1 / 2722人阅读

摘要:这边列举了个前端经典的面试题首先我们来看一下题目,都各自思考一下,自己是否能够做出来。

这边列举了5个前端经典的面试题

首先我们来看一下题目,都各自思考一下,自己是否能够做出来。然后再跟后面的答案对比一下

题目1
var a = {n:1}
var b = {n:2}
b.x = a = {n:3}
console.log(b.x)
a.x = a = {n:3}
console.log(a.x)
题目2
(1)
var start = new Date()
setTimeout(function() {
    console.log(new Date() -start)
}, 500)
(2)
var start = new Date()
setTimeout(function() {
    console.log(new Date() -start)
}, 500)

while((new Date() - start <= 1000) {}
题目3
var log = console.log
var hint = window.alert
var write = document.write
log("123")
hint("123")
wirte("123")
题目4
var name = "A"
function getName() {
    return this.name
}
var obj = {
    name: "B",
    getName: function() {
        return this.name
    },
    showName:function(a) {
        console.log(getName())
        console.log(a())
        console.log(a === arguments[0])
        console.log(arguments[0]())
    } 
}
obj .showName(getName, 1)
题目5
async function async1() {
    console.log("async1 start")
    await async2()
    console.log("async1 end")
}
async function async2() {
    console.log(async2())
}
console.log("script start")
setTimeout(function() {
    console.log("setTimeout")
}, 0)
async1()
new Promise(function (resolve) {
    console.log("promise1")
    resolve()
}).then(function() {
    console.log("promise2")
})
console.log("script end")
答案1
console.log(b.x)   // {n:3}
console.log(a.x)   // undefined
这是跟js的优先级有关的 .的优先级最高,因此先计算左边的b.x,a.x
答案2
(1)
console.log(new Date() -start)  // 不是一定500,而是大于等于500
主要是由于定时器的时间不一定准,这个跟异步的机制有关
当定时器的时间到了之后,执行函数会进入栈中,会根据栈中的执行任务,
依次执行(不懂的可以学习一下异步机制)
(2)
console.log(new Date() -start)  // 大于等于1000
由于是单线程
答案3
log("123") // 正常
hint("123") // 正常
write("123") // 报错
这是由于write是相当于window.write;而document.write下面应该会用到this对象,
所以会报错
应当改成window.write(document, "123")
答案4
console.log(getName()) // "A"  this === window
console.log(a()) // "A" this === window
console.log(a === arguments[0]) // true
console.log(arguments[0]()) // undefined this 为argument对象
答案5
script start
async1 start
async2
promise1
async1 end
script end
promise2
setTimeout
这一块跟异步有关
先同步,后异步,在回调。还有promise机制

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107804.html

相关文章

  • 前端经典面试题 不经典不要star!

    摘要:前言上一期说好的的核心模块进阶以及基本应用的使用将在号或者号与大家见面在此之前我想跟大家分享几个前端经典的面试题为什么我突然想写这么一篇文章呢今天我应公司要求去面试了下几位招聘者然后又现场整不出几个难题就搜了一下前端变态面试题,前提我并不是 前言 上一期说好的node.js的核心模块进阶以及基本web应用的使用将在2号或者3号与大家见面,在此之前我想跟大家分享几个前端经典的面试题,为什...

    codergarden 评论0 收藏0
  • 前端经典面试题 不经典不要star!

    摘要:前言上一期说好的的核心模块进阶以及基本应用的使用将在号或者号与大家见面在此之前我想跟大家分享几个前端经典的面试题为什么我突然想写这么一篇文章呢今天我应公司要求去面试了下几位招聘者然后又现场整不出几个难题就搜了一下前端变态面试题,前提我并不是 前言 上一期说好的node.js的核心模块进阶以及基本web应用的使用将在2号或者3号与大家见面,在此之前我想跟大家分享几个前端经典的面试题,为什...

    archieyang 评论0 收藏0
  • 你不能错过的前端面试题合集

    摘要:收集的一些前端面试题从面试题发现不足,进而查漏补缺,比通过面试更难得及各大互联网公司前端笔试面试题篇及各大互联网公司前端笔试面试题篇面试题个和个经典面试题前端开发面试题如何面试前端工程师很重要个变态题解析如何通过饿了么面试轻 收集的一些前端面试题 从面试题发现不足,进而查漏补缺,比通过面试更难得 1 BAT及各大互联网公司2014前端笔试面试题--Html,Css篇 2 BAT...

    ninefive 评论0 收藏0
  • 你不能错过的前端面试题合集

    摘要:收集的一些前端面试题从面试题发现不足,进而查漏补缺,比通过面试更难得及各大互联网公司前端笔试面试题篇及各大互联网公司前端笔试面试题篇面试题个和个经典面试题前端开发面试题如何面试前端工程师很重要个变态题解析如何通过饿了么面试轻 收集的一些前端面试题 从面试题发现不足,进而查漏补缺,比通过面试更难得 1 BAT及各大互联网公司2014前端笔试面试题--Html,Css篇 2 BAT...

    darkbaby123 评论0 收藏0
  • 前端经典面试题总结

    摘要:接着我之前写的一篇有关前端面试题的总结,分享几道比较经典的题目第一题考点作用域,运算符栗子都会进行运算,但是最后之后输出最后一个也就是那么其实就是而且是个匿名函数,也就是属于,就输出第二和第三个都是类似的,而且作用域是都是输出最后一个其实就 接着我之前写的一篇有关前端面试题的总结,分享几道比较经典的题目: 第一题: showImg(https://segmentfault.com/im...

    BlackMass 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<