原型Prototype
prototype
应该是Javascript里最核心的内容了。原型链继承的概念神马的估计都背熟了,但其实在应用中又该怎么玩呢?
原型链是什么
如果myObject
上不存在a
属性时,我们就将注意力转向对象的[[Prototype]]
链:
这个处理持续进行,直到找到名称匹配的属性,或者[[Prototype]]
链终结。如果在链条的末尾都没有找到匹配的属性,那么[[Get]]
操作的返回结果为undefined
。
prototype
应该是Javascript里最核心的内容了。原型链继承的概念神马的估计都背熟了,但其实在应用中又该怎么玩呢?
如果myObject
上不存在a
属性时,我们就将注意力转向对象的[[Prototype]]
链:
这个处理持续进行,直到找到名称匹配的属性,或者[[Prototype]]
链终结。如果在链条的末尾都没有找到匹配的属性,那么[[Get]]
操作的返回结果为undefined
。
使用AJAX好多年了吧,相信创建一个请求监听什么状态都驾轻就熟了,还有什么好说的呢。问题来源于最近公司在优化图片上传的接口。所以来总结以下XMLHttpRequest Level 2的一些东西。
AJAX 操作往往用来传递表单数据。为了方便表单处理,HTML 5新增了一个 FormData 对象,可以用于模拟表单。
新版 XMLHttpRequest 对象,不仅可以发送文本信息,还可以上传文件。
this
应该是Javascript里永恒的面试题。这次只说说硬绑定里的陷阱题。
求下面这个题目的输出:
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的新标准,它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。ES6新增了一些值得思考的内容,下面来拜一拜最受瞩目的三个吧。
ES6 模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS 和 AMD 模块,都只能在运行时确定这些东西。比如,CommonJS 模块就是对象,输入时必须查找对象属性。ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。
上面代码的实质是从fs模块加载3个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可以在编译时就完成模块加载,效率要比 CommonJS 模块的加载方式高。当然,这也导致了没法引用 ES6 模块本身,因为它不是对象。
一个临时的支线小任务,用node做一个爬虫,爬点贴吧的数据。
express 是 Node.js 应用最广泛的 web 框架),可以用来建立一个强大的服务器端应用,包括中间件,模板引擎,路由等强大功能。
启动一个express最简单的服务代码如下: