No55.精选前端面试题,享受每天的挑战和学习

简介: No55.精选前端面试题,享受每天的挑战和学习

Chrome浏览器都有哪些进程?

Chrome 浏览器在运行时会创建多个进程来处理不同的任务和功能。

以下是 Chrome 浏览器常见的进程类型:

1. 浏览器进程(Browser Process)

也称为主进程,它负责管理整个浏览器的运行,并协调其他进程的工作。在启动 Chrome 浏览器时首先被创建。

2. 渲染进程(Renderer Process)

每个打开的标签页或扩展页面都会有一个独立的渲染进程。它负责将 HTML、CSS 和 JavaScript 转换成用户可以与之交互的页面。

3. GPU 进程(GPU Process)

负责处理图形操作和加速,例如绘制网页中的 3D 内容或执行 CSS 动画。该进程独立于浏览器进程和渲染进程。

4. 网络进程(Network Process)

负责处理网络请求和响应,包括加载网页、下载文件等。通常每个渲染进程会有一个对应的网络进程。

5. 插件进程(Plugin Process)

如果网页使用了插件(如 Flash Player)来播放多媒体内容,则会创建插件进程来处理相关的任务。

6. GPU 解码进程(GPU Decoding Process)

用于硬件加速媒体解码,以提供更流畅的音视频播放体验。

除了上述主要的进程类型外,Chrome 还会创建其他辅助进程和服务进程,例如:

  • Utility 进程:执行一些辅助功能,如处理文件上传、浏览器更新、管理书签等。
  • Task Scheduler 进程:用于计划任务和定时器。
  • Chrome Extension 进程:当使用某些扩展或应用程序时,可能会创建对应的独立进程。
  • Service Worker 进程:负责运行 Service Worker 脚本,用于缓存网页、实现离线访问等。

需要注意的是,具体的进程数量和类型可能会根据 Chrome 版本、扩展和配置的不同而有所变化。

在linux系统中,修改文件夹的权限使用的命令是

在 Linux 系统中,修改文件夹的权限使用的命令是 chmod

chmod 命令用于修改文件或目录的访问权限。它可以设置三种不同类型的权限:所有者(Owner)、所属组(Group)和其他用户(Others)。每种权限可以是读取(Read)、写入(Write)和执行(Execute)的组合。

要修改文件夹的权限,可以使用以下命令格式:

chmod <权限模式> <文件夹路径>

其中,<权限模式> 是一个三位数的权限表示形式,分别表示所有者、所属组和其他用户的权限。每位权限由一个数字表示,具体如下所示:

  • 读取权限:4
  • 写入权限:2
  • 执行权限:1

通过将这些数字相加,可以组合出所需的不同权限。例如,如果要将文件夹的权限设置为所有者可读写,所属组和其他用户只读的权限,可以使用以下命令:

chmod 644 /path/to/folder

其中,/path/to/folder 是要修改权限的文件夹的路径。

需要注意的是,修改一个文件夹的权限通常需要使用管理员权限(例如 root 用户或使用 sudo 命令)。否则,只能修改自己拥有的文件夹权限。

引用类型复制指针

对于引用类型,在进行复制操作时,默认情况下,确实只会复制指针,即复制后的变量和复制前的变量都指向同一个对象

这是因为引用类型在赋值操作时,只是将内存地址(指针)进行了拷贝,而不是实际复制整个对象的内容。

例子:

let obj1 = { name: 'Alice' };
let obj2 = obj1; // 复制了 obj1 的指针给 obj2
obj2.name = 'Bob';
console.log(obj1.name); // 输出 "Bob"

在上述示例中,obj1 是一个对象,然后将 obj1 的指针复制给了 obj2,结果它们都指向同一个对象。当修改 obj2 的属性时,obj1 也会受到影响,因为它们引用同一个对象。

如果希望实现真正的对象复制,可以使用一些其他方法,例如使用 ES6 中的扩展运算符(…)或者深拷贝函数,来创建一个新的对象,将原对象的属性值复制到新对象中。

