随笔分类 -  JavaScript

 
VO、AO、执行环境和作用域链
摘要:1、变量对象(variable object) 原文:Every execution context has associated with it a variable object. Variables and functions declared in the source text are a 阅读全文
posted @ 2018-09-27 11:50 Lulin1 阅读(3487) 评论(0) 推荐(0)
闭包--笔记
摘要:栗子看这里(12) 详情戳这里 阅读全文
posted @ 2018-09-27 10:49 Lulin1 阅读(145) 评论(0) 推荐(0)
定时器setTimeout()和Node.js的Event Loop
摘要:一、定时器 setTimeout(fn,0)的含义是,指定某个任务在主线程最早可得的空闲时间执行,也就是说,尽可能早得执行。它在"任务队列"的尾部添加一个事件,因此要等到同步任务和"任务队列"现有的事件都处理完,才会得到执行。 需要注意的是,setTimeout()只是将事件插入了"任务队列",必须 阅读全文
posted @ 2018-09-25 19:49 Lulin1 阅读(398) 评论(0) 推荐(0)
观察者模式和发布订阅模式的区别
摘要:在发布-订阅模式,消息的发送方,叫做发布者(publishers),消息不会直接发送给特定的接收者,叫做订阅者。 意思就是发布者和订阅者不知道对方的存在。需要一个第三方组件,叫做信息中介,它将订阅者和发布者串联起来,它过滤和分配所有输入的消息。换句话说,发布-订阅模式用来处理不同系统组件的信息交流, 阅读全文
posted @ 2018-09-21 15:57 Lulin1 阅读(301) 评论(0) 推荐(0)
Object.create(null)、Object.create({})、{} 三者创建对象的区别
摘要:参考 1、先看看我们经常使用的{}创建的对象是什么样子的: 从上图可以看到,新创建的对象继承了Object自身的方法,如hasOwnProperty、toString等,在新对象上可以直接使用。 2、再看看使用Object.create(null)创建对象: 可以看到,新创建的对象除了自身属性a之外 阅读全文
posted @ 2018-08-28 10:44 Lulin1 阅读(211) 评论(0) 推荐(0)
Js 基本类型和引用类型
摘要:一个变量可以存放两种类型的值,基本类型的值(primitive values)和引用类型的值(reference values)。 ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:Undefined、Null、布尔值(B 阅读全文
posted @ 2018-07-27 10:50 Lulin1 阅读(164) 评论(0) 推荐(0)
js--函数声明和函数表达式--执行顺序
摘要:思考: notice:在写JS代码的时候,有两种写法,一种是函数表达式,另外一种是函数声明方式。我们需要重点注意的是,只有函数声明形式才能被提升。 参考文章 参考函数提升一文 阅读全文
posted @ 2018-07-25 15:56 Lulin1 阅读(371) 评论(0) 推荐(0)
js--变量对象总结
摘要:当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context)。 对于每个执行上下文,都有三个重要属性: 变量对象(Variable object,VO) 作用域链(Scope chain) this 变量对象(Va 阅读全文
posted @ 2018-07-25 11:03 Lulin1 阅读(822) 评论(0) 推荐(1)
JavaScript 是如何工作的: 事件循环和异步编程的崛起 + 5个如何更好的使用 async/await 编码的技巧 - 学习笔记
摘要:那么,谁会告诉 JS 引擎去执行你的程序?事实上,JS 引擎不是单独运行的 —— 它运行在一个宿主环境中,对于大多数开发者来说就是典型的浏览器和 Node.js。实际上,如今,JavaScript 被应用到了从机器人到灯泡的各种设备上。每个设备都代表了一种不同类型的 JS 引擎的宿主环境。 所有的环 阅读全文
posted @ 2018-06-27 15:24 Lulin1 阅读(128) 评论(0) 推荐(0)
JS执行机制--事件循环--笔记
摘要:JS的解析是由浏览器中的JS解析引擎完成的。JS是单线程运行,也就是说,在同一个时间内只能做一件事,所有的任务都需要排队,前一个任务结束,后一个任务才能开始。但是又存在某些任务比较耗时,如IO读写等,所以需要一种机制可以先执行排在后面的任务,这就是:同步任务(synchronous)和异步任务(as 阅读全文
posted @ 2018-06-26 10:35 Lulin1 阅读(283) 评论(0) 推荐(0)
原型链与继承
摘要:当谈到继承时,JavaScript 只有一种结构:对象。每个实例对象(object )都有一个私有属性(称之为 __proto__)指向它的原型对象(prototype)。该原型对象也有一个自己的原型对象 ,层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中 阅读全文
posted @ 2018-06-20 16:06 Lulin1 阅读(128) 评论(0) 推荐(0)
易混点总结--JS
摘要:1、defer与 async 的区别是: defer要等到整个页面在内存中正常渲染结束(DOM 结构完全生成,以及其他脚本执行完成),才会执行;async一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。一句话,defer是“渲染完再执行”,async是“下载完就执行”。另外,如果有多 阅读全文
posted @ 2018-06-13 15:49 Lulin1 阅读(123) 评论(0) 推荐(0)
encodeURI和encodeURIComponent区别
摘要:参考:https://www.jianshu.com/p/075f5567c9a1 这两个函数功能上面比较接近,但是有一些区别。 encodeURI:不会进行编码的字符有82个 :!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z encodeUR 阅读全文
posted @ 2018-06-06 10:29 Lulin1 阅读(144) 评论(0) 推荐(0)
!function() {}()
摘要:// 这么写会报错,因为这是一个函数定义: function() {}() // 常见的(多了一对括号),调用匿名函数: (function() {})() // 但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用 !function() {}() 阅读全文
posted @ 2018-05-25 17:37 Lulin1 阅读(125) 评论(0) 推荐(0)
html页面中的title设置为空格
摘要:这样页面加载时,title会显示为空,而不是当前页面的URL。 document.title='\u200E' 阅读全文
posted @ 2018-01-10 18:20 Lulin1 阅读(1314) 评论(0) 推荐(0)
window.onload
摘要:网页中的javaScript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式: 一.将脚本代码放在网页的底端,这样在运行脚本代码的时候,可以确保要操作的对象已经加载完成。 二.通过window.onload来执行脚本代码。 第 阅读全文
posted @ 2017-12-22 19:38 Lulin1 阅读(188) 评论(0) 推荐(0)
JS获取屏幕大小
摘要:JS获取屏幕大小 <html><script>function a(){document.write("屏幕分辨率为:"+screen.width+"*"+screen.height+"<br />"+"屏幕可用大小:"+screen.availWidth+"*"+screen.availHeigh 阅读全文
posted @ 2017-12-22 14:33 Lulin1 阅读(184) 评论(0) 推荐(0)
适配手机端之 rem
摘要:Eg. PSD中的width为378px,那么在手机端代码中为378/100=3.78rem. 阅读全文
posted @ 2017-11-13 17:24 Lulin1 阅读(143) 评论(0) 推荐(0)
prototype和_proto_
摘要:__proto__(隐式原型)与prototype(显式原型) 显式原型 explicit prototype property:用来实现基于原型的继承与属性的共享。 每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。 Note:通过Function.prot 阅读全文
posted @ 2017-10-09 14:31 Lulin1 阅读(129) 评论(0) 推荐(0)
js-null 、undefined
摘要:注意:null 转为数值时为0,而 undefined 转为数值时为 NaN。 null 表示"没有对象",即该处不应该有值。典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象。 (2) 作为对象原型链的终点。 undefined 表示"缺少值",就是此处应该有一个值,但是还没有定义。典 阅读全文
posted @ 2017-10-09 09:51 Lulin1 阅读(242) 评论(0) 推荐(0)