你不知道的JavaScript——this和对象原型
一、误区1. this指向自身思考以下代码123456789101112131415161718192021function foo(num) { console.log("foo: "+ num); //记录foo被调用的次数 this.count++;}foo.count = 0;var i;for (i = 0; i<10; i++) {
一、误区1. this指向自身思考以下代码123456789101112131415161718192021function foo(num) { console.log("foo: "+ num); //记录foo被调用的次数 this.count++;}foo.count = 0;var i;for (i = 0; i<10; i++) {
一、引言首先看一个最简单的例子1var a = 2; 开始,我们会以为这只是一个声明,但是事实并不是这样的,JS引擎认为这里有两个完全不同的声明,我们把这两个声明过程分解。 step1: var a,编译器会询问作用域是否已经有一个该名称的变量存在于同一个作用域的集合中。如果是,编译器会忽略该声明,继续进行编译;否则它会要求作用域在当前作用域的集合中声明一个新的变量,并命名为a step2: 接
字符串一些常用方法 charAt()1str.charAt(n) =>返回字符串的第 n 个字符,如果不在 0~str.length-1之间,则返回一个空字符串。123var str = "javascript";str.charAt(2); //'v'str.charAt(12); //'' indexOf()1indexO
jQuery源码整体架构12345678910111213141516171819(function(global,factory){ factory(global) })(typeof window !== "undefined" ?window : this,function(window,noGlobal){//当全局为window时在wi
promise对象特点:1.对象的状态不受外界影响。Promise对象代表一个异步操作,有3种状态:Pending(进行中) Resolved(已完成又称fulfilled) rejected(已失败),只有异步操作结果可以决定当前的状态,任何操作都无法改变这个状态2.只有两种可能:从Pending到resolved或从pending到rejected,只要其中一个发生,状态就会凝固,不会再变。就
GeneratorGenerator是ES6提供的一种异步编程解决方案,它是一种状态机封装了多个内部对象,执行Generator函数会返回一个遍历器对象 形式上,Generator函数就是普通函数,但有两个特性1.function命令与函数名之间有一个*2.函数体内部使用yield语句定义不同的内部状态eg:123456function* helloGenerator(){ yield
Iterator和for…of循环Iterator:是一种机制,也是一种接口,任何数据结构只要部署了Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)Iterator的作用:1.为各种数据提供一个统一的,简便的访问接口2.使得数据结构的成员能够按某种次序排序3.for…of循环,Iterator接口主要供for…of消费 Iterator的遍历过程:1.创建一个指针对象,指
mapObject提供了“字符串-值”的对应,而map提供了“值-值”的对应,是一种更完善的Hash结构实现。 map可以接受一个数组作为参数,该数组的成员是一个个表示键值对的数组eg:123456var map = new map([["name","张三"],["title","Author"]]);map.siz
setset是ES6提供的新的数据结构,它类似于数组,但成员都是唯一的,没有重复的值。Set本身就是一个构造函数,用来生成set数据结构,向set加入值时不会发生类型转换,所以”5”和5是两种不同的值。 set的操作方法add(value):添加某个值,返回set结构本身delete(value):删除某个值,返回一个布尔值,表示删除是否成功has(value):返回一个布尔值,表示参数是否为se
let const 和 var ES5中的变量声明方式有var和function,一个声明变量,一个声明函数。在ES6中新增加了let和const方法 let命令 1.let命令的用法类似于var,但是所声明的变量只在let命令所在代码块中起作用 2.let不想var那样会发生”变量提升”,因此变量一定要在声明后使用,否则报错 3.let不允许在相同作用域内重复声明同一个变量ps: