这些前端基础题你能答对几道?(附答案解析)

本文提供了一系列JavaScript基础题目,包括变量作用域、对象引用、闭包等概念,帮助开发者检测自己的基础知识掌握程度。每道题目后面都有详细的解析,强调了变量提升、块级作用域、this指向、原型链等关键知识点。通过练习和解析,有助于巩固前端开发者的基础技能。
摘要由CSDN通过智能技术生成

在三大框架盛行的时代, 基本上会个 Vue 就能在小公司浑水摸鱼。但是当想突破的时候就会意识到基础的重要性。

JavaScript 中有很多重要特性及概念。比如原型,原型链,this,闭包,作用域,隐式转换等等。如果不能熟练掌握,在进阶中级前端开发工程师的道路上必定是困难重重。

用一个小时把这些题做完。检测一下你的基础掌握程度。正题
1.
if(false){
var a = 1;
let b = 2;
}
console.log(a);
console.log(b);
2.
var a = 1;
if(true){
console.log(a);
let a = 2;
}
3.
var a = {n: 1}
var b = a
a.x = a = {n: 2}

console.log(a.n, b.n);
console.log(a.x, b.x);
4.
console.log©;
var c;
function c(a) {
console.log(a);
var a = 3;
function a(){
}
}
c(2);
5.
var c = 1
function c© {
console.log©;
var c = 3;
}
console.log©;
c(2);
6.
var name = ‘erdong’;
(function () {
if (typeof name === ‘undefined’) {
var name = ‘chen’
console.log(name)
} else {
console.log(name)
}
})();
7.
var a = 10;
function test() {
a = 100;
console.log(a);
console.log(this.a);
var a;
console.log(a);
}
test();
8.
if (!(a in window)) {
var a = 1;
}
console.log(a)
9.
var a = 1

function c(a, b) {
console.log(a)
a = 2
console.log(a)
}
c()
10
var val=1;
var obj={
val:2,
del:function(){
console.log(this);
this.val*=2
console.log(val)
}
}

obj.del();
11
var name = “erdong”
var object = {
name: “chen”,
getNameFunc: function () {
return function () {
return this.name;
}
}
}
console.log(object.getNameFunc()());
12
var name = “erdong”
var object = {
name: “chen”,
getNameFunc: function () {
var that = this;
return function () {
return that.name;
}
}
}
console.log(object.getNameFunc()());
13
(function() {
var a = b = 3;
})();
console.log(typeof a === ‘undefined’);
console.log(typeof b === ‘undefined’);
14
var a = 6;
setTimeout(function () {
a = 666;
}, 0)
console.log(a);
15
function fn1() {
var a = 2
function fn2 () {
a++
console.log(a)
}
return fn2
}
var f = fn1()
f()
f()
16
var a = (function(foo){
return typeof foo.bar;
})({foo:{bar:1}});

console.log(a);
17
function f(){
return f;
}
console.log(new f() instanceof f);
18
function A () {
}
A.prototype.n = 1

var b = new A();

A.prototype = {
n: 2,
m: 3
}
var c = new A()

console.log(b.n, b.m);
console.log(c.n, c.m);
19
var F = function(){}
var O = {};
Object.prototype.a = function(){
console.log(‘a’)
}
Function.prototype.b = function(){
console.log(‘b’)
}
var f = new F()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值