function name(){}

为了重用,好的方法名也会增加可读性

parenthesis US: [pəˈrenθəsɪs] 圆括号

curly braces 花括号

Parameter 是方法体中用作占位符(placeholder)的变量

Argument 是调用function 时有实际值的变量。也可说是赋值给Parameter 的实际值

Parameter 和Argument 经常被同义使用

https://stackoverflow.com/questions/156767/whats-the-difference-between-an-argument-and-a-parameter

https://stackoverflow.com/questions/1788923/parameter-vs-argument

function 没有return 语句时,自动return undefined

Function.arguments 使用传入的参数

function sum() {
    var retval = 0;
    for (var i = 0, len = arguments.length; i < len; ++i) {
        retval += arguments[i];
    }
    return retval;
}

sum(1, 2, 3) // returns 6

https://stackoverflow.com/questions/61088/hidden-features-of-javascript/2243631#answer-65028

arguments对象不是一个 Array 。它类似于Array,但除了length属性和索引元素之外没有任何Array属性。转换为一个真正的Array:

var args = Array.prototype.slice.call(arguments);
var args = [].slice.call(arguments);

// ES2015
const args = Array.from(arguments);
const args = [...arguments];
所有构造器都是function,不用new 也能调用

Date()
	"Sun Nov 03 2019 20:31:38 GMT+0800 (China Standard Time)"
new Date()
	Sun Nov 03 2019 20:31:42 GMT+0800 (China Standard Time)
Function()
	ƒ anonymous(
	) {
	
	}
Object()
	{}
Number()
	0