- 博客(23)
- 收藏
- 关注

原创 如何裁剪图片
工作中需要进行裁剪图片,便百度了一下,我在这里有一个可行的方法,在这里展示出来,下面是代码:html:DOCTYPE html>html lang="en">head>meta charset="UTF-8">title>zimu canvas croptitle>scriptsrc="jquery.min.js">/script>sty
2018-02-01 17:58:09
279
原创 ts类型断言各种写法
在这个例子中,我们首先将 `NodeList` 断言为 `NodeListOf`,然后在回调中再次断言 `entry.target` 是 `HTMLImageElement` 类型,这样 TypeScript 就知道我们正在处理的是图片元素,并且可以访问它们的属性和方法。- **非空断言**:对于可能是 `null` 或 `undefined` 的值,你可以使用后缀 `!如果变量的类型是一个联合类型,并且你知道它在某个时刻的具体类型,可以使用 `as` 来缩小类型范围。
2025-01-15 17:12:50
351
原创 编程范式和设计模式的区别与联系
**实现细节**:设计模式的具体实现往往依赖于所采用的编程范式。- **编程范式**:是一种编程思想或方法论,它定义了如何组织程序结构的基本原则和技术。- **设计模式**:更多地用于解决局部问题,特别是在面对某些特定的设计挑战时,如对象创建、对象组合、行为分派等方面。- **设计模式**:可以根据需要灵活地应用于不同部分的代码,甚至在同一项目中根据具体情况多次使用不同的模式。- **编程范式**:适用于整个项目或者系统的开发过程,从一开始就需要选择合适的范式来指导项目的整体设计。
2025-01-09 15:29:29
705
原创 js 面对切面编程解析
然而,JavaScript 的灵活性允许我们使用装饰器、高阶函数、代理(Proxy)、以及库或框架提供的功能来模拟 AOP 行为。无论是通过装饰器、高阶函数、`Proxy` 还是框架特定的方式,都可以有效地管理横切关注点,使代码更加模块化、易于维护和扩展。ECMAScript 提出了对类和方法的装饰器的支持,虽然它目前还不是标准的一部分,但在许多现代 JavaScript 环境中可以使用 Babel 或 TypeScript 来转译装饰器语法。通过高阶函数,可以在不修改原始函数的情况下为其添加新的行为。
2025-01-09 15:22:42
428
原创 怎么理解算法
**分治法**(Divide and Conquer):将问题分解成若干个较小的问题,递归地解决这些子问题,最后合并结果。- **时间复杂度**:衡量算法运行所需的时间,通常用大O符号表示,如 O(n)、O(log n) 等,其中n代表输入规模。- **动态规划**(Dynamic Programming):通过记住已经解决的子问题的答案,避免重复计算,从而优化效率。- **可扩展性**:良好的算法设计能够支持更大的数据集或更复杂的业务逻辑。- 有效性:所有操作都是基本的,即可以在合理的时间内完成。
2025-01-09 10:22:15
377
原创 编程范式、设计模式和算法之间的关系
2. **设计模式作为桥梁**:设计模式连接了编程范式与算法,它们提供了结构化的解决方案,使算法能够更好地适应特定的编程环境,并提高代码的质量。编程范式、设计模式和算法是软件开发中的三个重要概念,它们各自关注不同的方面,但又相互关联,共同影响着程序的设计和实现。1. **编程范式作为背景**:编程范式设定了整体的编码风格和技术选择,这直接影响了我们可以使用的算法类型和设计模式的应用方式。3. **算法作为核心**:无论采用何种编程范式或设计模式,最终都是为了有效执行算法,即解决问题的具体逻辑。
2025-01-09 10:21:25
598
原创 h5设置老年字体模式
虽然H5无法直接获取用户的系统字体大小设置,但通过上述方法可以间接估计用户的字体偏好,并相应地调整页面的字体大小。希望这些方法对你有帮助!如果你有更多问题或需要进一步的帮助,请随时告诉我。
2024-11-20 10:42:21
761
原创 js 事件循环
4. **微任务(Microtasks)**:微任务包括 `Promise` 回调、`MutationObserver`、`process.nextTick`(Node.js 特有)等。2. **任务队列(Task Queue)**:任务队列是一个先进先出(FIFO)的队列,用于存储宏任务(Macrotasks)和微任务(Microtasks)。2. **执行所有微任务**:在当前宏任务执行完毕后,事件循环会检查微任务队列,并依次执行所有的微任务。- 在所有微任务执行完毕后,浏览器会进行一次渲染更新。
2024-11-19 16:45:52
422
原创 javascript 精华
JavaScript作为一种多功能的编程语言,在现代Web开发中扮演着核心角色。其基础概念,如变量、数据类型、运算符、控制结构、函数、事件和事件处理,构成了开发复杂应用的基石。掌握这些基础知识对于任何希望在Web开发领域取得成功的开发者来说都是必要的。
2024-11-19 16:35:43
965
原创 web workers 解析
3. **Service Worker**:一种特殊的 Web Worker,主要用于处理网络请求和推送通知等高级功能。1. **Dedicated Worker**:专用工作线程,每个工作线程只能被一个生成它的脚本使用。- 使用 `new Worker('worker.js')` 创建一个新的 Worker。- 主线程通过 `worker.postMessage(data)` 向工作线程发送消息。2. **Shared Worker**:共享工作线程,可以被多个脚本共享。
2024-11-19 16:08:07
417
原创 gzip 压缩
大多数现代 Web 服务器(如 Nginx、Apache)都可以自动处理 gzip 压缩。你只需要在服务器配置中启用 gzip 压缩,然后在 HTML 中直接引用普通的 JavaScript 文件路径。),通常有两种方法:一种是让服务器自动处理 gzip 压缩,另一种是手动处理。要在 HTML 页面中访问经过 gzip 压缩的 JavaScript 文件(例如。如果你希望手动处理 gzip 压缩文件,可以在 HTML 中直接引用。:现代浏览器通常都支持 gzip 压缩,但确保客户端请求头中包含。
2024-11-15 15:50:50
607
原创 编程范式概览
编程范式(Programming Paradigm)是指编程语言中的一组规则和约定,用于指导如何组织和编写程序。不同的编程范式强调不同的编程风格和技术,每种范式都有其独特的优势和适用场景。- **函数式编程(Functional Programming)**:强调使用纯函数和不可变数据。- 控制流:使用条件语句(如 `if`、`switch`)和循环语句(如 `for`、`while`)来控制程序的执行流程。- **逻辑编程(Logic Programming)**:强调逻辑推理和规则匹配。
2024-11-14 10:36:41
553
原创 2020-07-30
在前端开发中,经常需要绑定一些持续触发的事件,如resize、scroll、mousemove等等,但有些时候并不希望在事件持续触发的过程中那么频繁地去执行函数。前几天面试虾皮信息科技的秋招面试,让我明白了,任何东西都不能靠死记硬背,一定要加以理解,这样背出来来的东西没有意义不说,而且也不会记得深刻。其中,面试问了我一个关于节流和防抖的问题,其实这个问题在面试之前我也有准备,但是在面试的时候,回答的总是模糊不清,就像是在背答案一样。所以我决定做任何事情一定要明白其原理。
2020-07-30 17:35:50
141
原创 vue.js更改class
最近在学习vue.js,感觉这是个很强大的web前端插件,由于业务需要,编编需要更改class,代码如下:DOCTYPE html>htmllang="en">head>metacharset="UTF-8">title>classtitle>scriptsrc="https://cdn.bootcss.com/vue/2.2.2/vue.min
2018-02-02 15:33:41
3609
原创 vue.js vue-router事例
最近在学习vue.js,感觉它改变了我以前的代码习惯,他就想另一种语言一样,vue-router是vue.js的一个重要拓展,简单的事例代码如下:DOCTYPE html>html>head>title>title>metacharset="utf-8">scriptsrc="http://unpkg.com/vue/dist/vue.js">/
2018-02-02 15:18:35
216
原创 html在画布中添加图片
最近看了一下画布的功能,画布作为html5的新功能还是蛮强大的,画布中还能增加图片,代码如下:DOCTYPE html>html>body>canvasid="myCanvas"width="200"height="100"style="border:1px solid #c3c3c3;">Your browser does not suppor
2018-02-02 14:56:25
7571
原创 ajax原生请求
ajax请求不用刷新页面,比form提交要好不少,ajax的插件也很多,最近百度了一下ajax源码,源码很简单,但他却很实用,代码如下:Doctype html>html>head>metacharset='utf-8'>script>functionload() {varxmlhttp;if (window.XMLHttpRequest
2018-02-02 11:00:24
207
原创 ajax原声请求
ajax是一种不加载页面的请求方式,编编最近看了一下,代码如下: DOCTYPE html>html>head>metacharset="utf-8">script>functionloadXMLDoc() {varxmlhttp;if (window.XMLHttpRequest) {// IE7+, Firefox, Chrome
2018-02-01 18:12:17
341
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人