随笔分类 -  javascript

 
分析三种判断数组的方法
摘要:1. obj instanceof Array 我们都知道instanceof是用来判断对象的类型的,并且所有的对象 instanceof Object结果都是true 内部机制是通过判断对象的原型链中是否能找到同类型的prototype 其原理是一层一层查找__proto__,如果和constru 阅读全文
posted @ 2019-11-09 18:16 叫我爱运动小姐 阅读(889) 评论(0) 推荐(0)
原型总结
摘要:1. 构造函数 构造函数实际上就是一个函数,但是为了区分普通函数和构造函数,常常将构造函数的首字母大写。 构造函数和普通函数的区别在于:直接调用的函数是普通函数,使用new生成实例的函数是构造函数。 每个构造函数都有一个prototype属性, 实例对象可通过它的constructor访问到它的构造 阅读全文
posted @ 2019-11-09 17:20 叫我爱运动小姐 阅读(233) 评论(0) 推荐(0)
bind()的模拟实现
摘要:上一篇对call和apply的模拟实现做了一个梳理,可参见:模拟实现call、apply,下面将具体研究一下bind啦啦啦 1. bind和call/apply的差别 bind方法会创建一个新函数,返回值是一个绑定了上下文的函数 call和apply是将函数直接执行 描述: bind()函数会创建一 阅读全文
posted @ 2019-11-06 11:26 叫我爱运动小姐 阅读(628) 评论(0) 推荐(0)
模拟实现call、apply
摘要:1. 知识点补充: 首先在模拟实现前,先Mark一些我之前不知道的知识: a. eval(string)函数:可计算某个字符串,并执行其中的JavaScript代码 其中,string是必需传入的待计算或待执行的语句,并且必须是原始字符串的形式! eval(string)相当于<script> st 阅读全文
posted @ 2019-11-04 15:51 叫我爱运动小姐 阅读(568) 评论(0) 推荐(0)
关于作用域闭包的一些理解
摘要:闭包 红宝书上对闭包的定义:有权访问另外一个函数作用域中变量的函数。 MDN对闭包的定义是:是能够访问自由变量的函数。 自由变量:是指在当前函数中可以使用的(但是既不是arguments也不是本函数定义的局部变量)。 两个点: 就是说我们常见的比如内部函数从外部函数返回这种状态,该内部函数就是闭包。 阅读全文
posted @ 2019-11-01 18:59 叫我爱运动小姐 阅读(248) 评论(0) 推荐(0)
几道关于this的经典练习题的理解与分析
摘要:1. 答案是:(严格模式下会报错!非严格模式下输出如下答案) 1 3 3 4 4 分析: 2. 答案: 我容易错的点在show2和show4,分析如下: person1.show2() 实际是执行:()=>console.log(this.a),根据“箭头函数的this指向外层作用域”,该箭头函数外 阅读全文
posted @ 2019-10-28 08:01 叫我爱运动小姐 阅读(486) 评论(0) 推荐(0)
对this的理解与总结
摘要:this既不指向函数自身,也不指向函数的词法作用域!它指向谁完全取决于它在哪里被调用,被谁调用! 绑定规则 总体来说,this的绑定规则有: 1.默认绑定: 默认绑定就是没有应用其他绑定规则时的绑定方式。 在非严格模式下,直接调用函数默认this指向全局对象,即window。这里要注意!即使是在某个 阅读全文
posted @ 2019-10-25 16:51 叫我爱运动小姐 阅读(246) 评论(0) 推荐(0)
内存机制及内存泄漏相关总结
摘要:内存空间 常用数据结构: JS内存空间: 注意:闭包中的变量不存放在栈中,而是存放在堆中!! 变量的存放: QUESTION:为什么会有栈内存和堆内存的区别? 由于垃圾回收机制,为了使程序运行所占用的空间最小。 上面这个问题的结果:a.x值为undefined,b.x的值为{n:2} 重点在 a.x 阅读全文
posted @ 2019-10-12 19:13 叫我爱运动小姐 阅读(314) 评论(0) 推荐(0)
let和const的一些知识点
摘要:let和const let 同一个作用域内不能重复声明同一个变量: let可以只声明不赋值,没有值的时候会输出undefined let在for循环中的应用:【下面将给出我对这两个例子的理解】 该demo的执行过程如下: var a = []; // 全局变量 var i = 0; // 全局变量, 阅读全文
posted @ 2019-10-12 14:28 叫我爱运动小姐 阅读(231) 评论(0) 推荐(0)
javascript执行上下文和变量对象
摘要:执行上下文(execution context): 执行上下文就是当前 JavaScript 代码被解析和执行时所在环境的抽象概念。 js语言是一段一段的顺序执行,这个“段”其实就是我们说的这个执行上下文,分为:全局执行上下文,函数执行上下文,Eval函数执行上下文(很少用)。 执行上下文由以下几个 阅读全文
posted @ 2019-10-10 16:31 叫我爱运动小姐 阅读(370) 评论(0) 推荐(0)
数据类型隐式转换及数据类型判断方式总结
摘要:QUESTION1:JS的数据类型有哪些? Js分为基本数据类型和对象数据类型 基本数据类型:一共六种 原始类型 -> string,number,boolean,null,undefined ES6新增symbol类型 对象类型:也叫引用类型,array和function是对象的子类型。 QUES 阅读全文
posted @ 2019-09-26 11:37 叫我爱运动小姐 阅读(473) 评论(0) 推荐(0)
ES6 —— 数组总结
摘要:1. map:映射 一个对一个 arr.map(function(item) { ... }) 可以配合箭头函数:arr.map(item => ... ) 可以看到一一对应的关系 2. reduce:汇总 一堆对一个 语法:arr.reduce(function(tmp, item, index 阅读全文
posted @ 2018-08-15 18:59 叫我爱运动小姐 阅读(151) 评论(0) 推荐(0)
对原型与原型链的理解
摘要:这部分是我长久以来习惯于直接忽略的部分,但是后面在面试和实习的过程中发现这部分知识是非常有用的!所以我花了好久时间看书、参考博客、敲代码,结合自己的理解将这些内容总结如下~ 最开始想要直观的理解请直接参考阮一峰老师博客关于继承的讲解:http://www.ruanyifeng.com/blog/20 阅读全文
posted @ 2016-12-24 11:19 叫我爱运动小姐 阅读(3913) 评论(0) 推荐(1)