最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》
console.log(‘辛苦了:’ + name);
} else {
console.log(‘吃饭没:’ + name);
}
}
fn();
等同于
var name = ‘张三’;
function fn() {
var name ;// var name = ‘李四’; 中的声明被提前到函数作用域里面
if (typeof name === ‘undefined’) {//此时成立
name = ‘李四’;
console.log(‘辛苦了:’ + name);
} else {
console.log(‘吃饭没:’ + name);
}
}
fn();
Q3:
var a=10,b=20,c=30;
function fn(a){
a=1;
var b=2;
c=3
}
fn(100)
console.log(a,b,c);
等同于
var a=10,b=20,c=30;
function fn(a){
//函数调用,形成局部作用域,形参a在内部局部作用域 a=100
var b;//b在内部变量提升
a=1;//内部局部作用域 a设置为1
b=2;//内部局部作用域 b设置为2
c=3;//全局作用与c被设置值3
}
fn(100)
//可以看到只有c被局部作用域修改了
console.log(a,b,c);//10 20 3
Q4:
if(!(“a” in window)){
var a = 10
}
console.log(a);
等同于
var a;//变量提升了
if(!(“a” in window)){//“a” in window 成立了,所以这个条件不执行
a = 10
}
console.log(a);//'undefined
Q5:
var fn = ‘hello’;
(function(fn){
console.log(fn);
var fn=fn||‘world’;
console.log(fn)
})(fn)
console.log(fn);
等同于
var fn = ‘hello’;
(function(fn){
//内部作用域
//形参先被定义 所以fn=hello
//var fn;//var fn=fn||‘world’;变量提升到这里,但是会被忽略,因为形参的fn先被定义
console.log(fn);//打印hello
fn=fn||‘world’;//这句fn还是等于hello
console.log(fn)//打印hello
})(fn)//hello作为实参传入
console.log(fn);//打印hello
//最终结果是:hello hello hello
Q6:
var n=10;
function fn(n){
console.log(n);
var n= 20;
console.log(n);
function n(){
}
console.log(n);
}
fn(n);
console.log(n);
等同于
var n=10;
function fn(n){
//局部作用域
//n根据形参首先定义 n=10
//函数会提升,覆盖了n,此时n为函数
最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》
心中有数,也可以用来自查及完善知识体系。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》
[外链图片转存中…(img-fU2mXgz4-1715192068045)]
[外链图片转存中…(img-gQir2Ve3-1715192068046)]
[外链图片转存中…(img-QKKRjJ4s-1715192068046)]