摘要:
认识JS中的原型 JS中的每一个对象都有一个特殊的内置属性[[prototype]],这个特殊的对象可以指向另外一个对象。 这个对象有什么用呢? 当我们通过引用对象的属性key来获取一个value的时候,它会出发[[Get]]操作 这个操作会先检查该对象中是否有对应的属性,如果有的话就使用它 如果该 阅读全文
摘要:
JS是支持多种编程范式的,包括函数式编程和面向对象编程 JS中的对象被设计为一组属性的无序集合,像是一个哈希表,由key和value组成 key是一个标识符的名称,value可以是任意类型,也可以是其他对象或者函数类型 如果value是一个函数,那么我们可以称为对象的方法 一般情况下创建对象的两种方 阅读全文
摘要:
JS中的with语句 with语句用来扩展一个语句的作用域链 var obj = { name:"hello world" age:18 } with(obj){ console.log(name) console.log(age) } //这样的话name就会先去obj查找,然后在跟原本一样一层一 阅读全文
摘要:
在函数式编程中柯里化是一个十分重要的概念 那么 什么是柯里化呢? 定义: 只传递给函数一部分参数来调用它,让它返回一个函数去处理剩余的参数。这个过程就叫做柯里化。 实例: // 未柯里化的函数 function add1(x,y,z){ return x+y+z } console.log(add1 阅读全文
摘要:
函数式编程中有一个非常重要的概念叫做纯函数,JS符合函数式编程的范式,所以也有纯函数的概念 比如react中的redux中的reducer,就被要求是一个纯函数 那么 什么是纯函数呢? 纯函数的定义: 确定的输入,会产生确定的输出 不会产生副作用 那么 什么又是副作用呢? 在这里副作用的意思就是在执 阅读全文
摘要:
1.call函数的实现 // 首先我们需要给所有的函数添加一个自定义的call方法 Function.prototype.newCall(thisArg,...args){ // 1.现在我们需要知道是哪一个函数调用了newCall var fn = this; // 2.对传入的thisArg做限 阅读全文
摘要:
要想了解闭包,我们就必须首先了解JS中的函数 因为在JS中函数是一等公民 一等公民的意思就是函数的使用是十分灵活的 函数可以作为另外一个函数的参数,也可以作为另外一个函数的返回值来使用。 JS中的闭包的定义: JS中的一个函数,如果访问了外层作用域的变量,那么他就是一个闭包 闭包产生的三个必要条件 阅读全文
摘要:
在常见的编程语言中,几乎都有this这个关键字,但是JavaScript中的this和常见的面向对象语言中的this不太一样: 常见面向对象的编程语言中,比如Java、C++、Swift、Dart等等一系列语言中,this通常只会出现在类的方法中。 也就是你需要有一个类,类中的方法(特别是实例方法) 阅读全文
摘要:
无论是什么编程语言,在代码执行的过程中都是需要给他们分配的内存的,不同的是某些编程语言需要自己来管理内存,某些编程语言是可以自动管理内存的。JS就是属于可以自动管理内存的编程语言。 内存管理的生命周期: 一:分配内存(申请) 二:使用内存(存放一些东西,比如对象) 三:用完后不需要用了,释放内存 J 阅读全文
摘要:
1.第一题 var n = 100 function foo() { n = 200 } foo() console.log(n) 答案:200 执行过程: 在编译阶段先创建了一个Go对象{n:undefined,foo:0xa00} 然后对n进行赋值等于100,创建一个foo函数对象 在调用foo 阅读全文