网站首页 > 技术文章 正文
本期问题:
-
document.write和innerHTML、innerText有什么区别?
-
jQuery中如何中断each遍历?
-
如何查找数组中的最小值和最大值?
-
如何做到优雅降级,渐进增强?
-
$.fn.extend和$.extend区别是什么?
-
如何收集页面中多个ajax的执行结果?
-
js创建对象有哪几种方式?
-
在地址栏输入url中间会经历什么?
-
你所了解的前端技术栈有哪些?
-
ajax在jquery底层是如何实现的?
上期答案:
1.实例化一个函数的时候,new关键字的过程是怎样的?
答:
1.创建一个新对象;
2.将构造函数的作用域赋给新对象(因此this指向了这个新对象);
3.执行构造函数中的代码(为这个新对象添加属性);
4.返回新对象
2.什么是js阻塞?
答:
Js具有阻塞特性,当浏览器在执行js代码时,不能同时做其他事情,即<script>标签每次出现都会让页面等待脚本的解析和执行,Js执行完成后,才能继续渲染页面。
再深入一点去了解浏览器构造页面的原理:当浏览器从服务器接收到了HTML文档,并把HTML在内存中转换成DOM树,在转换的过程中如果发现某个节点(node)上引用了CSS或者IMAGE,就会再发1个request去请求CSS或image,然后继续执行下面的转换,而不需要等待request的返回,当request返回后,只需要把返回的内容放入到DOM树中对应的位置就OK。
但当引用了JS的时候,浏览器发送1个js request就会一直等待该request的返回。因为浏览器需要1个稳定的DOM树结构,而JS中很有可能有代码直接改变了DOM树结构,比如使用document.write 或 appendChild,甚至是直接使用的location.href进行跳转,浏览器为了防止出现JS修改DOM树,需要重新构建DOM树的情况,所以就会阻塞其他的下载和呈现。
for(var i = 0 ; i < 10; i++){
setTimeout(function{
console.log(i);
}, 0);
}
答:
都是10
因为setTimeout是异步的,在执行setTimeout时for循环已结束。
- 上一篇: HTML实体编码及解码
- 下一篇: 告别油猴,用Proxyman自动注入JSRPC脚本的黑科技
猜你喜欢
- 2025-07-23 跨域问题解决方案:JSONP(跨域怎么解决,jsonp原理叙述)
- 2025-07-23 技术总监说:“每一个v-html,都是一个敞开的XSS后门”
- 2025-07-23 浏览器的同源策略与跨域问题(浏览器同源政策)
- 2025-07-23 资源提示关键词:提升页面加载速度的利器
- 2025-07-23 JavaScript DOM 内容操作常用方法和 XSS 注入攻击
- 2025-07-23 小红书笔记拉取AI改写的抛砖引玉(小红书笔记替换后新的能收录吗)
- 2025-04-27 JavaScript注释:单行注释和多行注释详解
- 2025-04-27 贼好用的 Java 工具类库
- 2025-04-27 一文搞懂,WAF阻止恶意攻击的8种方法
- 2025-04-27 详细教你微信公众号正文页SVG交互开发
- 11-13电脑键盘快捷键使用大全表(电脑键盘快捷键一览表)
- 11-13移动硬盘怎么设置密码(u盘怎么设置密码加密)
- 11-13怎样制作系统安装u盘的详细步骤
- 11-13金山毒霸杀毒软件(如何卸载金山毒霸杀毒软件)
- 11-13使用u盘重装win10(通过u盘重装win10系统)
- 11-13默认网关怎么算(默认网关怎么填多少)
- 11-13苹果笔记本官网报价(苹果笔记本官网报价表)
- 11-13windows破解版(windows破解版与正版的区别)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
