小编spe*_*ufo的帖子

[] .__ proto__ === Array.prototype // === [Symbol(Symbol.unscopables):Object]?

定义一个实用程序函数来检查对象的原型链(在Chrome中),我得到了数组.

数组原型链

所以它会出现

[].__proto__ === Array.prototype  // === [Symbol(Symbol.unscopables): Object] 
Run Code Online (Sandbox Code Playgroud)

我理解第一个平等.我不知道第三个词是什么,虽然我听说ES6会有符号.

这个东西和Array.prototype一样吗?为什么这样打印?

编辑:chrome://版本信息:

Google Chrome   40.0.2214.111 (Official Build) 
Revision    6f7d3278c39ba2de437c55ae7e380c6b3641e94e-refs/branch-heads/2214@{#480}
OS  Linux 
Blink   537.36 (@189455)
JavaScript  V8 3.30.33.16
Run Code Online (Sandbox Code Playgroud)

javascript prototype google-chrome ecmascript-6

7
推荐指数
1
解决办法
617
查看次数

var undefined = void 0; vs jquery关闭vs ...?

阅读下划线的来源,我注意到使用void 0而不是undefined.我知道在某些浏览器中,undefined可以被覆盖,在许多情况下,解决这个问题的方法是在调用函数或return;-ing 时省略参数.事实上,为了缩小目的,这样做比使用更有意义void 0.

另外,jquery对这个问题的看法:

(function (window, undefined){
  /* ... */
}(window));
Run Code Online (Sandbox Code Playgroud)

从各方面来看似乎都更好.它更具可读性void 0,可以进一步缩小,并且可以提供一些微小的性能提升,如链接答案中所述.

好的,void 0在下划线中出现约6次,在主干中出现9次,因此它没有太大的区别.所以,我的问题是:是否有任何理由或角落案例void 0更可取?

javascript undefined void underscore.js

5
推荐指数
1
解决办法
407
查看次数

从角色的可读表中删除球拍的默认阅读器程序

我正在尝试编写一个球拍阅读器扩展程序,禁用对管道角色的特殊处理|.

我有两个文件:mylang/lang/reader.rkt实现lang阅读器并mylang/testing.rkt试用它.我跑去raco pkg install --link安装郎.

这是reader.rkt:

#lang s-exp syntax/module-reader
racket
#:read my-read
#:read-syntax my-read-syntax

(define (parse-pipe char in srcloc src linum colnum)
  #'\|)

(define my-readtable
  (make-readtable #f #\| 'terminating-macro parse-pipe))

(define (my-read-syntax src in)
  (parameterize ((current-readtable my-readtable))
    (read-syntax src in)))

(define (my-read in)
  (syntax->datum
   (my-read-syntax #f in)))
Run Code Online (Sandbox Code Playgroud)

有了testing.rkt这样的:

#lang mylang
(define | 3)
(+ 3 2)
Run Code Online (Sandbox Code Playgroud)

按预期运行并生成5个.但是下一个不会:

#lang mylang
(define |+ 3)
(+ |+ 2)
Run Code Online (Sandbox Code Playgroud)

抱怨define: bad …

racket

4
推荐指数
1
解决办法
69
查看次数