![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
es6
文章平均质量分 87
诸葛韩信
飞翔在低空的缺氧人士。
展开
-
uni-app简单的教程(一)
个人简单写明的uni-app入门教程原创 2023-03-09 17:24:39 · 386 阅读 · 1 评论 -
JavaScript算法——冒泡排序
一、概念冒泡排序(Bubble Sort)也叫气泡排序、泡沫排序,是一种比较简单的排序算法。它通过遍历数组,比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置,这样第一次遍历后数组的最大元素就排在了数组的末尾。采用相同的方法再次遍历,直至整个数组都有序为止。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端;这样,大的数就移动到了后端。二、算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这原创 2022-04-20 10:32:45 · 2285 阅读 · 0 评论 -
JavaScript算法——快速排序
一、概念快速排序算法由 C. A. R. Hoare 在 1960 年提出。它的时间复杂度也是 O(nlogn),但它在时间复杂度为 O(nlogn) 级的几种排序算法中,大多数情况下效率更高,所以快速排序的应用非常广泛。注意: 快速排序不一定是最快的排序方法,这取决于需要排序的数据结构、数据量。不过,大多数情况下,面试官和工作场所用它的概率也是相对较高的,所以我们应该花时间把它学透彻。二、工作原理首先设定一个分界值,通过该分界值将数组分成左右两部分。将大于或等于分界值的数据集中到数组右边原创 2022-04-19 17:26:14 · 6552 阅读 · 0 评论 -
Proxy——拦截 JavaScript 操作的方法
概述Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”。va原创 2022-04-14 21:44:12 · 2258 阅读 · 0 评论 -
Reflect——拦截 JavaScript 操作的方法
JavaScript中,万事万物都是对象。在做项目的时候,往往都需要获取或者修改删除对象的一些操作,而且操作的过程中,可能会有一些条件的限定或者有条件的分支。所以,我们ES6开始就有了Reflect,Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。但是我们要知道,Reflect不是一个函数对象,因此它是不可构造的。虽然,我们知道Proxy可以用new运算符调用,但是Reflect是不能够的,这是它的属性并非一个构造函数决定的。Reflect设计目的(1) 将Object对原创 2022-04-12 17:34:46 · 1558 阅读 · 0 评论 -
async 函数——JS中的异步处理方式
async 函数的语法async function name([param[, param[, ... param]]]) { statements }name: 函数名称。param: 要传递给函数的参数的名称。statements: 函数体语句。async 函数的书写方式如下:// 函数声明async function foo() {}// 函数表达式const foo = async function () {};// 对象的方法let obj = { async foo(原创 2022-04-11 15:46:01 · 13867 阅读 · 0 评论 -
Promise对象——JS中的异步处理方式
关于Promise对象所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。是异步编程的一种解决方案。 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。这是一种异步方式,Promise的写法相对来说会让人摆脱回调的苦恼,不必一层层嵌套相关的方法,维护代码也更加的方便。设计思想Promise原创 2022-04-11 11:46:21 · 924 阅读 · 0 评论 -
JavaScript的栈和堆的全面阐述
前言讲到栈和堆,我们一般来说都要理解数据结构比较容易明白。而,JavaScript中的栈和堆在数据类型中可以展现得比较透彻。JavaScript中的变量分为基本类型和引用类型。基本类型就是保存在栈内存中的简单数据段,而引用类型指的是那些保存在堆内存中的对象。栈栈会自动分配内存空间,会自动释放,存放基本类型,简单的数据段,占据固定大小的空间。说白了,栈就是供数据存放的空间,数据存放后,就占据了一定的空间。基本类型:String,Number,Boolean,Null,Undefined,还有e原创 2020-09-23 16:30:50 · 176 阅读 · 0 评论 -
typescript入门要点
typescript自从诞生以来,都是前端框架的热点,包括但不限于angular、vue3等热门框架都用ts作为代码的底层统一化处理方案。我个人觉得主要是它是代码可读性和可维护性的优点,让开发者喜爱,其实从长远来看,这个是它的利器,我们当然也得知道,它的开发成本是比较高的,而且它跟一些库结合有点瑕疵,主要的是程序员都是很忙的,学习成本这么高的typescript到底值不值得投入生产,确实需要评估。一、安装 TypeScriptnpm install -g typescript全局安装typescri原创 2020-08-03 18:23:49 · 224 阅读 · 0 评论 -
浅谈 JS 对象添加 getter与 setter 的5种方法以及如何让对象属性不可配置或枚举
定义 getter 与 setter1.通过对象初始化器定义2.使用 Object.create 方法3.使用 Object.defineProperty 方法4.使用 Object.defineProperties 方法5.使用 Object.prototype.defineGetter 以及 Object.prototype.defineSetter 方法什么是属性描述符创建属性不可配置不可枚举的对象Enumerable 特性Configurable 特新提高..转载 2020-05-21 21:38:55 · 708 阅读 · 0 评论 -
webpack 打包后的dist文件进行特殊性修改
一、webpack打包文件——distdist文件默认是webpack打包之后的最外层文件夹。一个web前端项目,往往会有比较多的文件,而图片、js、css都是必须的,当然如果是扩展的话,还有很多其他的文件,比如说字体,html,ts,html,jsx等。比如下图的目录结构:二、加密或者路径或者其它需求当文件需要加密的时候,就需要将代码中的一些敏感信息加密。这个时候,我们往往...原创 2019-11-04 17:32:09 · 4043 阅读 · 0 评论 -
webpck 中添加环境变量
如何在webpack构建的项目中添加环境的变量?需求是这样的,需要在项目打包之后文件的引入添加绝对的路径,而不是相对的路径。比如,打包完成的文件,可能是用来测试用的,测试的地址是aaa.yourcompany.com,而正式环境的地址是bbb.yourcompany.com,这个时候我们往往是用npm run build 来构建项目。那么,因为webpack中没有window环境,就不可能...原创 2019-10-29 17:36:08 · 331 阅读 · 0 评论 -
js防抖和节流
在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少调用频率,同时又不影响实际效果。函数防抖函数防抖(debounce):当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,...转载 2019-10-25 12:23:23 · 126 阅读 · 0 评论 -
最火移动端跨平台方案盘点:React Native、weex、Flutter
1、前言跨平台一直是老生常谈的话题,cordova、ionic、react-native、weex、kotlin-native、flutter等跨平台框架的百花齐放,颇有一股推倒原生开发者的势头。为什么我们需要跨平台开发? 本质上,跨平台开发是为了增加代码复用,减少开发者对多个平台差异适配的工作量,降低开发成本,提高业务专注的同时,提供比web更好的体验。嗯~通俗了说就是:省钱、偷懒。...转载 2019-10-22 18:48:50 · 276 阅读 · 0 评论 -
es6的异步编程之Promise
现在在前端,JavaScript已经变得越来越规范化和标准化了。比如说之前比较混乱的定义变量的方式已经有了const和let两者官方比较推荐的方式;以及处理完函数以后回调的方式也有了Promise以及async等方法。大家在当前比较推荐的mvvm框架(比如说vue)中还是比较喜欢用Promise,确实它比较简单实用。 大家都知道,promise有三个状态:pending(进行中)、...原创 2018-06-25 15:39:26 · 213 阅读 · 0 评论 -
JS关于对象的安全性之扩展,密封,冻结
有时候我们写了一个js库,里面有一些核心对象,我们希望在开发过程中这个核心对象不被修改,这时候就要防止该对象被篡改。Object上有三个方法可以使用可以使用Object.isExtensible(obj)来查看某个对象是否是可扩展的,返回是一个布尔值。2.Object.seal(obj);密封的对象是不可扩展的,在此基础上,他也不能删除属性,但是可以修改属性这时候可以看到虽然给ba...转载 2019-02-13 16:51:28 · 215 阅读 · 0 评论 -
vue的render函数,你真的会用吗?单页面的render函数解坑
今天,回去又好好的看了一遍vue的render函数。感觉之前有一些误解和没有深刻的理解到位。一、基础(官网例子)官网的例子非常简单,但是又比较有代表性,如果是刚入门的vuer看起来也可能是有点懵懂的。但是不急,我们一步步来解析一下。官网说让我们深入一个简单的例子,这个例子里render函数很实用。假设我们要生成一些带锚点的标题:<h1> <a name=...原创 2019-05-14 19:21:45 · 20299 阅读 · 3 评论 -
前端加密方式
背景相比其他被编译成二进制的应用,前端这种纯文本应用,太容易被解读和窜改。前端为什么要加密?加密重要的目的是出于对商业利益的保护。由于作品太容易被复制窜改,容易会失去渠道先机窜改不限于以下:署名被移除或替换; 链接地址被替换; 文案被修改; 广告被移除、替换或植入; ...一些轻度游戏,用户只会玩一两次,生命周期也就两三天。如果你开发的游戏被人山寨且他的渠道比...转载 2019-07-17 19:14:06 · 177 阅读 · 0 评论 -
【知识整理】vue-cli脚手架开发项目如何进行js高级加密
一。最近收到一个对js源码进行加密,以防止关键js源代码泄露的需求!由于我们的项目是基于vue-cli脚手架开发的,因此首先想到的是其中的webpack插件UglifyJsPlugin是否提供js代码加密的配置。查询UglifyJsPlugin官方手册后发现该插件提供代码压缩及混淆功能,可以对代码进行压缩,变量、函数名替换为简单字母,降低了源码的可读性,一定程度上达到了加密的目的,但是加密级别没有...转载 2019-05-13 15:31:10 · 810 阅读 · 0 评论 -
vue插件开发与发布
写在前面本次演示的是开发一个 vue手机虚拟支付键盘插件主要讲解的是如何快速开发一个vue插件并发布到npm上源码地址所有代码都可以在我的GitHub vue-pay-keyboard 上查看,欢迎start..demo演示地址请用手机或者电脑仿真查看 vuepayboard关于vue插件插件一般都有如下几种形式导入ES6import vuePayKeyboa...转载 2019-06-10 21:26:55 · 88 阅读 · 0 评论 -
Vue的混入mixins
官方的定义如下:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。其实,这已经很好理解了,就是用来扩展vue本身构建好的对象的,在vue这个大对象中,进行一个整合,一个对组件选项的组合。下边是官网给出的例子:// 定义一个混入对象var m...原创 2019-08-09 17:26:17 · 164 阅读 · 0 评论 -
vuex 项目启动之技术胖的传授
前言:公司项目中大量的使用了vue,感觉对vue知识的掌握也越来越熟练了,录制视频教程也让我受益匪浅,自己成长的同时,我更希望帮助其他前端小伙伴一起成长。这篇文章我们主要讲解vuex。vuex是一个专门为vue.js设计的集中式状态管理架构。状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态。简单的说就是data中需要共用的属性。比如:我们有几个页面要显示用户名称和...转载 2018-03-07 17:27:25 · 3339 阅读 · 0 评论