例子:

let obj1 = { name: 'Alice' };
let obj2 = { ...obj1 }; // 使用扩展运算符 {...} 进行复制
obj2.name = 'Bob';
console.log(obj1.name); // 输出 "Alice"

在这种情况下,obj1obj2 是两个独立的对象,修改其中一个对象的属性不会影响另一个对象。

需要根据具体的编程语言和环境来确定对象复制的方法和机制。

CSS权重顺序

下面是 CSS 权重顺序的总结和归纳,使用表格形式进行展示:

选择器类型 权重值
!important 最高
内联样式(inline) 1000
ID 选择器(#id) 100
类选择器(.class) 10
属性选择器([attr]) 10
伪类选择器(:pseudo) 10
元素选择器(element) 1
通配选择器(*) 0
继承的样式 0

CSS 权重是用来确定当多个规则都适用于同一个元素时,哪个规则的样式将被应用的机制。权重值越高的规则,其样式会更具优先级,并覆盖权重值较低的规则。

在表格中,权重值从高到低排列,最高的是 !important,表示具有最高优先级,将覆盖其他所有样式规则。接下来是内联样式,然后依次是 ID 选择器、类选择器、属性选择器和伪类选择器,它们的权重值相同。元素选择器和通配选择器的权重值较低,继承的样式权重最低,也就是没有特定的权重值。

需要注意的是,权重值是相对的,具体规则的权重值都是累加的。例如,如果一个规则同时使用了类选择器和元素选择器,其权重值就是 11(类选择器权重值为 10,元素选择器权重值为 1)。另外,权重值越高并不意味着一定会生效,还需要考虑样式表的顺序和选择器的具体性。

权重顺序的理解对于正确应用 CSS 样式非常重要,确保样式按照预期生效,并避免出现样式冲突的情况。

附录:「简历必备」前后端实战项目(推荐:⭐️⭐️⭐️⭐️⭐️)

Vue.js 和 Egg.js 开发企业级健康管理项目

带你从入门到实战全面掌握 uni-app

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
22天前
|
存储 XML 移动开发
前端大厂面试真题
前端大厂面试真题
|
5天前
|
网络协议 算法 数据库
|
23天前
|
前端开发 Java 编译器
【前端学java】如何从前端视角快速学习Maven
【8月更文挑战第12天】如何从前端视角快速学习Maven
36 2
【前端学java】如何从前端视角快速学习Maven
|
24天前
|
前端开发 JavaScript API
前端框架Vue------>第二天学习(1)插槽
这篇文章介绍了Vue框架中插槽(slot)的概念和用法,以及如何在组件中使用自定义事件进行父子组件间的通信。
前端框架Vue------>第二天学习(1)插槽
|
10天前
|
前端开发 算法 网络协议
如何学习计算机基础知识,打好前端和网络安全的基础
如何学习计算机基础知识,打好前端和网络安全的基础
23 4
|
18天前
|
存储 前端开发 JavaScript
44 个 React 前端面试问题
【8月更文挑战第18天】
20 2
|
18天前
|
存储 JavaScript 前端开发
2022年前端js面试题
2022年前端js面试题
16 0
|
20天前
|
存储 前端开发 JavaScript
44 个 React 前端面试问题
44 个 React 前端面试问题
|
23天前
|
前端开发 JavaScript
前端网站学习大全
这篇文章提供了前端网站开发学习的资源大全,涵盖了HTML常用标签和CSS常用样式,以及如何使用`<meta>`标签提供页面元信息和`lang`属性定义内容语言等基础知识。
前端网站学习大全
|
24天前
|
前端开发 JavaScript
前端框架Vue------>第三天学习(1)
这篇文章介绍了Vue框架的组件基础和计算属性的概念,通过示例代码展示了如何定义可复用的Vue组件和使用计算属性来声明性地描述依赖其他值的数据。
下一篇
DDNS