摘要:
闭包 之前在我执行上下文执行上下文栈这篇文章中,出现了这样一个题目 for (var i=0; i<10; i++){ setTimeout( ()=>{ console.log(i) // 猜猜结果 }, 2000 ) } 题目答案是: 大约2s后输出10个10 引发这个问题的原因恰恰就是因为va 阅读全文
摘要:
作用域与作用域链 作用域 作用域简单来说就是: 变量或函数在哪些范围内可以用,而在其他部分要用就得重新定义 作用域与this指向的状态是不一样的: 作用域的范围是静态的,在代码编写的时候就已经确定 this的指向则是动态的,随着调用对象的不同而改变 作用域与执行上下文的不同 作用域是静态的,代码编写 阅读全文
摘要:
执行上下文与执行上下文栈 变量提升与函数提升 变量提升 通过var关键字申明的变量,能够在定义语句之前访问到,值为undefined console.log(a) // undefined var a = 'Fitz' // 以上代码的真正过程是: var a console.log(a) a = 阅读全文
摘要:
特殊的name属性 今天在学习变量提升与函数提升遇到了这样一个问题,在进行变量提升的代码测试的时候,我习惯性的使用我常用的变量申明 // 变量提升测试 console.log(name) // 根据所学的变量提升的知识,我原本以为输出的结果是undefined var name = 'Fitz' / 阅读全文
摘要:
尝试重新认识instanceof 不少人应该都知道instanceof运算符的作用是检测 对象A 是否是 对象B 的实例, 即: A instanceof B 但你们知道instanceof是依照什么来判断的吗? 答案是: 原型链 如果A对象能够通过原型链到达B对象,instanceof就会返回tr 阅读全文
摘要:
this的指向详细剖析 function Person (color){ console.log(this) this.color = color this.getColor = function () { console.log(this) console.log(this.color) } th 阅读全文
摘要:
函数的详细剖析 什么是函数 是多条语句或表达式的封装体,用于实现特定功能,能够执行(调用) // add是一个函数 function add (){ var a = 1 // 语句 a = a + 1 // 表达式 return a // 语句 } 为什么使用函数 提高代码的复用性,体现封装的思想 阅读全文
摘要:
对象的详细剖析 什么是对象 多对变量名与变量值组成的集合 var obj = { name: 'Fitz', age: 20 } 为什么要使用对象 更好的管理相关联的多组数据 // 使用对象管理 学生Fitz的个人信息 var Fitz = { name: 'Fitz', age: 21, majo 阅读全文
摘要:
数据、内存、变量的概念及三者之间的关系 什么是数据 数据就是存储在内存中代表特定信息的东西,这个东西本质上就是许多个0和1组成的 数据的特点 可传递 var a = 123 var b = 123 可运算 var a = 123 a += 1 什么是内存 内存是电脑硬件中的内存条在通电后产生的可以用 阅读全文