
JS
CharlesJoker
这个作者很懒,什么都没留下…
展开
-
vue3类型推断有误,即props类型定义设置require:true,但使用时,仍然显示类型可为undefined
const propsType = { age: { type: Number, required: true }}export default deineComponent({ name: 'HelloWorld', props: PropsType, mounted() { this.age // 类型为number || undefined }})解决方法:在定义props类型后加上as constconst propsType = { age: { ty.原创 2020-11-09 15:59:15 · 5768 阅读 · 0 评论 -
快速排序
算法描述: 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想——分治法也确实实用。快速排序是一种既不浪费空间又可以快一点的排序算法。算法步骤: 1.先从数列中取出一个数作为“基准”。 2.分区过程:将比这个“基准”大的数全放到“基准”的右边,小于或等于“基准”的数全放到“基准”的左边。 3.再对左右区间重复第二步,直到各区间只...原创 2018-03-27 14:51:08 · 177 阅读 · 0 评论 -
选择排序
算法描述 选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。通俗来说就是你们中间谁最小谁就出列,站到队列的最后边,然后继续对着剩余的无序数组说你们中间谁最小谁就出列,站到队列的最后边,一直到最后一个,继续站到最后边,这样数组就有了顺序,从小到大。算法步骤 1.在未排序序列中找到...原创 2018-03-27 14:57:11 · 153 阅读 · 0 评论 -
JS - 正则表达式
符号 意义 常用度 \ 转意,即通常在”\”后面的字符不按原来意义解释,如/b/匹配字符”b”,当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 高 - 对正则表达式功能字符的还原,如”“匹配它前面元字符0次或多次,/a/将匹配a,aa,aaa,加了”\”后,/a*/将只匹配”a*”。 高 ^ 匹配一个输入或一行的开头,/^a...原创 2018-04-02 18:24:17 · 150 阅读 · 0 评论 -
希尔排序
算法描述 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排...原创 2018-03-27 20:20:23 · 194 阅读 · 0 评论 -
Vue 2.0 生命周期
vue 2.0 说明 created 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。 beforeMount 在挂载开始之前被调用:相关的 render 函数首次被调用。 mounted ...原创 2018-04-03 20:52:54 · 313 阅读 · 0 评论 -
JS - MVP 模式
首先, MVP是用来优化或者替代MVC模式的。 核心是:切断的View和Model的联系,让View只和Presenter(原Controller)交互,减少在需求变化中需要维护的对象的数量。 1. 各部分之间的通信,都是双向的。 2. View 与 Model 不发生联系,都通过 Presenter 传递。 3. View 非常薄,不部署任何业务逻辑,称为”被动视图”(Passive...原创 2018-04-24 16:16:24 · 1023 阅读 · 0 评论 -
Travis CI - 安装RubyGems
首先,需要在电脑里面安装RubyGems 注:1.9.2以上版本的Ruby已经将RubyGems集成,无需单独安装 Step1:安装Ruby apt (Debian or Ubuntu) Debian GNU/Linux and Ubuntu use the apt package manager. You can use it like this:$ sudo apt-get ins...原创 2018-04-24 16:27:25 · 248 阅读 · 0 评论 -
ES6实现数组去重
ES6提供了数据结构Set。类似于数组,但是没有重复值。 Array.from() 方法从一个类似数组或可迭代对象中创建一个新的数组实例。基于代码可以看出,new Set()的返回值是一个对象 而Array.from()可以将类对象转化为数组。...原创 2018-05-14 19:13:41 · 319 阅读 · 0 评论 -
JS原型链-原型、构造函数、实例和原型链、instanceof
构造函数: 可以new的函数是构造函数实例: 将构造函数new之后得到的就是实例,或者o1 = {name:’o1’}这样的写法构造函数是可以使用new运算符生成一个实例构造函数也是函数,函数具有prototypeprototype是浏览器附加上的原型对象原型对象中的构造器constructor就指向到声明的构造函数实例的__proto指向的构造函数的原型对象protot...原创 2018-03-22 11:05:44 · 286 阅读 · 1 评论 -
JS原型链-创建对象
1.直接声明var o1 ={name:'o1'};var o11 = new Object({name:'o11'})2.显示构造函数创建对象var M = function(){this.name = 'o2'};var o2 = new M();3.var p = {name:'o3'};var o3 = Object.create(P)Object.cre...原创 2018-03-22 08:56:31 · 253 阅读 · 0 评论 -
JS类和继承
类与实例声明一个类:/** ES5声明一个类**/function Animail(){ this.name = 'name';}/** ES6声明一个类**/class Animal2{ constructor(){ this.name = "name"; }}/** 实例化**/new Animal()new An...原创 2018-03-22 21:01:42 · 154 阅读 · 0 评论 -
前端安全
CSRF(https://blog.youkuaiyun.com/stpeace/article/details/53512283)概念: CSRF跨站点请求伪造(Cross—Site Request Forgery)攻击原理: 防御措施: Token验证(token不会自动携带) Referer验证(请求来源验证) 隐藏令牌(类似token,例如隐藏在http的头中)XSS概念:...原创 2018-03-23 00:32:46 · 236 阅读 · 0 评论 -
JS常用算法
排序: 排序 地址 快速排序 https://blog.youkuaiyun.com/q535999731/article/details/79713146 选择排序 https://blog.youkuaiyun.com/q535999731/article/details/79713286 希尔排序 https://blog.youkuaiyun.com/q535999731...原创 2018-03-23 11:34:47 · 145 阅读 · 0 评论 -
浏览器渲染机制
什么事DOCTYPE是什么及作用DTD 文档类型定义(Document Type Definition)是一系列的语法规则,用来定义XML或(X)HTML的文件类型。浏览器会使用它来判断文档类型,决定使用何种协议来解析以及其换浏览器模式。 (通俗解释,DTD是告诉浏览器是什么文档类型,然后浏览器去根据这个文档类型进行解析)DOCTYPE是用来声明文档类型和DTD规范的,一个主要的用途...原创 2018-03-23 13:31:53 · 277 阅读 · 0 评论 -
setTimeout和异步队列
```for(var i=0;i<= 100;i++){if(i===1){setTimeout(function(){console.log("timeout")},0)}console.log(i)}```当真正运行的时候你会发现,这个"timeout"文字会在整个for执行完之后再执行,而不是想当然的在某一步运行完之后执行。setTimeout/setIntervalDOM事件,有时候...原创 2018-03-20 17:37:55 · 752 阅读 · 0 评论 -
提升页面性能
资源压缩合并,减少HTTP请求 JS代码打包,css合并雪碧图(将icon打包成一张图片)将图片转换成字体服务器端配置gzip压缩非核心代码异步加载 异步加载的方式 动态脚本加载deferasync异步加载的区别(还是优先运行同步队列函数,然后才会运行defer中引用的js中的函数) defer实在HTML解析完之后才会执行,如果是多个,按照加载的顺序依次执行async是...原创 2018-03-23 15:37:10 · 233 阅读 · 0 评论 -
JS错误监控
前段错误分类和捕获运行时错误 try…catchwindow.onerror(只能捕获运行时)资源加载错误object.onerror(如图片,则图片对象加载错误,script同理,并不会进行冒泡)performance.getEntries() (高级浏览器有performance对象,getEntries来获取已加载资源的加载时长,相当于间接的获取加载出错的资源文件)Err...原创 2018-03-23 16:31:08 · 408 阅读 · 0 评论 -
JS中的类型转换(显示转换/隐式转换)
JS的数据类型 最新的ECMAScript定义了 7 种数据类型 原始类型: 类型 值 Boolean 布尔基本类型 Null Null Undefined Undefined Number 数值基本类型 String 字符串基本类型 Symbol 字面量基本类型对象: 类型 值...原创 2018-03-21 18:04:24 · 1413 阅读 · 0 评论 -
new运算符的解释
new constructor[([arguments])]创建一个用户自定义的对象需要两步:1.通过编写函数来定义对象类型。 2.通过new来创建对象实例。创建一个对象类型,需要创建一个指定其名称和属性的函数;对象的属性可以指向其他对象,看下面的例子:当代码 new Foo(…) 执行时,会发生以下事情:1.一个继承自 Foo.prototype 的新对象被创建。 2.使...原创 2018-03-22 14:54:35 · 1717 阅读 · 0 评论