Javascript
Mister.L
最痛苦的事,不是失败,是我本可以。
展开
-
浏览器的严格模式与怪异模式的设置与区分方法
1.浏览器的严格模式和怪异模式产生的原因由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至在同一浏览器的不同版本中,对页面的渲染也不相同。在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异,这个时候页面的渲染规范就称为怪异模式(Quirks mode或者Compatibility Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准,这个页面的渲染规范就被...原创 2019-08-14 15:27:57 · 1845 阅读 · 1 评论 -
JS中的this指向
例子:var obj = { foo: function () {}};var foo = obj.foo;// 写法一obj.foo()// 写法二foo()在上面的例子中,虽然obj.foo与foo指向同一个函数,但是执行结果可能不同,比如我们进行如下实验var obj = { foo: function () { console.log(this.bar)...转载 2019-08-26 22:12:56 · 199 阅读 · 0 评论 -
什么是DTD?
DTD为英文Document Type Definition,中文意思为“文档类定义”。DTD肩负着两重任务: 一方面它帮助你编写合法的代码 ,另一方面它让浏览器正确地显示器代码。也许你会问它们居然有这样的能力?如是你是一个个网页制作者,你会很清楚地知道一个HTML文档的基本结构可分为两个主要部分;<html> <head> 头部信息 <...转载 2019-08-15 09:27:44 · 2850 阅读 · 0 评论 -
js中的原型对象
一、JavaScript为什么要设计原型对象构造函数其实就是普通函数,但是其内部使用了this变量。对构造函数使用new运算符,就能生成实例对象。但是使用构造函数生成实例对象有一个缺点,就是无法共享属性和方法。每一个实例对象都是构造函数的副本,虽然内容相同但是没有任何关联。进一步说,对一个实例进行更改,其他实例不会发生变化。function Foo () { this.nam...原创 2019-08-10 11:35:06 · 273 阅读 · 0 评论 -
深刻理解前端缓存
想看原文戳这里。前端缓存与后端缓存的区别基本的网络请求就是三个步骤:请求、处理、响应。后端缓存的作用主要是进行“处理”步骤,通过保留数据库连接,存储处理结果等方式缩短处理时间,尽快进入“响应”步骤。这当然不在本文的讨论范围之内。那么前端缓存的任务就是处理剩下的两步:“请求”和“响应”。在“请求”步骤中,浏览器也可以通过存储结果的方式直接使用资源,省去了发送请求的步骤;而“响应”...原创 2019-07-28 08:20:30 · 417 阅读 · 0 评论 -
从输入url到页面显示都经历了什么
一般会经历一下几个过程:1.首先在浏览器地址栏中输入url。2.浏览器先查看浏览器缓存——系统缓存——路由器缓存,如果缓存中有,就直接在浏览器中显示内容。若没有则跳到第三步操作。3.在发送http请求前需要先进性域名解析(DNS解析)(DNS:域名系统(Domain Name System)是互联网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访...原创 2019-07-26 16:43:14 · 1194 阅读 · 0 评论 -
说一下JavaScript的执行机制
一、为什么JavaScript采用单线程JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScri...原创 2019-07-26 10:33:23 · 227 阅读 · 0 评论 -
addEventListener()
本文参考了《JavaScript权威指南》在除IE8及之前版本之外的所有浏览器都支持的标准事件模型中,任何能称为时间目标的对象——这些对象包括Window对象、Document对象和所有文档元素都定义了一个叫addEventListener()的方法。使用这个方法可以为事件目标注册事件处理程序。addEventListener()接受三个参数:第一个是要注册处理程序的事件类型,这个事件类型...原创 2019-07-25 18:44:54 · 184 阅读 · 0 评论 -
延迟脚本(defer)和异步脚本(async)的区别和联系
延迟脚本和异步脚本都是都是JavaScript中<script>标签的属性。由于JavaScript是单线程的,解析器在解析程序时,遇到<script>标签就会暂停解析文档,将控制权交给js引擎来下载(如果需要的话)或执行js文件。如果js文件过大或所用的时间过长就会导致浏览器的渲染时间过长,会严重影响用户体验,这当然是我们不想看到的,谁会喜欢一个反应特别慢的网站呢。因...原创 2019-07-25 12:04:35 · 534 阅读 · 0 评论 -
客户端js时间线
由于JavaScript是单线程的,了解客户端js时间线对我们来说很重要,让我们可以更清晰地知道某些步骤的执行顺序。以下的文章参考了《JavaScript权威指南》。总体来说JavaScript程序从脚本执行阶段开始,然后开始切换到事件处理阶段。以下是JavaScript程序执行的详细时间线。1.Web浏览器创建document对象,并且开始解析Web页面,解析HTML元素和他们的文本内容...原创 2019-07-25 11:03:27 · 245 阅读 · 0 评论 -
!DOCTYPE声明
一、什么是<!DOCTYPE>?<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前,<!DOCTYPE> 声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本,以便于浏览器的解析器使用正确的文档标准解析这个文档。若声明错误或未声明会导致文档以怪异模式呈现。注意:1.<!D...原创 2019-08-14 16:03:03 · 734 阅读 · 0 评论 -
"||"与"&&"详解
记录一下"||"与"&&"的详细用法我们以前在数学上都学习过"||"与"&&"运算符,但是我们只是简单地记住了这两种运算符的表面特征:"&&"运算符左右两边都为真,则该表达式为真:if(3 > 2 || 4 > 3) { console.log("大猪佩奇");}//大猪佩奇"||"运算符左右两边只要有...原创 2019-08-28 12:00:30 · 2502 阅读 · 2 评论