摄影网站开题报告,成都发布最新消息,广东省建设工程网站,seo怎么判断网站的好坏1、作用域
w3scholl中定义#xff1a;作用域指的是您有权访问的变量集合。
作用域是指在程序中定义变量的区域#xff0c;该位置决定了变量的生命周期。通俗理解#xff0c;作用域就是变量与函数的可访问范围#xff0c;即作用域控制着变量和函数的可见性和生命周期。
在…1、作用域
w3scholl中定义作用域指的是您有权访问的变量集合。
作用域是指在程序中定义变量的区域该位置决定了变量的生命周期。通俗理解作用域就是变量与函数的可访问范围即作用域控制着变量和函数的可见性和生命周期。
在 JavaScript 中有两种作用域类型
局部作用域在 JavaScript 函数中声明的变量会成为函数的局部变量。局部变量的作用域是局部的只能在函数内部访问它们。全局作用域函数之外声明的变量会成为全局变量。 JavaScript 拥有函数作用域每个函数创建一个新的作用域。全局变量的作用域是全局的网页的所有脚本和函数都能够访问它。
2、变量提升
https://juejin.cn/post/7007224479218663455
JavaScript 引擎把变量的声明部分和函数的声明部分提升到代码开头的行为变量被提升后会给变量设置默认值为 undefinedES6的let和const不存在变量提升
3、事件循环机制EventLoop
宏任务setTimeout、setInterval、setImmediate、UI Rending微任务Promise、async\await
微任务是由ES6语法规定的 宏任务是由浏览器规定的 视频讲解 事件循环-EventLoop 事件循环-宏任务、微任务 练习事件循环的网站
练习 上图依次打印2 3 6 p2 p1 1 4 5 上图依次打印script start - async1 start - async2 - async1 end - setTimeout 注await 关键字会等右边的方法执行完以后再向下继续执行。
4、promise
特点 ①三种状态pending进行中、resolved已完成、rejected已失败。只有异步操作的结果可以决定当前是哪一种状态任何其他操作都不能改变这个状态。 ②两种状态的转化其一从pending进行中到resolved已完成。其二从pending进行中到rejected已失败。只有这两种形式的转变。 ③Promise构造函数的原型对象上有then()和catch()等方法then()第一个参数接收resolved()传来的数据catch()第一个参数接收rejected()传来的数据
作用 ①通常用来解决异步调用问题 ②解决多层回调嵌套的方案 ③提高代码可读性、更便于维护
Promise.all([]).then(() {})等待数组里所有的方法执行完以后再执行then里的回调只要有一个失败就不会继续执行后续代码
const promise1 Promise.resolve(3);
const promise2 42;
const promise3 new Promise((resolve, reject) {setTimeout(resolve, 100, foo);
});Promise.all([promise1, promise2, promise3]).then((values) {console.log(values);
});
// Expected output: Array [3, 42, foo]
Promise.race([]).then(() {})以最先执行好的结果为准
const promise1 new Promise((resolve, reject) {setTimeout(resolve, 500, one);
});const promise2 new Promise((resolve, reject) {setTimeout(resolve, 100, two);
});Promise.race([promise1, promise2]).then((value) {console.log(value);// Both resolve, but promise2 is faster
});
// Expected output: two5、async、await
①async/await是ES8新特性 ②async/await是写异步代码的新方式以前的方法有回调函数和Promise ③async/await是基于Promise实现的它不能用于普通的回调函数 ④async/await与Promise一样是非阻塞的 ⑤async/await使得异步代码看起来像同步代码
6、promis和async、await的区别
promise的出现解决了传统callback函数导致的地狱回调问题但是他的语法导致它纵向发展形成了一个回调链遇到复杂的业务场景显然是不美观的 async、await看起来更加简洁使得异步代码看起来像同步代码只有await的代码执行完毕后才会执行下面的代码与promise一样也是非阻塞的 async/await基于Promise实现相当于Promise的升级版不能用于普通的回调函数
7、浏览器拿到html到现实在页面上都做了什么 8、如何异步读取script标签async、defer
在浏览器加载html过程中html解析器运行在主线程并且在遇到script 标签后会被阻塞知道脚本从网络中被获取和执行呃呃就是说script标签中的脚本会阻塞浏览器的渲染这样也被称为“渲染人阻塞”。 async 异步 该属性值为布尔值指示浏览器是否允许异步执行该脚本该属性仅对外链脚本有效。为 true 时是告诉浏览器先把文件下载下来在时机成熟的时候再执行。异步及哦啊笨一定会在页面的load事件前执行但可能会在DOMContentLoaded事件触发前或后执行。另外标记为async的脚本并不保证按照指定他们的先后顺序执行所以确保各个异步脚本互不依赖非常重要 defer延迟 该属性值为布尔值指示浏览器该脚本将在文档完成解析后触发DOMContentLoaded事件前执行该属性仅对外链脚本生效。
总结 script 标签有2个属性 async异步 和 defer推迟他们的功能是 async他是异步加载不确定何时会加载好页面加载时带有 async 的脚本也同时加载加载后会立即执行如果有一些需要操作 DOM 的脚本加载比较慢时这样会造成 DOM 还没有加载好脚本就进行操作会造成错误。 defer页面加载时带有 defer 的脚本也同时加载加载后会等待 页面加载好后才执行。
9、vue底层数据修改如何更新显示
10、vue3的双向数据绑定
11、插槽的作用
扩展组件能力提高组件的复用性; 使用插槽可以将一些比较复杂的父传子的通信去掉直接在父组件中完成后利用插槽显示到子组件中这是由于父组件模板的内容在父组件作用域内编译子组件模板的内容在子组件作用域内编译。
12、浏览器的缓存机制 1、Cache-Control不需要前端做额外处理 取值为
public所有内容都被缓存private只有客户端可以缓存no-cache客户端缓存内容但是是否使用缓存需要经过协商来验证决定no-store所有内容都不会被缓存即不使用强制缓存也不使用协商缓存max-age10:缓存内通将在10秒后失效不需要前端做额外处理
2、Expires不需要前端做额外处理 缓存过期时间用来制定资源到期的时间是服务器的具体的时间点 3、Last-Modified和If-Modified-Since
浏览器首先发送一个请求服务端在这个请求中返回资源上一次的更新时间last-modifired浏览器通过webstorage缓存下这个时间和资源浏览器在下次请求中带上if-modified-since[保存的last-modified的值]服务端根据浏览器发生的修改时间和服务端的修改时间进行对比。一致的话代表资源没有变服务端返回403让浏览器从缓存中读取资源否则重新更新时间处理数据一并返回给浏览器
由于last-modified依赖的是保存的绝对时间会出现误差的情况 - 保存的时间是以秒为单位的1秒内多次修改无法捕捉到 - 各机器读取到的时间不一致会有误差的可能性为了改善这个问题提出了使用etag
4、ETag和if-None-Match
与 3 类似不同的是浏览器第一次请求时服务端将更新时间last-modifired改成ETag由数据内容生成的一个md5值或者其他字符串浏览器保缓存这个值和数据与 3 类似浏览器下次请求时请求头带上if-none-match:保存的etag值服务端通过得到的请求头中的值和服务端重新生成的etag值做比较如果一致代表资源没有改变返回403高度浏览器从缓存中读数据
13、打包构建流程
生成options (将webpack.config.js和shell中的参数合并中options对象)实例化complier对象 webpack全局的配置对象包含entryoutputloaderplugins等所有配置信息实例化Compilation对象 (compiler.run方法执行开始编译过程生成Compilation对象)分析入口js文件调用AST引擎(acorn)处理入口文件生成抽象语法树AST根据AST构建模块的所有依赖通过loader处理入口文件的所有依赖转换为js模块生成AST继续遍历构建依赖的依赖递归直至所有依赖分析完毕对生成的所有module进行处理调用plugins合并拆分生成chunk将chunk生成为对应bundle文件输出到目录
参考文档
14、loader和plaugin的区别
一、从功能作用的角度区分
loader从字面的意思理解是 加载 的意思。只专注于转化文件transform这一个领域完成压缩打包语言翻译,仅仅只是为了打包。
plugin不仅只局限在打包资源的加载上它的功能要更加丰富。从打包优化和压缩到重新定义环境变量功能强大到可以用来处理各种各样的任务。
二、从运行时机的角度区分
1 . loader运行在打包文件之前loader为在模块加载时的预处理文件 2. plugins在整个编译周期都起作用。
15、响应式布局 文章转载自: http://www.morning.phnbd.cn.gov.cn.phnbd.cn http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn http://www.morning.skdhm.cn.gov.cn.skdhm.cn http://www.morning.rtsx.cn.gov.cn.rtsx.cn http://www.morning.zcfmb.cn.gov.cn.zcfmb.cn http://www.morning.yqkmd.cn.gov.cn.yqkmd.cn http://www.morning.mfcbk.cn.gov.cn.mfcbk.cn http://www.morning.bfmq.cn.gov.cn.bfmq.cn http://www.morning.cspwj.cn.gov.cn.cspwj.cn http://www.morning.gjzwj.cn.gov.cn.gjzwj.cn http://www.morning.nwljj.cn.gov.cn.nwljj.cn http://www.morning.mhlkc.cn.gov.cn.mhlkc.cn http://www.morning.zffn.cn.gov.cn.zffn.cn http://www.morning.qxxj.cn.gov.cn.qxxj.cn http://www.morning.wsjnr.cn.gov.cn.wsjnr.cn http://www.morning.wfttq.cn.gov.cn.wfttq.cn http://www.morning.bpxmw.cn.gov.cn.bpxmw.cn http://www.morning.jljwk.cn.gov.cn.jljwk.cn http://www.morning.sdecsd.cn.gov.cn.sdecsd.cn http://www.morning.qgfhr.cn.gov.cn.qgfhr.cn http://www.morning.mgnrc.cn.gov.cn.mgnrc.cn http://www.morning.znknj.cn.gov.cn.znknj.cn http://www.morning.lwnb.cn.gov.cn.lwnb.cn http://www.morning.kwpnx.cn.gov.cn.kwpnx.cn http://www.morning.dmldp.cn.gov.cn.dmldp.cn http://www.morning.mhcft.cn.gov.cn.mhcft.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.qfdmh.cn.gov.cn.qfdmh.cn http://www.morning.lhygbh.com.gov.cn.lhygbh.com http://www.morning.playmi.cn.gov.cn.playmi.cn http://www.morning.zmwzg.cn.gov.cn.zmwzg.cn http://www.morning.rxsgk.cn.gov.cn.rxsgk.cn http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn http://www.morning.mxnrl.cn.gov.cn.mxnrl.cn http://www.morning.wwjft.cn.gov.cn.wwjft.cn http://www.morning.blzrj.cn.gov.cn.blzrj.cn http://www.morning.dzpnl.cn.gov.cn.dzpnl.cn http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn http://www.morning.plchy.cn.gov.cn.plchy.cn http://www.morning.yznsx.cn.gov.cn.yznsx.cn http://www.morning.slysg.cn.gov.cn.slysg.cn http://www.morning.bypfj.cn.gov.cn.bypfj.cn http://www.morning.mwmtk.cn.gov.cn.mwmtk.cn http://www.morning.hmdyl.cn.gov.cn.hmdyl.cn http://www.morning.wgrm.cn.gov.cn.wgrm.cn http://www.morning.wjlkz.cn.gov.cn.wjlkz.cn http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn http://www.morning.c7501.cn.gov.cn.c7501.cn http://www.morning.khxwp.cn.gov.cn.khxwp.cn http://www.morning.xrmwc.cn.gov.cn.xrmwc.cn http://www.morning.lmxrt.cn.gov.cn.lmxrt.cn http://www.morning.nkqnn.cn.gov.cn.nkqnn.cn http://www.morning.woyoua.com.gov.cn.woyoua.com http://www.morning.pznnt.cn.gov.cn.pznnt.cn http://www.morning.fhyhr.cn.gov.cn.fhyhr.cn http://www.morning.xbtlt.cn.gov.cn.xbtlt.cn http://www.morning.mlwhd.cn.gov.cn.mlwhd.cn http://www.morning.qrlsy.cn.gov.cn.qrlsy.cn http://www.morning.wfqcs.cn.gov.cn.wfqcs.cn http://www.morning.qglqb.cn.gov.cn.qglqb.cn http://www.morning.lbfgq.cn.gov.cn.lbfgq.cn http://www.morning.tnnfy.cn.gov.cn.tnnfy.cn http://www.morning.pfggj.cn.gov.cn.pfggj.cn http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn http://www.morning.rczrq.cn.gov.cn.rczrq.cn http://www.morning.pwghp.cn.gov.cn.pwghp.cn http://www.morning.errnull.com.gov.cn.errnull.com http://www.morning.kwxr.cn.gov.cn.kwxr.cn http://www.morning.dzgmj.cn.gov.cn.dzgmj.cn http://www.morning.nfbkp.cn.gov.cn.nfbkp.cn http://www.morning.qfcnp.cn.gov.cn.qfcnp.cn http://www.morning.fmznd.cn.gov.cn.fmznd.cn http://www.morning.jpdbj.cn.gov.cn.jpdbj.cn http://www.morning.gmgnp.cn.gov.cn.gmgnp.cn http://www.morning.xgbq.cn.gov.cn.xgbq.cn http://www.morning.zxfr.cn.gov.cn.zxfr.cn http://www.morning.hmbxd.cn.gov.cn.hmbxd.cn http://www.morning.yqmmh.cn.gov.cn.yqmmh.cn http://www.morning.kfyjh.cn.gov.cn.kfyjh.cn http://www.morning.mxhys.cn.gov.cn.mxhys.cn