web前端 第一阶段面试题(1),2024年最新初面蚂蚁金服

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

myFunc(function(){

return function(){};

} );

12. 请指出JavaScript宿主对象和原生对象的区别?

答案:

宿主对象:指JavaScript解释器提供的对象,由解释器厂家自定义并提供实现,不同的解释器提供的扩展对象存在较大的差异(DOM和BOM对象)。

原生对象:JavaScript语言本身预定义的对象,在ECMAScript标准中定义,由所有的解释器厂家来提供具体实现(Array,Date,Math,Number,String,Boolean等)。

13. js中有哪些内置函数?

**答案:**Object,Array, Boolean, Number, String, Function, Date, Math, RegExp, Error, Global

14.列举出获取日期相关函数

答案:

console.log(Date.now());  // 返回当前日期和时间’1970/01/01 00:00:00’之间的毫秒值

var dt = newDate();  // 获取当前时间—年 月 日 时 分 秒

console.log(dt.getTime());  //返回当前日期和时间’1970/01/01 00:00:00’之间的毫秒值

console.log(dt.getFullYear()); // 年份

console.log(dt.getMonth()+1); // 月份(0-11)

console.log(dt.getDate()); // 日期(0/1-31)

console.log(dt.getDay()); //星期(0-6)

console.log(dt.getHours()); // 小时(0-23)

console.log(dt.getMinutes()); // 分钟(0-59)

console.log(dt.getMilliseconds); // 返回毫秒(0-999)

console.log(dt.getSeconds()); // 秒(0-59)

15.Math相关函数

**答案:**

Math.random()- 返回 0 ~ 1 之间的随机数

Math.abs(x) -``返回数的绝对值

Math.ceil(x)- 向上取整

Math.floor(x)- 向下取整

Math.round() 四舍五入

Math.max() 和 Max.min() 获取一组数据中的最大值和最小值

Math.PI  获取圆周率π 的值Math.pow() 获取一个值的多少次幂

Math.sqrt() 对数值开方

Math.pow(10,2) = 100;

Math.sqrt(100) = 10;

16.null和undefined的区别?

答案:

undefined是访问一个未初始化的变量时返回的值,

null是访问一个尚不存在的对象时所返回的值。因此,可以把undefined看作是空的变量,而null看作是空的对象。

17.=有什么不同?

答案:

== 抽象相等,比较时,会先进行类型转换,然后再比较值;

===严格相等,判断两个值相等同时数据类型也得相同。

18.setTimeout和setInterval的区别是什么?

答案:

二者都是用来设置定时操作的。

setTimeout: 设置一个定时器,在定时器到期后执行一次函数或代码段

setInterval: 设置一个定时器,以固定的时间间隔重复调用一个函数或者代码段

19. 请说出以下代码执行结果

for (var i = 0; i < 3; i++) {

setTimeout(function() {

console.log(i);

}, 0);

console.log(i);

}

**答案:**0 1 23 3 3,执行过程如下

var i = 0;

console.log(i); i++;

console.log(i); i++;

console.log(i);i++;

setTimeout(function() {

console.log(i);

}, 0);

setTimeout(function() {

console.log(i);

}, 0);

setTimeout(function() {

console.log(i);

}, 0); //输出 0 1 2 3 3 3

20. 请说出(true+flase)>2+true的执行结果

答案:false

21. 当前代码块输出结果是什么?

var z=10;

function foo(){console.log(z);}

(function(funArg){var z=20;funArg();})(foo);

答案:10,自调用函数。

22. setTimeout(function(){},10)表示什么意思?

答案:每隔10毫秒调用一次函数。

23. 程序中捕获异常的方法?

答案

try{

}catch(e){

}finally{

}

24. 以下代码执行结果?

var uname = ‘jack’

function change() {

alert(uname) // ?

var uname = ‘lily’

alert(uname) //?

}

change()

答案:undefined lily

25. 如何使用npm下载express模块?

答案:npm install express

26. split和join的区别?

答案:split()将字符串按照指定的字符分割成一个数组,并返回

join()将数组用指定的字符连接成一个字符串,并返回

27. 看下列代码会有什么样的输出?

var foo =“11”+2-“1”;

console.log(foo);

console.log(typeof foo);

答案:111  number

**28. foo = foo||bar ,这行代码是什么意思?**为什么要这样写?

答案:这种写法称之为短路表达式

相当于:

var foo;

if(foo){

foo=foo;

}else{

foo=bar;

}

常用于函数参数的空判断

