
十、js运行机制-arguments对象-内存泄漏-手写map方法(2021/4/26)
发布日期:2021-05-07 05:41:02
浏览次数:19
分类:原创文章
本文共 1294 字,大约阅读时间需要 4 分钟。
这里是引用
- #谈谈JS的运行机制
- js离不开和用户的操作的
- 和用途有关
- 同一时间做同一件事情
arguments对象是什么?
// 箭头函数是没有arguments对象的 function get(){ console.log(arguments); } get(1,2,3); // arguments 是类数组对象,有数组的length但是没有数组的方法 // 类数组对象 怎么转换为数组呢? // 方法一:展开运算符... // 方法二:Array.prototype.slice.call(arguments);
为什么在调用这个函数时,代码中的b会是全局变量
function fun(){ let a = b = 0 // let a = (b = 0) //其实就是这样,b没有声明就赋值,所以是全局变量}
哪些操作会造成内存泄漏:
- 闭包
- 意外的全局变量
- 被遗忘的定时器
- 脱离dom的引用 (元素已经删除了,依然在内存中保留了对此的引用)
什么是高阶函数
- 将函数作为参数或者返回的值是函数
手动实现Array.prototype.map 方法
var arr = [1,2,3];var array = arr.map((item,index)=>{ return item*2})console.log(array);function map(arr,mapCallback) { // 检查参数是否正确 if(!Array.isArray(arr) || !arr.length || typeof mapCallback !== 'function'){ return []; }else{ let result = []; for(let i = 0; len = arr.length, i< len; i++){ result.push(mapCallback(arr[i],i,arr)) //这里本来要写 // result.push(arr[i] * 2)的,这一部分让回调函数去处理了,并且返回到这里 // (item)=>{ // return item*2; // } } return result }}var res = map(arr,(item)=>{ return item*2})console.log(res)
发表评论
最新留言
不错!
[***.144.177.141]2025年04月16日 23时56分02秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
使用Power BI构建数据仓库与BI方案
2021-05-09
Django认证系统并不鸡肋反而很重要
2021-05-09
tep用户手册帮你从unittest过渡到pytest
2021-05-09
12张图打开JMeter体系结构全局视角
2021-05-09
Spring Boot 2.x基础教程:构建RESTful API与单元测试
2021-05-09
[UWP 自定义控件]了解模板化控件(1):基础知识
2021-05-09
UWP 自定义控件:了解模板化控件 系列文章
2021-05-09
[UWP]从头开始创建并发布一个番茄钟
2021-05-09
WinUI 3 Preview 3 发布了,再一次试试它的性能
2021-05-09
使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)
2021-05-09
List数组排序
2021-05-09
VMware vSphere 离线虚拟机安装 BIND 9
2021-05-09
dojo/request模块整体架构解析
2021-05-09
Javascript定时器学习笔记
2021-05-09
dojo的发展历史
2021-05-09
Python存储系统(Redis)
2021-05-09
C语言指针收藏
2021-05-09
C#搞个跨平台的桌面NES游戏模拟器
2021-05-09
手把手教你安装Eclipse最新版本的详细教程 (非常详细,非常实用)
2021-05-09
《带你装B,带你飞》pytest成魔之路4 - fixture 之大解剖
2021-05-09