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,浏览器,性能优化等等



相关文章
|
17天前
|
前端开发 JavaScript Java
2024高频前端面试题合集(一)
JavaScript Bridge 是一种在 JavaScript 和其他语言(如 Java、Objective-C 等)间建立通信的技术,常用于混合应用开发,允许调用原生功能、获取数据、事件通知及优化性能。SSR(服务器端渲染)的单机 QPS 取决于服务器性能、应用复杂度、网络条件等因素。Egg.js 是基于 Node.js 的企业级框架,通过目录结构约定、启动流程、插件机制和核心组件来初始化应用。前端错误捕获可通过 try-catch、window.onerror、Promise.catch 和 unhandledrejection 事件等方式实现。
|
2天前
|
存储 前端开发 JavaScript
前端面试题23-34
通过对 Promise 和 ECMAScript6 的深入理解,可以更好地应对现代 JavaScript 开发中的复杂异步操作和新特性,提升代码质量和开发效率。
9 2
|
2天前
|
前端开发 JavaScript 虚拟化
前端面试题12-22
ES6(ECMAScript 2015)是 JavaScript 的重要版本,引入了许多新特性和语法,提升了语言的功能和可用性。ES6 的主要特性包括箭头函数、类、模板字符串、解构赋值、默认参数、Promise、模块化、Generator 函数、async 函数、Proxy 和 Reflect 等。这些特性不仅简化了代码的编写和维护,还为开发者提供了更多的编程范式和工具。了解和掌握 ES6 的特性是现代 JavaScript 开发的必备技能。
6 1
|
2天前
|
JSON 前端开发 JavaScript
前端面试题01-11
Map是ES6引入的一种新的键值对集合数据结构,类似于对象,但键的范围不限于字符串,还可以是任何类型的值。Map保持键值对的插入顺序,提供更灵活的键值对操作方法,如`set()`、`get()`、`delete()`、`has()`等。
5 1
|
20天前
|
JavaScript 前端开发
前端面试02(JS)
本文是前端面试系列的第二篇,主要涵盖了JavaScript的基础知识,包括JS的组成(ECMAScript、DOM、BOM)、内置对象(如String、Array、Math、Date等)、数组操作方法、数据类型检测方法(typeof、instanceof、constructor、Object.prototype.toString.call)、闭包的概念及其特点、前端内存泄漏的原因和类型、事件委托的优势、基本数据类型与引用数据类型的差异、原型链的工作原理以及JS实现继承的多种方式(原型链、构造函数、组合继承等)。文章结尾鼓励读者点赞和支持作者。
12 1
|
20天前
|
前端开发 Java
前端面试题01(css)
前端面试题01聚焦CSS,涵盖选择器优先级、隐藏元素方法、px与rem差异、重绘与重排解释、元素居中技巧及可继承属性。还探讨了CSS预处理器SASS和LESS的特性。文章提供实例代码展示居中布局的多种实现方式。鼓励读者点赞和支持。
14 0
|
9天前
|
存储 算法 Java
JAVA后端开发面试题库
JAVA后端开发面试题库
17 1
|
13天前
|
缓存 安全 Java
【Java面试——并发基础、并发关键字】
随着硬件指令集的发展,我们可以使用基于冲突检测的乐观并发策略: 先进行操作,如果没有其它线程争用共享数据,那操作就成功了,否则采取补偿措施(不断地重试,直到成功为止)。这种乐观的并发策略的许多实现都不需要将线程阻塞,因此这种同步操作称为非阻塞同步。 乐观锁需要操作和冲突检测这两个步骤具备原子性,这里就不能再使用互斥同步来保证了,只能靠硬件来完成。硬件支持的原子性操作最典型的是: 比较并交换(Compare-and-Swap,CAS)。CAS 指令需要有 3 个操作数,分别是内存地址 V、旧的预期值 A 和新值 B。当执行操作时,只有当 V 的值等于 A,才将 V 的值更新为 B。
|
21天前
|
SQL 存储 Java
致远互联java实习生面试
致远互联java实习生面试
33 0
|
21天前
|
Java
java面试基础 -- 普通类 & 抽象类 & 接口
java面试基础 -- 普通类 & 抽象类 & 接口
25 0