![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
文章平均质量分 58
ggmshm
前端慢慢爬
展开
-
js数组遍历方法总结与对比
数组常用遍历方法和对象遍历。原创 2021-12-01 16:01:04 · 779 阅读 · 1 评论 -
可迭代对象和类数组
快速了解可迭代对象和类数组的区别,深入理解for..of遍历原理原创 2021-12-01 11:44:05 · 479 阅读 · 0 评论 -
js预编译
总结:1.未经声明的变量归window所有,全局声明的变量为window一个属性2.三步曲,对比函数预编译仅仅缺少形参实参统一: (1)生成一个GO对象 (Global Object) GO ===window (2)找变量声明,将变量声明名作为GO属性名,值为undefined (3)找函数声明,值赋予函数体,注意不是函数表达式global = 10...原创 2019-08-07 16:15:21 · 137 阅读 · 1 评论 -
作用域与作用域链
前言:每一个函数都是一个对象,对象有一些属性仅供javascript引擎存取,[[scope]]就为其中一个隐形属性,我们称为作用域,存储了函数执行期上下文的集合,总结:执行期上下文:函数执行时,会创建一个被称为执行期上下文的内部对象(AO),每次执行都为一个独一的AO,执行完毕AO销毁 作用域:[[scope]],存储了函数执行期上下文的集合 作用域链:[[scope]]中存储...原创 2019-08-07 15:40:32 · 77 阅读 · 0 评论 -
js关于函数预编译的研究
前言:js执行过程为分为3步语法分析:通篇扫描有无语法错误 如中文符号或者缺少大括号 预编译:函数声明整体提升,变量 声明提升 解释执行总结:函数预编译为4部曲,预编译发生在函数执行的前一刻1.创建 AO 对象2.找形参和变量声明,将形参和变量作为AO属性名,值为undefined3.将实参值和形参统一4.在函数体里面找函数声明,值赋予函数体举例解...原创 2019-08-07 11:41:45 · 155 阅读 · 0 评论 -
对象枚举以及判断数组与对象的3种方法
1.属性的表示方法obj.prop obj.["prop"]实际内部原理,obj.prop会隐式转换为obj.["prop"]2.对象枚举方法for in: prop in obj hasOwnProperty():obg.hasOwnProperty(prop) in:prop in obj instanof:A instanceof Bfor in:打印自己的属性以及自...原创 2019-08-09 13:06:52 · 449 阅读 · 0 评论 -
js --- 面向对象之原型与原型链
前言:每个构造函数(constructor)都有一个原型对象(prototype),原型对象都包含一个指向构造函数的指针,而实例(instance)都包含一个指向原型对象的内部指针.原型定义:Person.prototype原型是function对象的一个属性,它定义了构造函数产生的对象的公共祖先。 通过构造函数产生的对象,可以继承该原型的属性和方法。 原型也是对象。 利用原型的...原创 2019-08-09 08:52:44 · 105 阅读 · 0 评论 -
js的变量类型判断和类型的转换
Number(mix):mix转换为数字 Number(null)结果为0parseInt(string):将数字转为整数parseFloat(string):将数字转为浮点数toString(radix):转为字符串 undefined和null不能用tostringString(mix):mix转为字符串Boolean():转为布尔型隐形类型转换 : isNaN(),++...原创 2021-04-13 19:30:56 · 303 阅读 · 1 评论 -
闭包问题
前言:了解闭包先要了解的知识点 js的作用域:在js中 函数内部可以读取全局变量,函数外部无法读取函数内部的变量。 作用域销毁:只是切断函数与AO的链接,并不是真实销毁AO的存在总结:闭包是什么:内部函数被保存到外部时,生成闭包 闭包缺点:闭包会导致原有作用域链不释放,造成内存泄漏 闭包用处:实现公有变量 ;实现缓存;实现封装,属性私有化;模块化开发,防止污...原创 2019-08-08 13:14:45 · 338 阅读 · 0 评论 -
js----函数之立即执行函数
立即执行函数会被立即执行总结:针对初始化功能的函数, 只有表达式才能被执行符号执行 执行后被清除 可以传参,可以有返回值写法:(function (){}()) //w3c建议//或者(function (){})()//带参数 有返回值var num = (function (a,b){ console.log(a+b)}(123,123))...原创 2019-08-08 13:10:29 · 110 阅读 · 0 评论