整理几个被遗忘的js基础代码题,还都能答对吗?
前端技术江湖
共 2133字,需浏览 5分钟
· 2021-01-23
我们每个人面试的时候,面试官都会问一些js基础的概念。比如说说你对闭包的理解,说说你对原型和原型链的理解,作用域和作用域链的理解,var、let、const的区别、promise的理解等等,相信这些概念性的东西,我们都能回答个八九不离十。
但如果面试官把这些概念性的问答,换成代码题让你来分析呢?是否还都能给出正确答案,并且说出为什么得出这个结果呢?
其实看代码,分析执行结果才是最考验人,是真是假一试便知啊。
作用域考察
下面代码输出什么?为什么?
如果这个题回答不准确,估计会被直接挂掉,毕竟太基础了。
第1题
var a=100
function f1(){ console.log(a) }
function f2(){ var a=200 f1() }
f2()
var a=100
function f1(){ console.log(a) }
function f2(fn){ var a=200 fn() }
f2(f1)
var a=100
function f2(){
var a=200
function f1(){ console.log(a) }
retunr f1
}
var f = f2()
f()
闭包考察
第2题
let x = 1;
function A(y){
let x = 2;
function B(z){
console.log(x+y+z); //会输出什么? 为什么?
}
return B;
}
let C = A(2);
C(3);
原型考察
第3题
var F = function () {}
Object.prototype.a = function () {}
Function.prototype.b = function () {}
var f = new F()
请问f有方法a 方法b吗 为什么?
值传递问题
第4题
var a=100
var b={a:200}
function f1(a1){
a1= -100
}
function f2(b1){
b1.a= -200
}
f1(a)
//a
f2(b)
// b
请分析 f1 和 f2 函数执行后, a 和 b的值?为什么?
如果f2 改成下面的呢?f2 执行后 b 的值是什么? 为什么?
function f2(b1){
b1 = {
a:-200
}
}
promise 考察
第5题
const promise = new Promise((resolve, reject) => {
console.log(1);
resolve();
console.log(2);
reject('error');
})
promise.then(() => {
console.log(3);
}).catch(e => console.log(e))
console.log(4);
第6题
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
console.log('once')
resolve('success')
}, 1000)
})
promise.then((res) => {
console.log(res)
})
promise.then((res) => {
console.log(res)
})
第7题
Promise.resolve(1)
.then(2)
.then(Promise.resolve(3))
.then(console.log)
第8题
Promise.resolve(1).then((res)=>{
throw new Error('dd')
},(error)=>{
console.log('error1',error)
}).catch(e=>{
console.log('error2',e)
})
Promise.resolve(1)
.then((res)=>{
throw new Error('dd')
},(error)=>{
console.log('error1',error)
})
.then((res)=>{conso.log('ok')},
(error)=>{console.log('error2',error)
}
彩蛋 -邀你作答
以上题目没有写答案,还是想邀请小伙伴们来一起回答下。
可以选择一个题目,把答案写在留言区,我会找出5个精选评论送出【5个8.8元】红包。(什么是精选评论,首先结果正确,而且还能够说清楚为什么得出这个结果?也就是你的理解是什么?)
小伙伴们回答的时候,记得带上题号哈。
被选中的,我会直接给你回复,通知加我领奖哦。
点个『在看』支持下
评论
了解加密货币到加密货币的互换
1、什么是加密货币互换?加密货币到加密货币的互换是指以现行市场汇率将一种加密货币直接兑换为另一种加密货币。与需要法定货币存款和较长流程的传统交易所不同,加密货币到加密货币的互换可以无缝地促进交换。掉期在提高加密货币的流动性和效率方面发挥着重要作用。该功能使用户能够将他们的加密货币与钱包中的其他代币进
区块链头条
0
李彦宏:开源大模型不如闭源,后者会持续领先;周鸿祎:“开源不如闭源” 的言论是胡说八道
架构师大咖
架构师大咖,打造有价值的架构师交流平台。分享架构师干货、教程、课程、资讯。架构师大咖,每日推送。
公众号该公众号已被封禁0、李彦宏:开源大模型不如闭源,后者会持续领先当今
源码共读
0
【第129期】程序员的新宠:三款终端工具,让你告别Xshell!
概述 WindTerm:跨平台的SSH利器 首先介绍的是WindTerm,这是一款使用C语言开发的跨平台SSH客户端。它不仅完全免费,而且没有商业使用的限制。WindTerm支持SSH v2、Telnet、Raw Tcp等协议,而且性能出色,甚至超过了FinalShell和Electerm。功能
前端微服务
0
字节员工:35岁以后被裁员的,后来都走了哪条路?现在2-2,要不要利用最后一年拼命上个岸。
架构师大咖
架构师大咖,打造有价值的架构师交流平台。分享架构师干货、教程、课程、资讯。架构师大咖,每日推送。
公众号该公众号已被封禁在当今竞争激烈的职场环境中,年龄并不总是一个决定性
源码共读
0
上班的时候,有一群摸鱼搭子非常重要...
上班的时候,有一群摸鱼搭子非常重要!一到上班时间,他们就从四面八方涌进群里冒泡...从八卦聊到股市、从职场聊到乌X兰局势,偶尔还会复读、相亲、battle...然后,下午6点钟准时消失不见...所以你要不要加入我们一起摸鱼?我们有北京、上海、深圳、广州、杭州、武汉、成都、南京等8个城市的摸鱼群,还有
产品经理日记
0
周四002 瑞超:同样落寞的境遇——北雪平vs埃尔夫斯堡
上赛季最终排名联赛第9的北雪平本赛季伊始表现不佳,4轮战罢他们仅以1胜1平2负的战绩排在倒数第三,这支历史上曾夺得13次联赛冠军、6次杯赛冠军老牌劲旅,正如英格兰赛场上的一众百年俱乐部,在低谷中不断探索着出路。球队主教练安德烈亚斯·阿尔姆曾是AIK索尔纳及赫根队的主教练,他于今年年初刚刚拿起球队教鞭
产品与体验
0
你只是卡住了,你并没有被击垮
一旦思维僵化了,那就很难跟上这个真实世界的快节奏,更不可能自发地去发现自身问题,进而打破自己。思维僵化,会导致我们无法“活在当下,开放和接纳,并去做自己觉得重要的事情”。觉察自己思维僵化的特征,是改变的第一步。思维僵化导致了你的选择都是错误的。思维方式的不同,才是人跟人之间的不同。有的人遇到挫折了,
小Q聊产品
1
雷军辟谣了!不是高考状元,卡里也没有冰冷的 40 亿
架构师大咖
架构师大咖,打造有价值的架构师交流平台。分享架构师干货、教程、课程、资讯。架构师大咖,每日推送。
公众号该公众号已被封禁最近很火的雷军简历,听说落魄时卡里只有冰冷的 40
源码共读
0