web前端 第一阶段面试题,2024年最新Web前端面试项目经验

简介: web前端 第一阶段面试题,2024年最新Web前端面试项目经验

正文

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 
for(var j = 0; 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解释器”,用于方便高效地搭建一些响应速度快、易于扩展的网络应用。它采用事件驱动、异步编程,为网络服务而设计

6. nodejs适用于哪些地方?

高并发、聊天、实时消息推送

7. npm是什么?

npm是nodejs包管理和分发的工具,用于管理node包。如安装、卸载、发布、查看等.

8. npm的好处是什么

通过npm,可以安装和管理项目的依赖,且可以指明依赖项的具体版本号。

9. Node.js中导入模块和导入js文件写法上有什么区别?

nodejs引入模块,直接使用名字导入即可
const express = require(“express”);
导入js文件,需要使用文件的路径,如:
const student = require(“./pool.js”);

10. console有哪些常用方法?

console.log/info/error/warn/time/timeEnd

11. express response有哪些常用方法?

  • res.download() 弹出文件下载
  • res.end() 结束response
  • res.json() 返回json
  • res.jsonp() 返回jsonp
  • res.redirect() 重定向请求
  • res.render() 渲染模板
  • res.send() 返回多种形式数据

基础面试题

主要内容包括:HTML,CSS,JavaScript,浏览器,性能优化等等



相关文章
|
1月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
56 3
|
1月前
|
前端开发 JavaScript
探索现代Web应用的微前端架构
【10月更文挑战第40天】在数字时代的浪潮中,Web应用的发展日益复杂多变。微前端架构作为一种新兴的设计理念,正逐步改变着传统的单一前端开发模式。本文将深入探讨微前端的核心概念、实现原理及其在实际项目中的应用,同时通过一个简单的代码示例,揭示如何将一个庞大的前端工程拆分成小而美的模块,进而提升项目的可维护性、可扩展性和开发效率。
|
24天前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
93 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
21天前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
31 8
|
21天前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
27 7
|
22天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
31 6
|
27天前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
28 4
|
27天前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
69 1
|
2月前
|
JavaScript 前端开发 Docker
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
在使用 Deno 构建项目时,生成的可执行文件体积较大,通常接近 100 MB,而 Node.js 构建的项目体积则要小得多。这是由于 Deno 包含了完整的 V8 引擎和运行时,使其能够在目标设备上独立运行,无需额外安装依赖。尽管体积较大,但 Deno 提供了更好的安全性和部署便利性。通过裁剪功能、使用压缩工具等方法,可以优化可执行文件的体积。
141 3
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
|
28天前
|
前端开发 测试技术
前端工程化的分支策略要如何与项目的具体情况相结合?
前端工程化的分支策略要紧密结合项目的实际情况,以实现高效的开发、稳定的版本控制和顺利的发布流程。
27 1