详解call、apply、bind方法 call、apply、bind这三个方法都可以显式的指定调用函数的this指向,那么这三个方法会有什么区别呢?本文将会进行详细讲解,通过本文你将学习到如何使用这三个方法,以及这三种方法的源码是怎么实现的。
详解ajax、fetch、axios的区别 众所周知它们都用来发送请求,其实它们区别还蛮大的。这也是面试中的高频题,本文将详细讲解。学完本文你将收获到:1.如何封装一个Ajax,2.如何使用fetch方法,3.如何在项目中封装axios请求,4.它们之间的区别
JavaScript——this指向问题详解 非严格环境下,全局下的this指向window, 而在严格环境下是undefined。setTimeout等都是挂载在window下的,因此setTimeout中的this,不管怎么写都指向window
Web常用的编码和解码技术 URI指的是统一资源标识符(Uniform Resource Locator),它是用来标识和定位互联网上的资源(如网页、图片、文档等)的一种标识方式,它是一个广义的概念,如我们常用的URL就属于URIURL能够定位给到互联网上的某个资源的位置。URL:用于标识和定位互联网上的资源的位置。它包括了资源的地址和访问方式,以确保资源能正常被定位和检索。通常由以下6部分组成。协议protocol:指定了资源的访问方式,常见的协议包括HTTPHTTPSFTPmailtofile等。域名(也叫主机名)Host。
计算机基础——原、反、补码与位运算 补码在反码的基础上,解决了零表示不唯一的问题,还增加了一个负数的一个表示范围(计算机字长为8位的原码或反码的表示范围为`[-127, +127]`,而补码`[-128, 127]`)
前端实现埋点&监控 埋点可以帮助企业更好地了解用户需求和行为习惯,优化运营并预测趋势,具有重要的意义,常见的埋点包括:pv【PageView】上报(包括history上报、hash上报)、uv【UserView】上报、dom事件上报、js报错上报(包括常规错误上报、Promise报错上报),通过这篇文章你可以学习到:前端埋点&监控、区分js模块化、打包工具rollup、API之History、JS二进制、sendBeacon发送post请求等知识。
JavaScript——new关键字详解 new的原理如下:1. 第一步:创建一个空对象,作为将要返回的对象。2. 第二步:将这个空对象的原型指向构造函数的`prototype`属性,也就是将对象的`__proto__`属性指向构造函数的`prototype`。**【让对象能沿着原型链去使用构造函数中`prototype`上的方法】3. 第三步:**将这个空对象赋值给构造函数内部的`this`关键字,执行构造函数。**【让构造器中设置的属性和方法设置在这个对象上】4. 第四步:返回这个对象
nodejs进阶 npm是Node Package Manager(Node.js包管理器)的缩写,是Node.js社区最流行的包管理工具之一。它不仅提供了包管理的功能,还提供了发布和共享代码、管理依赖、版本控制等功能,可以帮助开发者更方便地开发和分享代码。npm可以用来从全球的代码库中获取并安装Node.js模块,这些模块可以用于构建应用程序、工具和包等。开发者可以通过npm来搜索、安装、更新和卸载各种Node.js模块。
canvas基础教学 Canva是一个可以使用脚本(通常是JavaScript)来绘制图形的HTML元素,例如,它可以用于绘制图表、制作图片构图或者制作简单的动画。本篇博客从一些就基础开始,描述了如何使用元素来绘制2D图形。看起来和元素很相像,与的不同就是它没有和属性,并且元素需要结束标签。实际上,标签只有两个属性和,这两个属性是可选的,当没有设置宽高时,会初始化宽度为300像素和高度为150像素,另外也可以使用来定义宽高,但在绘制时图像会伸缩以适应它的框架尺寸:如果的尺寸与初始化画布的比例不一致,它会出现扭曲。注意:如果你绘制
数据结构——堆 堆是一种特殊的树,满足如下条件:完全二叉树:除了最后一层,其他层节点个数都是满的,最后一层的节点都集中在左侧连续位置。堆中每一个节点的值都必须大于等于(或小于等于)其左右节点的值。堆和二叉搜索树的区别是:二叉搜索树的要求更为严格,它要求某个节点大于(小于)左侧节点小于(大于)右侧节点,而堆只要求某个节点大于(小于)左右两侧节点即可,因此同一组数据可以构建多种不同形态的堆。堆是完全二叉树,因此大部分时候使用数组来存储堆。如上图,我们使用来表示数组长度,表示当前节点,我们可以总结出如下规律:堆化指的是对数组元素
前端面试——JavaScript面经(持续更新) 本文记录为了面试而总结的JavaScript面经,其中包括JavaScript用哪些数据类型、它们有什么区别、判断数组的方式有哪些?、null和undefined有什么区别?等等
JavaScript——数据类型判断方法汇总 本文介绍JS的4种类型判断的方法并封装一个判断类型是否相等的函数,判断方法包括typeof、instanceof、constructor和Object.prototype.toString.call()四种。
前端面试——CSS面经(持续更新) 重排(回流):当增加或删除dom节点,或者给元素修改宽高时,会改变页面布局,那么就会重新构造dom树,然后再次渲染。重绘:计算好盒模型的位置,大小和其他一些属性之后,浏览器就会根据每个盒模型的特性进行绘制。浏览器的渲染机制:当dom的大小,位置发生改变时进行重排,当dom的样式如改变时进行重绘。网格布局笔记:网格布局表格布局可以看下面代码:结果如下::独占一行,宽度继承至父盒子,多个元素会另起一行,可设置宽高以及和属性。:元素不会独占一行,宽度、高度由内容撑开,不可设置宽高,但可以设置水平方向的和。:行内
Canvas—从入门到案例实现 canvas是一个可以使用脚本(通常是JavaScript)来绘制图形的HTML元素,通过本篇博客,你将学习到canvas的基本使用,并且本文会通过两个综合案例实践练习canvas。