十、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)
上一篇:十一、js事件循环机制(2021/4/26)
下一篇:九、js闭包实现单例模式、es6单例模式(2021/4/25)

发表评论

最新留言

不错!
[***.144.177.141]2025年04月16日 23时56分02秒