29. 用js实现随机选取10–100之间的10个数字,存入一个数组,并排序

答案

function getRandom(istart, iend){

var iChoice = iend -istart +1;

returnMath.floor(Math.random() * iChoice+ istart);

}

var iArray = [];

for(var i=0; i<10; i++){

var result= getRandom(10,100);

iArray.push(result);

}

iArray.sort();

30. 如何获取javascript三个数中的最大值和最小值?

答案:Math.max(a,b,c);//最大值

Math.min(a,b,c)//最小值

31. 实现冒泡排序?

vararray = [5, 4, 3, 2, 1];

vartemp = 0;

for(var i = 0; i <array.length; i++){

for(var j = 0; j <array.length - i; j++){

if(array[j] > array[j + 1]){

temp= array[j + 1];

array[j+ 1] = array[j];

array[j]= temp;

}

}

三、NODEJS


1. 同步和异步有何区别?

答案:

同步:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有等待过程(在一个任务进行中时不能开启其他的任务)。

异步:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待(在一个任务进行中时可以开启其他的任务)。

2. NodeJS中有哪些类型模块,文件操作用哪一个模块?

答案:

模块类型:核心模块、自定义模块、第三方模块。

文件操作:fs模块

3. 对NodeJS的优点和缺点提出自己的看法?

**答案:**CPU密集型任务的特点是进行大量的计算,消耗CPU资源,比如计算圆周率(上千位)、对视频进行编码等, 全靠CPU的运算能力 (一般用C语言,java)

IO(Input / Output)密集型任务,这类任务的特点是CPU消耗很少,大部分时间都在等待IO操作。常见的大部分任务都是IO密集型任务,比如Web应用(一般用脚本语言:python/Nodejs)。

Nodejs设计思想中以事件驱动、异步、非堵塞I/O密集型为核心,他提供的大多数api都是基于事件的、异步的风格。所以非常适合处理高并发请求。此外,与Node服务器交互的客户端代码是由js语言编写的,因此客户端和服务器端都用同一种语言编写,减少了成本。

4. 使用NodeJS完成登录功能(编写HTML页面和路由接口中的代码)?

答案:

HTML页面:

用户:

密码:

user.js路由

const express=require(‘express’);

const pool=require(‘…/pool.js’);

var router=express.Router();

router.post(‘/login’,(req,res)=>{

var obj=req.body;

var $uname=obj.uname;

if(!$uname){

res.send({code:401,msg:‘uname required’});

return;

}

var $upwd=obj.upwd;

if(!$upwd){

res.send({code:402,msg:‘upwd required’});

return;

}

var sql=‘SELECT * FROM xz_user WHERE uname=?AND upwd=?’;

pool.query(sql,[ u n a m e , uname, uname,upwd],(err,result)=>{

if(err) throw err;

if(result.length>0){

res.send({code:200,msg:‘login success’});

}else{

res.send({code:301,msg:‘login error’}); }

});

});

//路由器导出

module.exports=router;

5. 什么是Nodejs?

Nodejs是一个JavaScript的运行环境,是一个服务器端的“JavaScript解释器”,用于方便高效地搭建一些响应速度快、易于扩展的网络应用。它采用事件驱动、异步编程,为网络服务而设计

文末

技术是没有终点的,也是学不完的,最重要的是活着、不秃。

零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。

最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

自学最怕的就是缺乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。

高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足,不容易犯困。

技术学到手后,找工作的时候一定要好好准备一份简历,不要无头苍蝇一样去海投简历,容易“竹篮打水一场空”。好好的准备一下简历,毕竟是找工作的敲门砖。

拿到面试邀请后,在面试的过程中一定要大大方方,尽力把自己学到的知识舒适地表达出来,不要因为是自学就不够自信,给面试官一个好的印象,面试成功的几率就会大很多,加油吧,骚年!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
。它采用事件驱动、异步编程,为网络服务而设计

文末

技术是没有终点的,也是学不完的,最重要的是活着、不秃。

零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。

最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

自学最怕的就是缺乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。

高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足,不容易犯困。

技术学到手后,找工作的时候一定要好好准备一份简历,不要无头苍蝇一样去海投简历,容易“竹篮打水一场空”。好好的准备一下简历,毕竟是找工作的敲门砖。

拿到面试邀请后,在面试的过程中一定要大大方方,尽力把自己学到的知识舒适地表达出来,不要因为是自学就不够自信,给面试官一个好的印象,面试成功的几率就会大很多,加油吧,骚年!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-hBmNW8ig-1713410906750)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值