缓存,有哪些使用场景"/>
105. 面试官:js如何实现函数缓存,有哪些使用场景
105期
1. js如何实现函数缓存,有哪些使用场景
2. Node中process对象是干嘛的?
3. 如何用JWT实现鉴权?说说你的思路是具体实现
上面问题的答案会在第二天的公众号(程序员每日三问)推文中公布
也可以小程序刷题
104期问题及答案
1. 什么是前后端分离?优势是什么
前后端分离(Frontend-Backend Separation)是一种软件架构模式,其中前端(通常是用户界面和用户体验部分)和后端(通常是服务器端逻辑和数据处理部分)是相对独立的,彼此通过API(应用程序接口)进行通信。这种模式的优势包括:
1. 技术栈独立: 前端和后端可以使用不同的技术栈。前端可以选择最适合用户界面和用户体验的技术,而后端可以选择最适合数据处理和业务逻辑的技术。这使得团队可以更灵活地选择和更新技术。
2. 并行开发: 前后端团队可以并行开发,不需要等待对方完成工作。这加快了项目的开发速度。
3. 提高可维护性: 前后端分离使得代码分离更容易,这有助于提高代码的可维护性。前端和后端的代码各自独立,不容易相互干扰。
4. 良好的可扩展性: 由于前后端是相对独立的,可以更容易地扩展和部署新功能。如果需要增加新的前端客户端或更换后端服务,可以做到无缝过渡。
5. 改善性能: 使用前后端分离可以在前端和后端分别优化性能。前端可以使用CDN、缓存等技术来提高用户界面加载速度,而后端可以优化数据处理和响应时间。
6. 更好的用户体验: 前后端分离允许前端团队专注于用户界面和用户体验的细节,从而提供更好的用户体验。
7. 支持多平台: 前后端分离使得前端可以轻松支持多个平台,如Web、移动应用和桌面应用,通过相同的API与后端通信。
尽管前后端分离有很多优势,但也需要注意一些挑战,例如跨域问题、数据传输成本、安全性等。此外,前后端分离需要建立和维护清晰的API,以确保前后端之间的通信有效和一致。然而,在现代应用程序开发中,前后端分离已经成为一种广泛采用的架构模式,因为它允许团队更好地分工协作,提供更好的灵活性和可维护性。
2. style标签写在body与body后又什么区别
在HTML文档中,style
标签通常用于定义文档的内部样式表(Internal Style Sheet)。style
标签可以放置在<head>
元素内,也可以放置在<body>
元素内,但它们的位置会对样式应用的范围和行为产生影响。
1. 放在<head>
元素内:
如果你将
style
标签放在<head>
元素内,通常是在<head>
的<style>
标签内定义样式,这些样式会应用到整个文档,包括<body>
内的所有元素。这种方式通常用于定义全局样式,以确保整个文档的一致性。
<!DOCTYPE html>
<html>
<head><style>/* 这里定义的样式将应用到整个文档 */body {background-color: lightgray;}</style>
</head>
<body><p>This paragraph has the background color defined in the head.</p>
</body>
</html>
2. 放在<body>
元素内:
如果你将
style
标签放在<body>
元素内,样式仅应用于该标签后的内容。这种方式可以用于在特定部分定义特定样式,通常是在文档中的某个特定部分使用的样式。
<!DOCTYPE html>
<html>
<head>
</head>
<body><style>/* 这里定义的样式仅应用于body标签后的内容 */p {color: blue;}</style><p>This paragraph has the defined style.</p><p>So does this one.</p>
</body>
</html>
总之,style
标签的位置决定了样式的范围和应用对象。将style
标签放在<head>
中通常用于定义全局样式,而将其放在<body>
中则用于定义局部样式,只在特定部分生效。
3. webpack的Loader和Plugin有什么不同
Webpack中的Loader和Plugin是两种不同的概念,它们分别用于不同的任务,并在Webpack的构建过程中发挥不同的作用。
Loader(加载器):
用途: Loader用于在Webpack构建过程中对模块的源代码进行转换。它们主要用于处理各种类型的文件(如JavaScript、CSS、图片等),将其转换为Webpack可以处理的模块。例如,Babel Loader用于将ES6代码转换为ES5,CSS Loader用于处理CSS文件。
配置: Loader通常通过Webpack配置文件中的
module.rules
配置进行定义。每个Loader都有一组规则,定义了要匹配的文件类型和如何转换它们。
module: {rules: [{test: /\.js$/, // 匹配.js文件use: 'babel-loader', // 使用Babel Loader进行转换},{test: /\.css$/, // 匹配.css文件use: ['style-loader', 'css-loader'], // 使用CSS Loader进行转换},],
}
Plugin(插件):
用途: Plugin用于在Webpack构建过程的各个阶段执行特定任务。它们用于执行各种自定义操作,如代码压缩、文件拷贝、生成HTML文件等。插件可以执行比Loader更广泛的任务。
配置: 插件通过Webpack配置文件中的
plugins
配置进行定义。通常,你需要在Webpack配置文件中实例化并配置插件。
const HtmlWebpackPlugin = require('html-webpack-plugin');plugins: [new HtmlWebpackPlugin({template: './src/index.html',}),
]
总结:
Loader主要用于转换模块的源代码,通常用于处理特定类型的文件。
Plugin主要用于执行自定义任务,如优化、资源管理、代码分割等。插件的功能更广泛,可以在构建流程的不同阶段执行操作。
在实际项目中,通常需要使用Loader和Plugin来一起工作,以满足不同的构建需求。Loader用于处理模块的源代码,Plugin用于执行额外的构建任务,使Webpack成为一个功能强大的构建工具。
学习不打烊,充电加油只为遇到更好的自己,每天早上9点纯手工发布面试题,每天坚持花20分钟来学习与思考,在千变万化,类库层出不穷的今天,不要等到找工作时才狂刷题,提倡每日学习。
更多推荐
105. 面试官:js如何实现函数缓存,有哪些使用场景
发布评论