摘要:
一、String 对象属性 属性 描述 constructor 对创建该对象的函数的引用 length 字符串的长度 prototype 允许您向对象添加属性和方法 二、String 对象方法 以str为例,var str="hello world, welcome to the universe" 阅读全文
摘要:
一、Array 对象属性 属性 描述 constructor 返回对创建此对象的数组函数的引用。 length 设置或返回数组中元素的数目。 prototype 使您有能力向对象添加属性和方法。 二、Array对象方法: 以实际数组arr为例:var arr=['apple','orange',66 阅读全文
摘要:
1.所有的Object 对象具有下列属性: constructor 对创建对象的函数的引用(指针)。 Prototype 对该对象的对象原型的引用 2.所有的Object 对象还具有几个方法: hasOwnProperty(property) 判断对象是否有某个特定的属性。必须用字符串指定该属性。( 阅读全文
摘要:
问题解答 Q1:process是什么对象有什么作用呢? A1:process对象是一个Global全局对象,你可以在任何地方使用它,而无需require。 process对象 node.js中进程相关的对象 是全局对象,因此你可以在code中的任何一个地方访问其对象中的属性,值都是一致的 其中包含一 阅读全文
摘要:
bind() 方法与 apply 和 call 很相似,也是可以改变函数体内 this 的指向。 MDN的解释是:bind()方法会创建一个新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入 bind()方法的第一个参数作为 this,传入 bind() 方法的第二个以及以后的参数 阅读全文
摘要:
一、类式继承(构造函数) JS中其实是没有类的概念的,所谓的类也是模拟出来的。特别是当我们是用new 关键字的时候,就使得“类”的概念就越像其他语言中的类了。 类式继承是在函数对象内调用父类的构造函数,使得自身获得父类的方法和属性。 call和apply方法为类式继承提供了支持。通过改变this的作 阅读全文
摘要:
一、prototype和__proto__的概念 prototype是函数的一个属性(每个函数都有一个prototype属性),这个属性是一个指针,指向一个对象。它是显示修改对象的原型的属性。 __proto__是一个对象拥有的内置属性(请注意:prototype是函数的内置属性,__proto__ 阅读全文
摘要:
先看一个简单的例子: new Promise(function (resolve, reject) { log('start new Promise...'); var timeOut = Math.random() * 2; log('set timeout to: ' + timeOut + ' 阅读全文
摘要:
相信凡是写过javascript的童鞋也一定都写过回调方法(callback),简单说回调方法就是将一个方法func2作为参数传入另一个方法func1中,当func1执行到某一步或者满足某种条件的时候才执行传入的参数func2,例如下面的代码段 // 当参数a大于10且参数func2是一个方法时 执 阅读全文
摘要:
JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象。 当我们用obj.xxx访问一个对象的属性时,JavaScript引擎先在当前对象上查找该属性,如果没有找到,就到其原型对象上找,如果还没有找到,就一直上溯到Object.prototype对象,最后,如果还没有找到,就只能返回 阅读全文
摘要:
JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。 在JSON出现之前,大家一直用XML来传递数据。因为XML是一种纯文本格式,所以它适合在网络上交换数据。XML本身不算复杂,但是,加上DTD、XSD、XPath、XSLT等一大堆复杂的规范以后,任何正常的软 阅读全文
摘要:
generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。 generator跟函数很像,定义如下: function* foo(x) { yield x + 1; yield x + 2; return x + 3; } generator 阅读全文
摘要:
相关参数和变量都保存在返回的函数中,这种称为“闭包。 需要注意的问题是,返回的函数并没有立刻执行,而是直到调用了f()才执行。 例子: function count() { var arr = []; for (var i=1; i<=3; i++) { arr.push(function () { 阅读全文
摘要:
Array的sort()方法默认把所有元素先转换为String再按ASCII码从小到大排序。 幸运的是,sort()方法也是一个高阶函数,它还可以接收一个比较函数来实现自定义的排序。 要按数字大小排序,我们可以这么写: 'use strict'; var arr = [10, 20, 1, 2]; 阅读全文
摘要:
和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。 在一个Array中,删掉偶数,只保留奇数,可以这么写: var arr = [1, 2, 4, 5, 6, 9, 10, 15]; var r = arr.filte 阅读全文
摘要:
map() 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果 比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组 'use strict'; function pow(x) { retur 阅读全文
摘要:
JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对。 但是JavaScript的对象有个小问题,就是键必须是字符串 Map Map是一组键值对的结构,具有极快的查找速度。 var m = new Map([['Michael', 95] 阅读全文
摘要:
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。 为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。 for ... in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的 阅读全文
摘要:
名字空间 全局变量会绑定到window上,不同的JavaScript文件如果使用了相同的全局变量,或者定义了相同名字的顶层函数,都会造成命名冲突,并且很难被发现。 减少冲突的一个方法是把自己的所有变量和函数全部绑定到一个全局变量中。例如: // 唯一的全局变量MYAPP: var MYAPP = { 阅读全文
摘要:
JavaScript还有一个免费赠送的关键字arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。arguments类似Array但它不是一个Array: function foo(x) { console.log('x = ' + x); // 10 for (va 阅读全文