程序由若干文件构成,文件中是开发人员编写的文本。这些文本由一个特殊的程序(编译器)解析,转换成“抽象句法树”(abstractsyntaxtree,AST)。AST是去掉了空白、注释和缩进用的制表符或空格之后的数据结构。编译器把AST...
函数式编程,一个非常重要的概念是:纯函数。(大多数函数式编程的好处来自于编写纯函数)下面我就带大家来了解一下什么是纯函数。纯函数是对给定的输入返回相同的输出的函数。(参考数学里的函数)写一个简单的纯函数:var double&nb...
假设有一个数组,我们想遍历它并把它打印到控制台。用命令式方法遍历数组:var arr = [1, 2, 3]for(var i = 0; i&nb...
函数是一段可以通过其名称被调用的代码,它可以传递参数并返回值。而方法是一段必须通过其名称及其关联对象的名称被调用的代码。也可以这么去理解:函数:一个函数就是一个可调用的对象。方法:挂在对象属性上的函数就叫方法。举例:var sim...
每一个JavaScript对象(除了null)在创建的时候都会关联另一个对象,这个对象就是所谓的“原型”。每一个对象都会从原型“继承”属性。但这个继承真的是继承吗?实际上,继承是一个具有迷惑性的说法。引用《你不知道的JavaScript》中...
我们来看个例子:function Person() {}var person = new Person();console.log(person.construct...
Object.prototype是一个对象,用于表示Object的原型对象。本篇探讨的是,Object.prototype的原型是什么?答案是:null。我们不妨打印:console.log(Object.prototype.__proto...
构造函数、实例原型、实例的关系图如下:用代码来感受一下://Person是一个构造函数(每个函数都有一个prototype属性)function Person() {}//使用new创建一个实例对象per...
如何利用reduce来找出一个数字数组中最大值?代码如下:const nums = [6,3,4];const maxNum = nums.reduce((max, ...
有一段经典的代码console.log( 0.1 + 0.2 == 0.3)输出结果是false。意味着,两边是不相等的。这是浮点数运算的精度问题导致的。正确的比较方法是使用JavaScri...