From 8afab8ca89f082772326529288f0f09e52498140 Mon Sep 17 00:00:00 2001 From: ruanyf Date: Fri, 13 Nov 2015 13:22:20 +0800 Subject: [PATCH] edit function/length --- docs/function.md | 8 +++++++- docs/spec.md | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/function.md b/docs/function.md index 1500843..120511b 100644 --- a/docs/function.md +++ b/docs/function.md @@ -204,7 +204,13 @@ foo(undefined, null) (function(a, b, c = 5){}).length // 2 ``` -上面代码中,`length`属性的返回值,等于函数的参数个数减去指定了默认值的参数个数。 +上面代码中,`length`属性的返回值,等于函数的参数个数减去指定了默认值的参数个数。比如,上面最后一个函数,定义了3个参数,其中有一个参数`c`指定了默认值,因此`length`属性等于3减去1,最后得到2。 + +这是因为`length`属性的含义是,该函数预期传入的参数个数。某个参数指定默认值以后,预期传入的参数个数就不包括这个参数了。同理,rest参数也不会计入`length`属性。 + +```javascript +(function(...args) {}).length // 0 +``` ### 作用域 diff --git a/docs/spec.md b/docs/spec.md index d4423ee..aa7fee0 100644 --- a/docs/spec.md +++ b/docs/spec.md @@ -8,7 +8,7 @@ 这对JavaScript语言很有必要。因为它的使用场景复杂,语法规则不统一,例外很多,各种运行环境的行为不一致,导致奇怪的语法问题层出不穷,任何语法书都不可能囊括所有情况。查看规格,不失为一种解决语法问题的最可靠、最权威的终极方法。 -本节介绍如何读懂ECMAScript 6的规格文件。 +本章介绍如何读懂ECMAScript 6的规格文件。 ECMAScript 6的规格,可以在ECMA国际标准组织的官方网站([www.ecma-international.org/ecma-262/6.0/](http://www.ecma-international.org/ecma-262/6.0/))免费下载和在线阅读。 @@ -20,7 +20,9 @@ ECMAScript 6规格的26章之中,第1章到第3章是对文件本身的介绍 ## 相等运算符 -先来看这个例子,请问下面表达式的值是多少。 +相等运算符(`==`)是一个很让人头痛的运算符,它的语法行为多变,不符合直觉。这个小节就看看规格怎么规定它的行为。 + +请看下面这个表达式,请问它的值是多少。 ```javascript 0 == null