当前位置: 首页 > news >正文

前端面试笔试

前端面试笔试

1 相对路径和绝对路径的区别

区别:他们描述文件或目录位置的方式不同

‌绝对路径‌:绝对路径是指从系统的根目录开始的完整路径,无论当前工作目录在哪个位置,绝对路径始终指向文件或目录的确切位置。绝对路径适用于网站的外部链接。网页编程中,绝对路径很少使用,上传到服务器后,文件的绝对路径可能会变化,导致编程中的路径链接失效。

‌相对路径‌:相对路径是指相对于当前工作目录的路径,相对路径依赖于当前所在的位置,适用于网站的内部链接。

2 ES5和ES6区别

ES5和ES6是javascript的语言的不同版本。
区别:

变量声明:

ES5:使用var声明变量,没有块级作用域。
ES6:引入了let和const,提供了块级作用域和不可变性。
模板字符串:

ES5:字符串拼接通常使用+操作符。
ES6:引入了模板字符串(使用反引号``),支持多行字符串和表达式插值。
箭头函数:

ES5:函数通常使用function关键字或函数表达式声明。
ES6:引入了箭头函数(=>),提供了更简洁的函数写法,并且自动绑定this上下文。

3 ajaxHttp基础知识

AJAX是一种在浏览器中实现异步请求的技术,通过AJAX可以在不刷新页面的情况下与服务器进行数据交换,从而更新网页的局部内容。
ajax的核心对象是‌XMLHttpRequest
‌创建对象‌:var xhr = new XMLHttpRequest();
‌配置请求‌:xhr.open(‘GET’, ‘http://example.com’, true);
‌发送请求‌:xhr.send();
‌接收响应‌:xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { // 处理响应数据 } };

4 跨域请求

处理跨域请求(CORS, Cross-Origin Resource Sharing)是一项常见的需求,尤其是在构建RESTful API时。跨域问题通常发生在一个域的网页尝试获取另一个域的资源时。
例如,一个运行在http://example.com的网页尝试获取http://api.example.com上的数据。

(1)在Controller的方法上使用@CrossOrigin注解来允许跨域请求
(2)通过配置类全局配置CORS策略:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
@Configuration
public class WebConfig implements WebMvcConfigurer {
 
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://example.com")   // 允许这个地址
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                .allowedHeaders("*")
                .allowCredentials(true);
    }
}

5 css和js的性能优化

CSS优化:
(1)压缩CSS文件:使用工具CSSNano压缩CSS代码,去除注释、不必要的空格、和换行,缩短变量名,以减少文件大小,加快传输速度。
(2)避免使用@import‌:使用@import会导致CSS文件下载和解析被阻塞,影响页面渲染速度。建议使用link标签并行加载多个CSS文件
(3)减少HTTP请求‌:合并CSS文件,减少HTTP请求次数,提高加载速度‌

JAVASCRIPT优化:
(1)使用现代JavaScript框架‌:如React、Vue等,这些框架提供了高效的DOM更新机制,减少不必要的DOM操作‌。
(2)减少DOM操作‌:尽量减少DOM操作次数,使用DocumentFragment进行批量DOM操作,避免频繁的重排和重绘‌
(3)‌压缩JavaScript文件‌:使用Terser等工具压缩JS代码,去除注释和不必要的空格、换行符,缩短变量名等,以减小文件大小‌

浏览器优化:
关键渲染路径优化‌:将关键CSS内联到HTML中,确保页面快速渲染‌

6 vue工程中的Jenkinsfile文件(自动化部署工具)

Jenkinsfile在前端Vue项目中主要用于定义和执行自动化构建、测试和部署流程。
它使用Jenkins Pipeline DSL(领域特定语言)编写,允许开发团队以声明式或脚本化的方式描述整个构建流程。通过Jenkinsfile,可以将流水线的定义和配置存储在代码库中,实现流水线的可重复性、版本控制和自动化‌。
一旦代码提交到仓库,Jenkins将自动解析并执行Jenkinsfile中的指令,完成构建、测试和部署工作‌。

相关文章:

  • 使用 Nginx 进行前端灰度发布的策略与实践
  • Day16:数组中出现次数超过一半的数字
  • harmonyOS NEXT开发与前端开发深度对比分析
  • C语言数据类型取值范围及格式化符号
  • NVMe集群:加速数据处理
  • 【C语言】自定义类型:结构体,联合,枚举(下)
  • python函数式编程
  • 【教程】继承中的访问控制 C++
  • C 语 言 --- 三 子 棋
  • 汽车保养记录用什么软件记录,汽车维修记录查询系统,佳易王汽车保养维护服务记录查询管理系统操作教程
  • 【免费】1949-2020年各省人均GDP数据
  • 2019年12月全国POI数据分享(同源历史POI分享系列)
  • Linux 蓝牙音频软件栈实现分析
  • 单引号与双引号在不同编程语言中的使用与支持
  • 【菜鸟飞】在vsCode中安装python的ollama包出错的问题
  • 高频面试题(含笔试高频算法整理)基本总结回顾21
  • C语言【内存函数】详解
  • 对比学习(Contrastive Learning)
  • 浏览器指纹——跨境业务
  • 机器人ROS学习:Ubuntu22.04安装ROS2和Moveit2实现运动规划
  • 向左繁华都市,向右和美乡村,嘉兴如何打造城乡融合发展样本
  • 中国证券监督管理委员会党委委员、副主席王建军接受审查调查
  • 湖北鄂城:相继4所小学有学生腹泻呕吐,供餐企业负责人已被采取强制措施
  • 强制性国家标准《危险化学品企业安全生产标准化通用规范》发布
  • 亚马逊拟为商品标注“关税成本”,特朗普致电贝索斯讨说法
  • 迎接八方来客:全国多地“五一”假期党政机关大院停车场免费开放