- 一、安装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 什么是装饰器模式? 装饰器模式模式动态地扩展了(装饰)一个对象的行为,同时又不改变其结构。在运行时添加新的行为的能力是由一个装饰器对象来完成的,它 "包裹 "了原始对象,用来提供额外的功能。多个装饰器可以添加或覆盖原...
- 目录 1 函数的定义方式 1.1 函数声明 1.2 函数表达式 1.3 函数声明与函数表达式的区别 1.4 构造函数Function(了解即可,一般不用) 2 函数的调用方式 3 函数内 this 的指向 4 call、apply、bind 4.1 call,apply 4.1.1 新的函数调用方式apply和call方法 4.1.2 apply和cal... 目录 1 函数的定义方式 1.1 函数声明 1.2 函数表达式 1.3 函数声明与函数表达式的区别 1.4 构造函数Function(了解即可,一般不用) 2 函数的调用方式 3 函数内 this 的指向 4 call、apply、bind 4.1 call,apply 4.1.1 新的函数调用方式apply和call方法 4.1.2 apply和cal...
- 目录 1 什么是单例模式? 2 单例模式的作用和注意事项 3 代码实现 4 案例应用 4.1 使用单例模式管理命名空间 4.2 使用单例模式为不同命名空间的button按钮添加click事件,并且使他们之间能够互相通信 1 什么是单例模式? 单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果 ... 目录 1 什么是单例模式? 2 单例模式的作用和注意事项 3 代码实现 4 案例应用 4.1 使用单例模式管理命名空间 4.2 使用单例模式为不同命名空间的button按钮添加click事件,并且使他们之间能够互相通信 1 什么是单例模式? 单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果 ...
- 目录 1什么是Node 2Node.js安装 2.1官网下载 2.2安装 3Node.js快速入门 3.1Node.js组成 3.2Node.js基础语法 3.3Node.js中的全局对象global 4Node.js模块化开发 4.1JavaScript开发弊端 4.2 软件中的模块化开发 4.3 Node.js中模块化开发规范 4.4模块成员导出... 目录 1什么是Node 2Node.js安装 2.1官网下载 2.2安装 3Node.js快速入门 3.1Node.js组成 3.2Node.js基础语法 3.3Node.js中的全局对象global 4Node.js模块化开发 4.1JavaScript开发弊端 4.2 软件中的模块化开发 4.3 Node.js中模块化开发规范 4.4模块成员导出...
- 目录 1 学习目标 2 面向对象介绍 2.1 什么是对象 2.2 什么是面向对象 2.3 JavaScript 中面向对象的基本体现 3 JavaScript 如何创建对象 3.1 字面量方式 3.2 简单方式的改进:工厂函数 3.3 更优雅的工厂函数:构造函数 3.4 构造函数代码执行过程 3.5 构造函数和实例对象的关系 3.6... 目录 1 学习目标 2 面向对象介绍 2.1 什么是对象 2.2 什么是面向对象 2.3 JavaScript 中面向对象的基本体现 3 JavaScript 如何创建对象 3.1 字面量方式 3.2 简单方式的改进:工厂函数 3.3 更优雅的工厂函数:构造函数 3.4 构造函数代码执行过程 3.5 构造函数和实例对象的关系 3.6...
- 目录 一、递归 1.1 概念 1.2 出口 1.3 递归经典问题:递归求斐波那契数列 1.4 递归经典问题:递归求阶乘 1.5 递归求一个数字各个位数上的数字的和 1.6 递归遍历DOM树 二 深浅拷贝 2.1 浅拷贝 2.2 深拷贝 2.3 如何区分深拷贝与浅拷贝? 2.3.1 浅拷贝:仅复制了引用,彼此之间的操作会互相影响 2.3.2 深拷贝:在... 目录 一、递归 1.1 概念 1.2 出口 1.3 递归经典问题:递归求斐波那契数列 1.4 递归经典问题:递归求阶乘 1.5 递归求一个数字各个位数上的数字的和 1.6 递归遍历DOM树 二 深浅拷贝 2.1 浅拷贝 2.2 深拷贝 2.3 如何区分深拷贝与浅拷贝? 2.3.1 浅拷贝:仅复制了引用,彼此之间的操作会互相影响 2.3.2 深拷贝:在...
上滑加载中
推荐直播
-
“智见未来”数字文旅创新大赛 线上培训
2025/04/16 周三 19:30-21:00
洪洁/行业算力发展部
4月16日19:30-21:00,大赛组委会将于线上举办培训,汇聚行业专家与技术大牛,从文旅产业的前沿趋势到AI技术的深度应用,全方位为你赋能
回顾中 -
WS63E星闪开发板快速入门指南:开启星闪技术之旅
2025/05/15 周四 19:00-20:30
杨阳 华为开发者布道师
本期直播,深度解析星闪技术核心优势与开发实战技巧,分享从环境搭建到“海思智棒”优秀星闪体验官案例开发的完整路径,覆盖技术原理、场景化案例、备赛避坑指南,助力开发者快速攻克物联网项目开发难题。
回顾中
热门标签