2017.08.20更新
锚点链接
HTML链接 - name 属性
name 属性规定锚(anchor)的名称。
使用 name 属性创建 HTML 页面中的书签。书签不会以任何特殊方式显示,它对读者是不可见的。
当使用命名锚(named anchors)时,我们可以创建直接跳至该命名锚(比如页面中某个小节)的链接,这样使用者就无需不停地滚动页面来寻找他们需要的信息了。
————————————————————————
2017-08-21 更新
————————————————————————
1 | function createPerson(name,age){ |
工厂模式解决创建多个相似对象的问题,但是没有解决对象识别的问题,即怎样知道一个变量的类型
1 | function Person(){ |
无论什么时候,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype
属性,这个属性指向函数的原型对象。在默认情况下,所有原型对象都会自动获得一个constructor
(构造函数)属性,这个属性包含一个指向 prototype
属性所在函数的指针。上述代码中Person.prototype.constructor
指向Person
。
创建了自定义的构造函数之后,其原型对象默认只会取得constructor
属性;至于其他方法,则都是从Object
继承而来的。当调用构造函数创建一个新实例后,该实例的内部将包含一个指针(内部属性),指向构造函数的原型对象。 ECMA-262 第 5 版中管这个指针叫[[Prototype]]
。虽然在脚本中没有标准的方式访问[[Prototype]]
,但 Firefox、 Safari 和 Chrome 在每个对象上都支持一个属性__proto__
;而在其他实现中,这个属性对脚本则是完全不可见的。
这个连接存在于实例与构造函数的原型对象之间,而不是存在于实例与构造函数之间。
上述代码中person1
和person2
的[[Prototype]]
指向构造函数的原型对象Person.prototype
目前升级 NexT 主题的时候并不是非常的流畅。若使用git pull
的方式,很多时候可能会产生冲突;而下载新版本覆盖安装的方式又需要手动合并主题的_config.yml
文件。
在此修改之前, NexT 建议将配置分离,一部分在 站点的配置文件中,另外一部分在主题的配置文件中。将需要自定的选项放置在 站点配置文件中,从而脱离避免更新主题时可能遇到的麻烦。这种方式是可行,但是有一些缺点:
为了解决这个问题, NexT 将会使用 Hexo 的Data Files
。然而由于Data Files
是在 Hexo 3 版本时引进的,所以要使用这个特性,需要 Hexo 的版本不低于 3。
2017.8.5开始读,2017.8.12日读完
这是一本关于量子力学的历史的科普性著作
2017.8.14更新
波动说和粒子说
主要参与人物:
JavaScript Puzzlers!,题目基于ECMA 262 (5.1)的浏览器环境
1 | ["1", "2", "3"].map(parseInt) |
考察map
和parseInt
Array.prototype.map()
接收三个参数(element,index,Array)
parseInt()
接收两个参数(val,radix)
,radix
为基数,parseInt('17',8) //15
,radix
为0或无表示以10为基数。每个位上的数字不能比基数大,否则返回NaN
,radix
不能为1,范围为2-36。
1 | parseInt('1',0)//1 |
所以选D
arguments
是一个类似数组的对象, 对应于传递给函数的参数。arguments
对象是所有函数中可用的局部变量。你可以使用arguments
对象在函数中引用函数的参数。此对象包含传递给函数的每个参数的条目,第一个条目的索引从0开始。
arguments
对象不是一个Array
。它类似于数组,但除了长度之外没有任何数组属性。例如,它没有pop
方法。但是它可以被转换为一个真正的数组:1
2
3let args = Array.prototype.slice.call(arguments);
let args = [].slice.call(arguments);
你还可以使用Array.from()
方法或spread
运算符将arguments
转换为真正的数组:1
2let args = Array.from(arguments);
let args = [...arguments];
arguments.callee
指向当前执行的函数。arguments.length
指向传递给当前函数的参数数量。
length
是函数对象的一个属性值,指该函数有多少个必须要传入的参数,那些已定义了默认值的参数不算在内,比如function(xx = 0)
的length
是0。与之对比的是,arguments.length
是函数被调用时实际传参的个数。
Function
构造器本身也是个Function
。他的length
属性值为 1 。该属性 Writable: false
, Enumerable: false
,Configurable: true
。
Function
原型对象的length
属性值为 0 。
2017-08-22更新 添加双飞翼、圣杯布局
2017-08-30更新 添加BFC
2017-08-31更新 添加js模块化,函数节流
2017-09-01更新 添加this对象分析
2017-09-02更新 添加并发编程与事件循环
2017-09-04更新 添加浏览器渲染,重排,重绘
2017-09-06更新 添加HTTP缓存,离线应用和客户端存储
2017-09-09更新 JS事件循环,setTimeout,setInterval
2017-09-21更新 Ajax原生实现过程
2017-09-23更新 添加HTTP/HTTPS