想做技术博客,但却更喜欢分享生活。

Javascript标签

说说Event Loop

为什么会有Event Loop?这就要从Javascript的特点“单线程”开始说起了。
单线程是什么?意思就是在一个时间内程序只能做一件事。很多人都用过Java或者C++之类的语言,肯定能体会到这些语言的多线程带来的很多便捷性。然而,Javascript在设计之初的定位是用来处理用户交互以及操作DOM,如果Javascript也设计成多线程,势必会带来很复杂的同步问题。

[译]Javascript 2018: 你需要知道的和不需要知道的一些东西

Javascript已经发展成熟——我们不再是只使用它在网页上制作一些简单的交互,而是更多的使用它构建一整套大型的应用。当然了,随着当前Javascript的生态系统不断完善,这会比之前都更复杂。
作为一名职业的软件工程师以及两本与Javascript有关书籍的作者,Ethan Brown花费了很多时间去分析目前和Javascript有关的技术栈,并且从中得出了一位现代的“Javascript开发者”该如何去适应这些东西。
这里有一些Brown的关于Javascript生态系统的各个方面最前沿或者也是至少会很有用的预测,在2018里,机智的开发者可以去熟悉这些东西。

理解Javascript中的作用域与作用域链

任何程序设计语言都有作用域,简单的说,作用域就是变量或函数的可访问范围。作用域控制着变量与函数的可访问性与生命周期。
在绝大部分程序设计语言中,作用域的范围有全局作用域、函数作用域、块级作用域。
* 全局作用域:属于全局作用域的代码在任何地方都能访问到;
* 函数作用域:在定义该变量/函数的函数体内可以访问到;
* 块级作用域:在定义该变量/函数的语句块中可以访问到。

然而对于Javascript(ES5)来说,不存在块级作用域。

理一理Javascript的原型链

在Javascript中,大致存在两种对象:普通对象和函数对象。
一般而言,通过new Function()创建的对象是函数对象,其他的是函数对象。每当创建函数对象时,该对象中都会内置一些属性,其中包括prototype__proto__prototype即为原型对象
其内记录着函数对象的一些属性和方法。
prototype的主要作用是继承。prototype内定义的属性和方法都是留给自己的后代使用的。
说到后代,就必须说说js中的原型链。此时,另一个属性__proto__就登场了。

移动端弹出浮动层内部滚动的解决方案

在移动端开发的时候,未免会遇到这样的情况:
有一个弹出的浮动层,这个层有滚动条,可以上下滚动。
此时就会发现,当用户在操作这个浮层的时候,整个页面也可能会随之滚动。
ScrollPrevent.js就是为了解决这种情况而被制作的!