![](https://img-blog.csdnimg.cn/182ff36eecd34037b903c32f7507f823.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JS
文章平均质量分 62
个人前端JS感悟心得
rinba_murphy
前端开发程序员
展开
-
JavaScript实现浮点数计算
JavaScript 中的数字类型采用的是 IEEE 754 标准的双精度浮点数表示法,即 64 位二进制格式。由于浮点数在二进制中的表示方式有限,有些十进制小数无法精确转换为二进制表示。这就导致了某些小数在计算机内部以近似值进行存储,从而引发了精度问题。原创 2023-12-05 13:22:11 · 819 阅读 · 0 评论 -
CSRF跨站请求伪造、XSS跨站脚本攻击
XSS属于客户端攻击,受害者最终是用户。攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。CSRF通常从第三方网站发起,被攻击的网站无法防止攻击发生,只能通过增强自己网站针对CSRF的防护能力来提升安全性。跨站请求可以用各种方式:图片URL、超链接、CORS、Form提交等等。原创 2023-12-05 12:36:51 · 406 阅读 · 0 评论 -
对比CommonJS、AMD、CMD、ES6模块
CommonJS通过 require 来引入模块,通过 module.exports 定义模块的输出接口。是服务器端(Node.js)的解决方案,它是以同步的方式来引入模块的,因为在服务端文件都存储在本地磁盘,所以读取非常快,所以以同步的方式加载没有问题。但如果是在浏览器端,由于模块的加载是使用网络请求,因此使用异步加载的方式更加合适。原创 2023-12-05 12:33:07 · 375 阅读 · 0 评论 -
JavaScript实现快速排序、归并排序、堆排序
快速排序(Quick Sort):通过选择一个基准元素,将数组划分为左右两个子数组,左边的元素小于等于基准,右边的元素大于基准,然后递归地对左右两个子数组进行快速排序,直到排序完成原创 2023-12-05 12:24:50 · 431 阅读 · 0 评论 -
JavaScript实现冒泡排序、插入排序、选择排序
冒泡排序(Bubble Sort):通过相邻元素的比较和交换来将最大的元素逐步冒泡到数组末尾,重复这个过程直至排序完成。平均情况时间复杂度:O(n^2)插入排序(Insertion Sort):将数组分为有序区和无序区,每次从无序区取出一个元素,插入到有序区中的正确位置,直到无序区为空为止。O(n^2)选择排序(Selection Sort):将数组分为已排序部分和未排序部分,每次从未排序部分选择最大的元素,放到已排序数组部分的末尾,重复这个过程直至排序完成。O(n^2)原创 2023-12-05 12:20:02 · 342 阅读 · 0 评论 -
JavaScript事件、事件流、事件监听器、event、事件委托
JavaScript 与 HTML 之间的交互是通过事件实现的。事件是文档或浏览器窗口中发生的一些特定的交互瞬间。可以使用事件监听器来预定事件,以便事件发生时执行相应的代码。事件流是从页面中接收事件的顺序。DOM事件流规范规定事件流分为 3 个阶段:事件捕获阶段:事件从上往下查找对应元素,直到捕获到事件。到达目标阶段:到达目标元素后执行事件对应的处理函数。事件冒泡阶段:事件从目标元素开始冒泡。原创 2023-12-05 12:14:09 · 1184 阅读 · 0 评论 -
JavaScript闭包(超详细)
一个函数和对其周围状态(词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。其实和高阶函数的定义差不多,常见的闭包:将函数作为另一个函数的返回值将函数作为实参传递给另一个函数调用。原创 2023-12-05 12:06:47 · 395 阅读 · 0 评论 -
JavaScript实现模态框
获取模态框所在的元素,为控制模态框的按钮添加 onclick事件 / window.onload= function(){ }事件,在函数体中使用 modal.style.display= ‘block’或‘none’ 控制模态框的打开、关闭和反馈提交的逻辑。使用position:absolute 定位将其放在容器上方,使用top、left、transfrom将其居中,不设宽高,由content(HTML元素)将盒子撑开+padding+border。定义了模态框的结构,并包括一个按钮来触发模态框的显示。原创 2023-12-05 12:01:57 · 847 阅读 · 0 评论 -
JavaScript真实DOM和虚拟DOM(超详细)
网页加载时,浏览器解析 HTML 代码生成真实DOM,每个真实 DOM 都有对应的 JavaScript 对象表示。虚拟 DOM 基于 MVC模型,使视图和模型分离,是一个用 JavaScript 对象来表示真实 DOM 的轻量级副本。Vue和React 使用虚拟 DOM 来提高页面渲染性能。当数据发生变化时,Vue 首先会基于新数据生成新的虚拟 DOM 树,然后通过 diff 算法比较新旧虚拟 DOM 树的差异,并将差异部分应用到真实 DOM 上,从而实现局部更新而非整体更新。原创 2023-12-05 11:59:31 · 567 阅读 · 0 评论 -
JavaScript数据类型转化(数字——字符串——数组)
数字——字符串——数组三种数据类型的转化中,字符串是桥梁。String对象的split('')中的参数是更改前的字符,更改后数组默认是逗号分隔;Array对象的join('')中的参数是更改后的字符,更改前数组默认是逗号分隔。原创 2023-12-05 11:55:23 · 344 阅读 · 0 评论 -
JavaScript 错误和异常
错误(Error)一般是在代码运行前出现的。在运行程序之前,JavaScript 解释器会先对代码进行检查,如果代码有误,例如某些语法错误,浏览器就会报出相应的错误,只有将错误修正后,代码才能运行。JavaScript 中支持以下几种错误类型:异常(Exception)(也被称为运行时错误),是在代码运行中出现的,例如调用未定义的方法、读取不存在的文件等,在出现异常之前,代码的运行并不受影响,当出现异常时,会在浏览器控制台输出错误信息,并终止程序的运行。原创 2023-11-29 19:24:06 · 798 阅读 · 0 评论 -
TypeScript枚举(超详细)
枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。TS枚举的灵感来源于C#原创 2023-11-13 21:37:38 · 642 阅读 · 0 评论 -
indexOf()、lastIndexOf()、findIndex()的区别
indexOf(),查找第一个索引。用法是arr.indexOf(searchElement[, fromIndex = arr.length - 1]),返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。默认从数组的前面向后查找,如果有第二个参数则从 fromIndex 处开始查找。原创 2023-09-06 11:11:29 · 677 阅读 · 1 评论 -
JavaScript的 for...in...、for...of...区别
for...in...用于遍历对象的可枚举属性。它会迭代对象中的每个属性,并且会迭代原型链上的属性。可枚举是用来描述对象的属性是否可以通过遍历枚举出来的特性。如果一个属性被标记为可枚举,那么它可以在某些操作中被遍历或迭代到。原创 2023-09-01 21:47:37 · 62 阅读 · 1 评论 -
Proxy对象(超详细)
Proxy对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)原创 2023-08-20 23:19:49 · 966 阅读 · 1 评论 -
Promise对象(超详细)
Promise是异步编程的一种解决方案,比回调函数和事件更合理且更强大。可以理解为一个容器,里面保存着某个未来才会结束的事件的结果原创 2023-08-20 22:54:59 · 609 阅读 · 1 评论