自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 【超详细】前端手写原理之实现JSON.parse

JSON.parse(text[, reviver])用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。提供可选的reviver函数用以在返回之前对所得到的对象执行变换(操作)第一种:直接调用evalfunction jsonParse(opt) { return eval('(' + opt + ')');}jsonParse(jsonStringify({x : 5}))// Object { x: 5}jsonParse(jsonStrin...

2021-10-26 13:49:48 928

原创 【超详细】前端手写原理之实现JSON.stringify

JSON.stringify(value[, replacer [, space]]):Boolean | Number| String类型会自动转换成对应的原始值。 undefined、任意函数以及symbol,会被忽略(出现在非数组对象的属性值中时),或者被转换成null(出现在数组中时)。 不可枚举的属性会被忽略如果一个对象的属性值通过某种间接的方式指回该对象本身,即循环引用,属性也会被忽略 如果一个对象的属性值通过某种间接的方式指回该对象本身,即循环引用,属性也会被忽略functi..

2021-10-26 13:46:01 327

原创 【超详细】前端手写原理之实现instanceOf

思路:步骤1:先取得当前类的原型,当前实例对象的原型链 ​步骤2:一直循环(执行原型链的查找机制) 取得当前实例对象原型链的原型链(proto = proto.__proto__,沿着原型链一直向上查找) 如果 当前实例的原型链__proto__上找到了当前类的原型prototype,则返回true 如果 一直找到Object.prototype.__proto__ == null,Object的基类(null)上面都没找到,则返回false // 实例.__ptoto__ ===..

2021-10-26 11:29:47 183

原创 【超详细】前端手写原理之实现一个深拷贝

简洁版const newObj = JSON.parse(JSON.stringify(oldObj));局限性:他无法实现对函数 、RegExp等特殊对象的克隆。 会抛弃对象的constructor,所有的构造函数会指向Object。 对象有循环引用,会报错。面试版本代码:function deepClone(obj) { // 如果是 值类型 或 null,则直接return if(typeof obj !== 'object' || obj === null)

2021-10-22 16:43:37 410

原创 【超详细】前端手写原理之实现节流函数

节流函数原理:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效例:(连续不断动都需要调用时用,设一时间间隔),像dom的拖拽,如果用消抖的话,就会出现卡顿的感觉,因为只在停止的时候执行了一次,这个时候就应该用节流,在一定时间内多次执行,会流畅很多// func是用户传入需要防抖的函数// wait是等待时间const throttle = (func, wait = 50) => { // 上一次执行该函数的时间 let lastTi..

2021-10-22 16:10:59 261

原创 【超详细】前端手写原理之实现防抖函数

防抖函数原理:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。防抖动和节流本质是不一样的。防抖动是将多次执行变为最后一次执行,节流是将多次执行变成每隔一段时间执行。例如:像仿百度搜索,就应该用防抖,当我连续不断输入时,不会发送请求;当我一段时间内不输入了,才会发送一次请求;如果小于这段时间继续输入的话,时间会重新计算,也不会发送请求。// func是用户传入需要防抖的函数// wait是等待时间const debounce = (func, wait = 50) =&g..

2021-10-22 15:59:44 202

原创 前端开发学习路线图

一、HTML5+CSS3模块HTML标签 浏览器内核差异性 H5新增标签 语义化 标签与属性 CSS基本语法规范 CSS常用选择器与技巧 CSS复合选择器 数值与单位 CSS Hack 盒子模型 媒体查询与响应式 过渡与动画 弹性盒子模型 浮动 定位 CSS高级技巧(雪碧图、滑动门和三角形绘制等) Chrome调试工具 CSS企业级应用技巧 网页常见问题解决方案 PhotoShop应用 项目实战开发流程 复杂页面的设计与排版 CSS模块化开发 CSS字体图

2021-10-22 11:07:08 602

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除