区块链 网站 怎么做,杨浦网站建设 网站外包,重庆sem优化,云搜索1. CSS 中两个 .class1 .class2 从哪个开始解析 
在 CSS 中#xff0c;选择器 .class1 .class2 表示所有 class 为 class1 的元素中的 class 为 class2 的子元素。浏览器解析这个选择器时#xff0c;从右向左解析。也就是说#xff0c;浏览器首先找到所有 class 为 class2 的…1. CSS 中两个 .class1 .class2 从哪个开始解析 
在 CSS 中选择器 .class1 .class2 表示所有 class 为 class1 的元素中的 class 为 class2 的子元素。浏览器解析这个选择器时从右向左解析。也就是说浏览器首先找到所有 class 为 class2 的元素然后检查这些元素的父级元素是否有 class1从而应用样式。 
.class1 .class2 {color: red;
}2. Flex 布局相关的问题 
Flexbox 是一种一维布局模型可以在一个方向上高效地分配空间并对齐内容。以下是一些常见的 Flex 布局属性 
display: flex: 将容器变为 flex 容器。flex-direction: 定义主轴方向。取值有 row默认、row-reverse、column、column-reverse。justify-content: 定义主轴上的对齐方式。取值有 flex-start、flex-end、center、space-between、space-around、space-evenly。align-items: 定义交叉轴上的对齐方式。取值有 stretch默认、flex-start、flex-end、center、baseline。flex-wrap: 定义是否换行。取值有 nowrap默认、wrap、wrap-reverse。 
3. JS 的事件循环 
JavaScript 是单线程的使用事件循环来处理异步操作。事件循环的基本步骤 
执行栈同步代码逐行执行函数调用形成执行栈。任务队列异步操作如 setTimeout、Promise完成后将回调函数放入任务队列。事件循环不断检查执行栈是否为空如果为空则从任务队列中取出第一个任务并执行。 
console.log(start);
setTimeout(()  {console.log(timeout);
}, 0);
console.log(end);// 输出顺序: start - end - timeout4. 写题解析 URLhistory 模式和 hash 模式的混在一起 
function parseURL(url) {const parser  document.createElement(a);parser.href  url;return {protocol: parser.protocol,hostname: parser.hostname,port: parser.port,pathname: parser.pathname,search: parser.search,hash: parser.hash,host: parser.host};
}const url  https://www.example.com:8080/pathname/?searchtest#hash;
console.log(parseURL(url));5. 写题解析时间 
function formatDate(date) {const yyyy  date.getFullYear();const mm  String(date.getMonth()  1).padStart(2, 0);const dd  String(date.getDate()).padStart(2, 0);const hh  String(date.getHours()).padStart(2, 0);const min  String(date.getMinutes()).padStart(2, 0);const ss  String(date.getSeconds()).padStart(2, 0);return ${yyyy}-${mm}-${dd} ${hh}:${min}:${ss};
}const date  new Date();
console.log(formatDate(date));6. 缓存相关问题 
强缓存和协商缓存是 HTTP 缓存机制中的两种缓存策略 
强缓存不会向服务器发送请求直接从缓存中读取资源。常见的头部字段有 Expires 和 Cache-Control。协商缓存会向服务器发送请求服务器根据资源的状态决定是否使用缓存。常见的头部字段有 Last-Modified 和 ETag。 
一般存储较静态且不频繁更新的数据如静态资源CSS、JS、图片等。 
7. async 和 defer 的区别 
async异步加载脚本脚本下载完成后立即执行不保证顺序。defer异步加载脚本脚本下载完成后按顺序执行保证在文档解析完成后执行。 
script srcscript1.js async/script
script srcscript2.js async/scriptscript srcscript1.js defer/script
script srcscript2.js defer/script8. Vue 的渲染机制 
Vue 的渲染机制分为以下几个步骤 
初始化解析模板生成渲染函数。响应式数据数据变更时触发视图更新。虚拟 DOM每次渲染都会生成虚拟 DOM。diff 算法比较新旧虚拟 DOM找出变化。更新 DOM应用 diff 结果更新真实 DOM。 
HTML 的 doctype 有什么用 
!DOCTYPE html 声明位于 HTML 文档的开头用于告诉浏览器当前文档使用的是 HTML5 标准。它的主要作用是让浏览器以标准模式standard mode来解析和渲染网页避免进入怪异模式quirks mode确保网页在不同浏览器中有一致的表现。 
script 和 link 标签的加载顺序 script 标签默认情况下脚本会按顺序同步加载和执行。如果在 head 中包含 script 标签页面会在脚本执行完成后才继续加载。可以通过 async 和 defer 属性来改变默认行为 async脚本异步加载加载完成后立即执行不保证顺序。defer脚本异步加载加载完成后按顺序执行保证在文档解析完成后执行。  link 标签用于加载外部资源如 CSS。默认情况下CSS 是同步加载和解析的会阻塞渲染。  
iframe 有了解过吗 
iframe 元素用于在当前网页中嵌入另一个 HTML 文档。常见用途包括嵌入第三方内容如广告、视频、隔离 CSS 和 JavaScript 的作用域。使用 iframe 时需要注意安全问题如跨站脚本XSS攻击可以通过设置 sandbox 属性来限制 iframe 的行为。 
行内元素水平垂直居中 
对于一个行内元素或行内块元素可以使用以下方法来实现水平和垂直居中 
水平居中使用 text-align: center垂直居中如果父元素是一个 flex 容器可以使用 align-items: center 和 justify-content: center。 
例如 
div styledisplay: flex; justify-content: center; align-items: center; height: 200px;spanCentered/span
/divinnerHTML 和 innerText 区别 
innerHTML返回或设置元素的 HTML 内容包括 HTML 标签。innerText返回或设置元素的文本内容不包含 HTML 标签受 CSS 样式影响如 display: none 的元素不会包含在内。 
修改 DOM 耗时为什么 
修改 DOM 可能是耗时的因为每次对 DOM 的修改都会触发浏览器的重绘repaint或回流reflow尤其是回流会涉及布局计算、重新渲染等一系列操作。频繁操作 DOM 会导致性能下降建议使用批量操作或虚拟 DOM 来优化性能。 
重绘Repaint和回流Reflow 
重绘元素的外观发生改变如颜色、背景但没有影响布局时浏览器会重新绘制元素。回流元素的布局或几何属性发生改变如大小、位置会触发浏览器重新计算布局和渲染树代价比重绘高。 
Promise 的意义回调地狱 
Promise 用于处理异步操作以更直观和可读的方式管理异步任务避免回调地狱。回调地狱是指回调函数嵌套过深代码难以维护和调试。Promise 通过链式调用 .then() 方法解决这一问题 
fetchData().then(response  process(response)).then(result  display(result)).catch(error  handleError(error));回调和闭包 
回调将一个函数作为参数传递给另一个函数并在特定事件发生时调用该函数。常用于处理异步操作。闭包函数和其外部环境的引用组合形成闭包。闭包允许函数访问外部函数作用域中的变量即使在外部函数执行完毕之后。闭包常用于创建私有变量和函数。 
function createCounter() {let count  0;return function() {return count;};
}const counter  createCounter();
console.log(counter()); // 1
console.log(counter()); // 2这个示例中返回的匿名函数形成闭包持有对 count 变量的引用因此可以在每次调用时增加 count 的值。 
6. Webpack为什么打包、进行压缩之后性能就会提高呢 
Webpack 打包和压缩提高性能的原因 文件合并 减少 HTTP 请求Webpack 将多个模块和依赖合并成一个或多个文件减少了浏览器发起的 HTTP 请求次数。现代浏览器对并行请求的数量有限制减少请求数可以降低延迟和开销。  代码压缩 文件大小减少Webpack 使用工具如 UglifyJS、Terser压缩代码去掉空格、注释和冗余代码极大地减少了文件大小。文件越小传输时间越短。  代码分割 按需加载Webpack 可以根据应用的需要进行代码分割Code Splitting只加载当前页面所需的代码。这样可以避免一次性加载所有代码提升页面初始加载性能。  树摇Tree Shaking 去除无用代码Webpack 通过静态分析模块的依赖关系去除没有实际使用的代码Dead Code从而减少打包后的文件体积。  模块热替换HMR 开发效率Webpack 提供模块热替换功能在开发过程中只更新变化的部分而不是整个页面提升开发效率和体验。  
示例配置 
const TerserPlugin  require(terser-webpack-plugin);module.exports  {mode: production,optimization: {minimize: true,minimizer: [new TerserPlugin()],splitChunks: {chunks: all,},},
};7. 为什么使用 Webpack 
使用 Webpack 的理由 模块化支持 多种模块格式支持 ES6 模块、CommonJS、AMD 等模块格式使开发者可以使用最新的 JavaScript 语法和标准。  强大的插件系统 功能扩展Webpack 提供丰富的插件Plugins如压缩、分包、代码分割等方便扩展打包功能。  代码分割和懒加载 优化性能通过代码分割Code Splitting和懒加载Lazy Loading提升应用性能减少初始加载时间。  开发工具集成 热模块替换HMR实时更新代码提高开发效率和体验。开发服务器内置开发服务器Webpack Dev Server支持快速开发和调试。  配置灵活 高可定制性可以根据项目需求灵活配置适应各种复杂场景。  生态系统 社区和插件强大的社区支持和丰富的插件库方便解决各种问题。  
8. 手写数组实现 reduce、map 
手写 reduce 实现 
reduce 方法接收一个回调函数和一个可选的初始值通过回调函数累计处理数组的每个元素最终返回累计结果。 
Array.prototype.myReduce  function(callback, initialValue) {let accumulator  initialValue  undefined ? this[0] : initialValue;let startIndex  initialValue  undefined ? 1 : 0;for (let i  startIndex; i  this.length; i) {accumulator  callback(accumulator, this[i], i, this);}return accumulator;
};// 使用示例
const arr  [1, 2, 3, 4];
const sum  arr.myReduce((acc, curr)  acc  curr, 0);
console.log(sum); // 10手写 map 实现 
map 方法接收一个回调函数返回一个新数组每个元素为回调函数处理后的结果。 
Array.prototype.myMap  function(callback) {const result  [];for (let i  0; i  this.length; i) {result.push(callback(this[i], i, this));}return result;
};// 使用示例
const arr  [1, 2, 3, 4];
const doubled  arr.myMap(num  num * 2);
console.log(doubled); // [2, 4, 6, 8]这些实现展示了如何用原生 JavaScript 来实现常用的数组方法了解其内部工作原理。 文章转载自: http://www.morning.kzqpn.cn.gov.cn.kzqpn.cn http://www.morning.blznh.cn.gov.cn.blznh.cn http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn http://www.morning.mdpcz.cn.gov.cn.mdpcz.cn http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn http://www.morning.ysnbq.cn.gov.cn.ysnbq.cn http://www.morning.sgbk.cn.gov.cn.sgbk.cn http://www.morning.qfdyt.cn.gov.cn.qfdyt.cn http://www.morning.wmhlz.cn.gov.cn.wmhlz.cn http://www.morning.qxnlc.cn.gov.cn.qxnlc.cn http://www.morning.srgwr.cn.gov.cn.srgwr.cn http://www.morning.pzcqz.cn.gov.cn.pzcqz.cn http://www.morning.mzwfw.cn.gov.cn.mzwfw.cn http://www.morning.ymyhg.cn.gov.cn.ymyhg.cn http://www.morning.yydeq.cn.gov.cn.yydeq.cn http://www.morning.jwncx.cn.gov.cn.jwncx.cn http://www.morning.wjplr.cn.gov.cn.wjplr.cn http://www.morning.rczrq.cn.gov.cn.rczrq.cn http://www.morning.yjmns.cn.gov.cn.yjmns.cn http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn http://www.morning.gfprf.cn.gov.cn.gfprf.cn http://www.morning.lsxabc.com.gov.cn.lsxabc.com http://www.morning.cwqln.cn.gov.cn.cwqln.cn http://www.morning.ptmch.com.gov.cn.ptmch.com http://www.morning.chgmm.cn.gov.cn.chgmm.cn http://www.morning.ygmw.cn.gov.cn.ygmw.cn http://www.morning.gxtfk.cn.gov.cn.gxtfk.cn http://www.morning.pghfy.cn.gov.cn.pghfy.cn http://www.morning.mmtjk.cn.gov.cn.mmtjk.cn http://www.morning.hclqy.cn.gov.cn.hclqy.cn http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn http://www.morning.nypgb.cn.gov.cn.nypgb.cn http://www.morning.jgnjl.cn.gov.cn.jgnjl.cn http://www.morning.rxfjg.cn.gov.cn.rxfjg.cn http://www.morning.dswtz.cn.gov.cn.dswtz.cn http://www.morning.rdmn.cn.gov.cn.rdmn.cn http://www.morning.kqzxk.cn.gov.cn.kqzxk.cn http://www.morning.dzgmj.cn.gov.cn.dzgmj.cn http://www.morning.mftdq.cn.gov.cn.mftdq.cn http://www.morning.kynf.cn.gov.cn.kynf.cn http://www.morning.gcdzp.cn.gov.cn.gcdzp.cn http://www.morning.lthtp.cn.gov.cn.lthtp.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.rkck.cn.gov.cn.rkck.cn http://www.morning.hxljc.cn.gov.cn.hxljc.cn http://www.morning.snccl.cn.gov.cn.snccl.cn http://www.morning.poapal.com.gov.cn.poapal.com http://www.morning.qxrct.cn.gov.cn.qxrct.cn http://www.morning.ckhyj.cn.gov.cn.ckhyj.cn http://www.morning.kzbpx.cn.gov.cn.kzbpx.cn http://www.morning.bqqzg.cn.gov.cn.bqqzg.cn http://www.morning.gmjkn.cn.gov.cn.gmjkn.cn http://www.morning.hqykb.cn.gov.cn.hqykb.cn http://www.morning.ssglh.cn.gov.cn.ssglh.cn http://www.morning.hcxhz.cn.gov.cn.hcxhz.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.fxxmj.cn.gov.cn.fxxmj.cn http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn http://www.morning.xclgf.cn.gov.cn.xclgf.cn http://www.morning.nlffl.cn.gov.cn.nlffl.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn http://www.morning.bxhch.cn.gov.cn.bxhch.cn http://www.morning.rzcfg.cn.gov.cn.rzcfg.cn http://www.morning.wfzdh.cn.gov.cn.wfzdh.cn http://www.morning.mxmdd.cn.gov.cn.mxmdd.cn http://www.morning.bswnf.cn.gov.cn.bswnf.cn http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn http://www.morning.rjfr.cn.gov.cn.rjfr.cn http://www.morning.mhsmj.cn.gov.cn.mhsmj.cn http://www.morning.nhzxd.cn.gov.cn.nhzxd.cn http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn http://www.morning.ywndg.cn.gov.cn.ywndg.cn http://www.morning.kpgbz.cn.gov.cn.kpgbz.cn http://www.morning.bmpjp.cn.gov.cn.bmpjp.cn http://www.morning.lprfk.cn.gov.cn.lprfk.cn http://www.morning.kszkm.cn.gov.cn.kszkm.cn http://www.morning.gllhx.cn.gov.cn.gllhx.cn http://www.morning.egmux.cn.gov.cn.egmux.cn http://www.morning.rlqml.cn.gov.cn.rlqml.cn