JavaScript常用方法封装1.0
发布日期:2021-05-11 00:26:18 浏览次数:17 分类:精选文章

本文共 1959 字,大约阅读时间需要 6 分钟。

技术函数参考手册

以下是一些常用 JavaScript 技术函数的实现与应用方法,供开发人员作为参考:

1. 数据类型判定

通过 Object.prototype.toString.call() 方法可以精确判断某个变量的数据类型。

2. 数组去重

  • 方法一:使用 Set 结合数组解析,快速获取唯一元素。
  • 方法二:逐个检查元素是否已存在于结果数组中。
  • 方法三:基于 indexOf 查看元素是否存在,逐一添加新元素。

3. 字符串去重

可以通过在字符串中遍历每个字符,逐个添加到结果字符串中,避免连续重复字符。

4. 深拷贝与浅拷贝

  • 深拷贝:对对象和数组进行递归复制,确保所有嵌套的对象和数组被完整复制。
  • 浅拷贝:直接复制对象或者数组的引用,不处理内部的对象和数组。
  • 常用方法:使用 JSON.parse(JSON.stringify()) 来实现快速深拷贝,但需注意函数不会被复制。

5. 数组反转

通过循环交换数组中相应位置的元素来实现反转效果。

6. 继承与圣杯模式

  • 圣杯模式:通过函数的 prototype 属性指定构造函数和原型链,实现多式继承。
  • 模式示例:定义一个发射器函数,继承指定原型链,并处理构造函数和原型链的关系。

7. 字符串首次出现字母

遍历字符串,记录每个字母出现的次数,找出出现次数为一次的字母。

8. 父元素查找

通过循环调用 parentElementparentNode 来逐步向上查找到指定层数的父元素。

9. 兄弟节点获取

根据事件和节点的相对位置,逐步遍历获取到指定的兄弟节点。

10. 代替 getChildren 方法

遍历节点,筛选出类型为 1 的子节点,解决浏览器兼容性问题。

11. 检查节点是否有子节点

遍历子节点,确认是否存在类型为 1 的子节点。

12. 元素插入

通过判断下一个兄弟节点是否存在,决定插入的位置,可是 insertBeforeappendChild 方法。

13. 获取当前时间

构造日期对象,格式化输出年、月、日、时、分、秒。

14. 滚动条滚动距离

通过 window.pageXOffsetscrollLeftscrollTop 获取滚动距离。

15. 视口尺寸获取

检查 window.innerWidth 是否存在,否则使用 document.body.clientWidthdocument.documentElement.clientWidth

16. 获取元素属性

使用 getComputedStyle 获取元素的样式属性,适用于跨浏览器兼容。

17. 事件绑定与解绑

支持所有主流浏览器的事件绑定方法,处理事件传播。

18. 只防止事件冒泡

调用 stopPropagation 或设置 cancelBubble 避免事件向上冒泡。

19. 回文检测

对字符串进行处理,去除非字母数字,比较字符串前后半部分。

20. getElementsByClassName

实现通过类名获取所有匹配元素,解决浏览器差异问题。

21. 动画效果

基于CSS的逐步变换,确保浏览器兼容性。

22. 异步加载脚本

通过创建脚本标签,动态插入到页面中,控制加载顺序。

23. 字件管理

提供设置、移除、获取 cookie 的方法,确保浏览器兼容。

24. 函数绑定

实现类似 JavaScript 的 bind 方法,灵活控制函数执行环境。

25. 防抖动与节流

控制函数执行频率,避免过于频繁地发送事件。

26. 请求动画帧

实现跨浏览器的动画请求,确保流畅运行。

27. 取消动画帧

适用于需要中停止动画流程的情况。

28. JSONP 加载

通过创建脚本标签,异步加载外部 JavaScript 文件。

29. URL 参数获取

解析URL中的查询参数,返回字典结构。

30. 数组排序

基于快速排序和冒泡排序实现,选择适用于内存的排序方法。

31. DOM 树遍历

递归遍历所有节点及其后代元素,适用于广泛的访问操作。

32. 原生 AJAX

实现基本的 AJAX 请求,适用于跨页面数据获取。

33. 异步脚本加载

实现 controller-like 的异步加载方式,确保依赖加载顺序。

提供cookie的设置、移除、获取功能,支持跨浏览器操作。

35. 函数柯里化

灵活处理函数参数,支持多种应用场景。

36. 大数相加

处理大整数相加,确保精度和正确性。

37. 单例模式

确保 Singleton 实例的创建,避免多次创建同一实例。

这些函数实现涵盖了 JavaScript 开发中常见的技术难点,能够帮助开发人员高效解决问题并优化代码执行。希望对您有所帮助!

上一篇:手写常用JavaScript1.0
下一篇:Node

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月28日 08时00分59秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

2025版最新一文彻底搞懂大模型 - Agent(非常详细)零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新关于HW护网行动的一些知识,零基础入门到精通,收藏这篇就够了 2025-03-30
(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取) 2025-03-30
2025版最新大模型学习路线,零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了 2025-03-30
(干货)数据分析案例--以上海二手房为例 2025-03-30
(大部分安卓手机通用)一加OnePlus Ace3扬声器优化教程 外放直接媲美苹果 2025-03-30
2025版最新大模型微调方法(非常详细)零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新大模型算法岗位薪资指南,零基础入门到精通,收藏这一篇就够了 2025-03-30
2025版最新大语言模型的指令微调,零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新小白学习大模型:什么是大模型?零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新常用黑客工具之【Nmap 教程基础】零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新开发一款大模型需要经过哪些步骤?开发一款大模型的完整流程,收藏这篇就够了 2025-03-30
$.inArray函数判断数组中的是否包含字符串 2025-03-30
2025版最新渗透测试和黑客工具列表,零基础入门到精通,收藏这一篇就够了 2025-03-30
2025版最新网络安全入门书籍整理大全,零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新网络安全知识入门及学习流程(非常详细)零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新网络安全等级保护测评指南,零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新运维怎么转行网络安全?零基础入门到精通,收藏这篇就够了 2025-03-30
2025版最新黑客学习网站(非常详细),零基础入门到精通,看这一篇就够了 2025-03-30