- 数组去重方法老生常谈,既然是常谈,我也来谈谈。 也许我们首先想到的是使用 indexOf 来循环判断一遍,但在这个方法之前,让我们先看看最原始的方法: var array = [1, 1, '1', '1']; function unique(array) { // res用来存储结果 var res = []; for (var i = 0, arrayLen... 数组去重方法老生常谈,既然是常谈,我也来谈谈。 也许我们首先想到的是使用 indexOf 来循环判断一遍,但在这个方法之前,让我们先看看最原始的方法: var array = [1, 1, '1', '1']; function unique(array) { // res用来存储结果 var res = []; for (var i = 0, arrayLen...
- break 语句用于跳出循环。 continue 用于跳过循环中的一个迭代。 break 语句可用于跳出循环。 break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话): continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。 代码: <!DOCTYPE html><html> <head> <m... break 语句用于跳出循环。 continue 用于跳过循环中的一个迭代。 break 语句可用于跳出循环。 break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话): continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。 代码: <!DOCTYPE html><html> <head> <m...
- 背景: JavaScript 数据类型 在 JavaScript 中有 6 种不同的数据类型: string number boolean object function symbol 3 种对象类型: Object Date Array 2 个不包含任何值的数据类型: null un... 背景: JavaScript 数据类型 在 JavaScript 中有 6 种不同的数据类型: string number boolean object function symbol 3 种对象类型: Object Date Array 2 个不包含任何值的数据类型: null un...
- 当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript。而面对泛滥的JavaScript在线学习资源,却是很难找到一份高效而实用的方法去学习这个“web时代的语言”。有一点需要注意,几年前我们需要知道一个真正的服务器端语言(比如PHP,Rails,Java,Python 或者 Perl)去开发可扩展,动态的,数据库驱动的web应用,而现在只用Jav... 当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript。而面对泛滥的JavaScript在线学习资源,却是很难找到一份高效而实用的方法去学习这个“web时代的语言”。有一点需要注意,几年前我们需要知道一个真正的服务器端语言(比如PHP,Rails,Java,Python 或者 Perl)去开发可扩展,动态的,数据库驱动的web应用,而现在只用Jav...
- 取出数组中的最大值或者最小值是开发中常见的需求 最原始的方法,莫过于循环遍历一遍: var arr = [6, 4, 1, 8, 2, 11, 23]; var result = arr[0];for (var i = 1; i < arr.length; i++) { result = Math.max(result, arr[i]);}console... 取出数组中的最大值或者最小值是开发中常见的需求 最原始的方法,莫过于循环遍历一遍: var arr = [6, 4, 1, 8, 2, 11, 23]; var result = arr[0];for (var i = 1; i < arr.length; i++) { result = Math.max(result, arr[i]);}console...
- 一、安装koa 在安装完成node.js 之后 执行如下命令 全局安装koa cnpm install koa-generator -g koa2 -h 命令 列出koa 命令的帮助文档 二、创建 koa项目 koa2 peojectname 生成的项目 目录: &... 一、安装koa 在安装完成node.js 之后 执行如下命令 全局安装koa cnpm install koa-generator -g koa2 -h 命令 列出koa 命令的帮助文档 二、创建 koa项目 koa2 peojectname 生成的项目 目录: &...
- 文章目录 1.窗体事件2.鼠标事件3.键盘事件5.常用事件方法(包括窗口事件,鼠标事件,键盘事件,文本事件)6.事件冒泡和事件捕捉 JS事件指再浏览器窗体或者HTML元素上发生的,乐意触发JS代码块运行的行为,下面,我们一起来看看相关事件。 1.窗体事件 例如 onload事件:当页面完全加载完成之后(包括图像,js文件,css文件等)... 文章目录 1.窗体事件2.鼠标事件3.键盘事件5.常用事件方法(包括窗口事件,鼠标事件,键盘事件,文本事件)6.事件冒泡和事件捕捉 JS事件指再浏览器窗体或者HTML元素上发生的,乐意触发JS代码块运行的行为,下面,我们一起来看看相关事件。 1.窗体事件 例如 onload事件:当页面完全加载完成之后(包括图像,js文件,css文件等)...
- 本文来自于 安卓逆向与JavaScript逆向组合课 中的 第六课,略有修改。 JavaScript逆向技术选型 众所周知,在确定了逆向目标之后,就要思考如何选型逆向使用的方案,在JavaScript中通常可以分为三种: 破解方案 适用场景  ... 本文来自于 安卓逆向与JavaScript逆向组合课 中的 第六课,略有修改。 JavaScript逆向技术选型 众所周知,在确定了逆向目标之后,就要思考如何选型逆向使用的方案,在JavaScript中通常可以分为三种: 破解方案 适用场景  ...
- 在还原部分著名的 obfuscator 混淆代码后,会遗留类似下面这样的代码: if ("jZPVk" !== "boYNa") { var _0x115fe4 = _0x46f96b ? function() { var _0x42130b = { "mLuUC": "2|1|5|0|4|3" }; if ("esUCW" !== "YVaOc") { ... 在还原部分著名的 obfuscator 混淆代码后,会遗留类似下面这样的代码: if ("jZPVk" !== "boYNa") { var _0x115fe4 = _0x46f96b ? function() { var _0x42130b = { "mLuUC": "2|1|5|0|4|3" }; if ("esUCW" !== "YVaOc") { ...
- 在经过一些AST处理后的混淆代码,会有一些变量或者函数显得多余,因为还原后,没有其他的代码来使用它们。作为一个有代码洁癖的人,怎么能容忍这样的垃圾代码横行霸道,显得格外刺眼。因此,除之而后快。 删! 删! 删! 统统删掉。作为一个会编程的人,手动一个个删,似乎有点掉价。 那不如来写个插件,一劳永逸。 插件功能 删除代码中没有被用到的变量,或者... 在经过一些AST处理后的混淆代码,会有一些变量或者函数显得多余,因为还原后,没有其他的代码来使用它们。作为一个有代码洁癖的人,怎么能容忍这样的垃圾代码横行霸道,显得格外刺眼。因此,除之而后快。 删! 删! 删! 统统删掉。作为一个会编程的人,手动一个个删,似乎有点掉价。 那不如来写个插件,一劳永逸。 插件功能 删除代码中没有被用到的变量,或者...
- 最近遇到了一个问题,就是 Vue.js 中的 prop 如何实现双向绑定比较好。 之前我都是把 prop 传递到子组件,然后子组件里面直接把 prop 直接改了,这样虽然能把结果反映到父组件,但并不是一个很好的解决方案。 比如我就经常遇到这样的 Warning: Avoid mutating a prop directly since the value wi... 最近遇到了一个问题,就是 Vue.js 中的 prop 如何实现双向绑定比较好。 之前我都是把 prop 传递到子组件,然后子组件里面直接把 prop 直接改了,这样虽然能把结果反映到父组件,但并不是一个很好的解决方案。 比如我就经常遇到这样的 Warning: Avoid mutating a prop directly since the value wi...
- 目录 1 什么是桥接模式 2 参与者 3 实例讲解 4 总结 1 什么是桥接模式 Bridge模式允许两个组件,即客户端和服务一起工作,每个组件都有自己的接口。Bridge是一种高级架构模式,它的主要目标是通过两级抽象来编写更好的代码。它有利于对象之间非常松散的耦合,有时也被称为双适配器模式。 桥接模式的作用在于将实现部分和抽象部分分离, 以便两者可以独立的变化... 目录 1 什么是桥接模式 2 参与者 3 实例讲解 4 总结 1 什么是桥接模式 Bridge模式允许两个组件,即客户端和服务一起工作,每个组件都有自己的接口。Bridge是一种高级架构模式,它的主要目标是通过两级抽象来编写更好的代码。它有利于对象之间非常松散的耦合,有时也被称为双适配器模式。 桥接模式的作用在于将实现部分和抽象部分分离, 以便两者可以独立的变化...
- 前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块。系卤煮自己总结的一些经验和教训。本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来。很难做到详尽充实,如果有好的建议或者不对的地方,还望不吝赐教斧正。 一、接口的流畅性 好的接口是流畅易懂的,他主要体现如下几个方面: 1. 简单 操作某个元素的 css 属... 前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块。系卤煮自己总结的一些经验和教训。本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来。很难做到详尽充实,如果有好的建议或者不对的地方,还望不吝赐教斧正。 一、接口的流畅性 好的接口是流畅易懂的,他主要体现如下几个方面: 1. 简单 操作某个元素的 css 属...
- 目录 1.什么是全局变量和局部变量 2.全局变量和局部变量的声明 2.1 全局变量的声明 2.2 局部变量的声明 3.全局变量和局部变量一些常见问题 3.1全局变量跟局部变量重名 3.2 零散变量的问题 3.3. 变量释放问题 总结: 1.什么是全局变量和局部变量 全局变量:常常... 目录 1.什么是全局变量和局部变量 2.全局变量和局部变量的声明 2.1 全局变量的声明 2.2 局部变量的声明 3.全局变量和局部变量一些常见问题 3.1全局变量跟局部变量重名 3.2 零散变量的问题 3.3. 变量释放问题 总结: 1.什么是全局变量和局部变量 全局变量:常常...
- 目录 1 什么是装饰器模式? 2 装饰器模式的主要参与者有哪些 3 代码实现 4 实例应用 5 ES7 中的 decorator 6 总结 1 什么是装饰器模式? 装饰器模式模式动态地扩展了(装饰)一个对象的行为,同时又不改变其结构。在运行时添加新的行为的能力是由一个装饰器对象来完成的,它 "包裹 "了原始对象,用来提供额外的功能。多个装饰器可以添加或覆盖原... 目录 1 什么是装饰器模式? 2 装饰器模式的主要参与者有哪些 3 代码实现 4 实例应用 5 ES7 中的 decorator 6 总结 1 什么是装饰器模式? 装饰器模式模式动态地扩展了(装饰)一个对象的行为,同时又不改变其结构。在运行时添加新的行为的能力是由一个装饰器对象来完成的,它 "包裹 "了原始对象,用来提供额外的功能。多个装饰器可以添加或覆盖原...
上滑加载中
推荐直播
-
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中 -
华为云码道:零代码股票智能决策平台全功能实战2026/04/18 周六 10:00-12:00
秦拳德-中软国际教育卓越研究院研究员、华为云金牌讲师、云原生技术专家
利用Tushare接口获取实时行情数据,采用Transformer算法进行时序预测与涨跌分析,并集成DeepSeek API提供智能解读。同时,项目深度结合华为云CodeArts(码道)的代码智能体能力,实现代码一键推送至云端代码仓库,建立起高效、可协作的团队开发新范式。开发者可快速上手,从零打造功能完整的个股筛选、智能分析与风险管控产品。
回顾中
热门标签