自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (4)
  • 收藏
  • 关注

原创 老版本chrome浏览器版本下载地址

https://www.slimjet.com/chrome/google-chrome-old-version.php

2023-09-22 09:00:44 1199

原创 深入理解javascript原型和闭包(19)——补充:this

function Fn() { console.log('testThis')}Fn.printSelf = function(message) { console.log(this) console.log(message)}Fn.printSelf('happy new year')上例中调用Fn.printSelf函数时,this值是函数Fn实例运行结果:ƒ Fn() { console.log('testThis')}VUE框架的use函数就是上

2021-02-10 16:03:13 180

原创 复制文本到粘贴板的三种实现方法(chrome)

复制文本到粘贴板的三种实现方法(chrome)一.采用 textarea存放文本内容二.采用矩形框存放文本内容采用navigator.clipboard.writeText( )复制文本内容一.采用 textarea存放文本内容/ 将特定字符串拷贝到剪贴板export function copyToBoard (text) { try { const input = document.createElement('textarea') input.value =

2020-11-20 16:22:54 2737

原创 VUE源代码调试方法总结

VUE源代码调试方法总结vue.config.js配置sourcemapChrome浏览器配置dev-tools工具一级目录一级目录vue.config.js配置sourcemap在vue.config.js增加productionSourceMap和configureWebpack.devtool的配置,在chrome浏览器里面就会对应上vue文件了:module.exports = { //......上面一堆配置 productionSourceMap: process.env.NODE_

2020-11-10 10:58:43 1860 1

转载 void 0 与 undefined的区别

void 0 与 undefined的区别1.undefined可以被重写2.为什么选择void 0 作为undefined的替代在看《你不知道的JavaScript》的时候,看到了这个么一段代码.function foo() { var a = arguments[0] !== (void 0 ) ? arguments[0] : 2; return a; }void 0 返回undefined,我们都知道的,但是为什么不直接 arguments[0] !== undefined?查找相关

2020-09-20 18:57:53 280

原创 实例学习Vue源码第三篇-Vue的响应式原理

实例学习Vue源码第三篇-Vue的响应式原理一级目录一级目录

2020-09-12 19:50:25 215

原创 实例学习Vue源码第二篇-浅析初始化到挂载过程

实例学习VUE源码(二)一级目录一级目录

2020-09-12 10:42:19 289

原创 实例学习Vue源码第一篇-实例

实例学习VUE源码(一)实例代码实例解析实例代码<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="renderer" content="webkit"> <meta na

2020-09-12 10:41:04 203

原创 深入理解CSS盒模型

深入理解CSS盒模型CSS盒模型盒模型相关函数CSS盒模型盒子由margin(外边距)、border(边框)、padding(内边距)、content(内容)组成;盒子的宽度 = 内容宽度 + 左填充 + 右填充 + 左边框 + 右边框 + 左边距 + 右边距;盒子的高度 = 内容高度 + 上填充 + 下填充 + 上边框 + 下边框 + 上边距 + 下边距盒子模型种类box-sizing: content-box(默认)----指的是标准模型(本身内容宽高度+边框和内边距);box-si

2020-09-10 20:02:18 122

原创 VUE初始化过程的思维导图

VUE初始化过程的思维导图VUE初始化过程的思维导图

2020-09-09 21:48:27 209

原创 VUE实例学习--表格(grid)检索

VUE实例学习--表格(grid)检索源码目录结构实例目录结构实例入口index.html文件解析grid.js为表格组件内容解析style.css样式文件内容解析下面的实例是源码中的表格控件实例;源码目录结构一、目录结构首先来"一览众山小",看下整体的的目录结构。(可以跳过这里往下看)|— benchmarks 基准测试,与其他竞品做比较|— dist 打包之后文件所在位置,包括完整版本,运行时版本版本,主要关注下vue.js|— examples 部分示例|— flow 因为Vue

2020-09-06 22:04:39 872

原创 VUE原理学习第一篇--理解双向数据绑定原理

理解双向数据绑定原理简单的双向数据绑定实例vue数据双向绑定原理简单版的mvvm双向绑定代码大家都知道vue是一种MVVM开发模式,数据驱动视图的前端框架,并且内部已经实现了双向数据绑定,那么双向数据绑定是怎么实现的呢?简单的双向数据绑定实例<!DOCTYPE html><html lang="en"><head> <title>VUE</title></head><body><div>

2020-09-06 15:14:22 132

原创 nodeJs模块系统中module.exports预exports的区别

nodeJs--模块module.exports与实例化方法在nodejs中,提供了exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。而在exports抛出的接口中,如果你希望你的模块就想为一个特别的对象类型,请使用module.exports;如果希望模块成为一个传统的模块实例,请使用exports.xx方法;module.exports才是真正的接口,exports只不过是它的一个辅

2020-09-05 21:04:38 145

原创 理解requirejs源码 (二)

理解requirejs源码 (二)require执行的第一个函数执行函数后会创建一个默认的命名空间执行函数后会创建一个新的context对象require执行的第二个函数执行第二个函数后会生成一个异步的任务异步任务从任务队列中被取出下面内容根据理解requirejs源码 (一)里面的实例展开require执行的第一个函数//Create default context.req({});执行函数后会创建一个默认的命名空间req定义的代码如下req = requirejs = functio

2020-09-02 22:03:01 217

原创 图解二叉树先根、中根、后根遍历

二叉树先根、中根、后根遍历三种遍历都是递归遍历先根遍历结果:ABCDEFGH原理:先遍历根节点,再遍历左子树,最后遍历右子树;中根遍历结果:CBEDFAGH原理:先遍历左子树,再遍历根节点,最后遍历右子树;后根遍历结果:CEFDBHGA原理:遍历左子树,再遍历右子树,最后遍历根节点;...

2020-09-02 09:23:17 16799

原创 理解requirejs源码 (一)

理解requirejs源码(一)实例文件结构实例运行结果实例文件结构1.index.html为入口html文件<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Require</titl

2020-09-01 23:08:17 243

原创 oracle执行insert语句卡住不动

oracle执行insert语句卡住不动1.查询锁定记录2.删除锁表记录1.查询锁定记录SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid; 执行结果:2.删除锁表记录 ALTER system KILL session '2279,9665';// ALTER syst

2020-08-28 16:58:33 4753

原创 Array.prototype.splice.apply合并数组用法详解

Array.prototype.splice.apply合并数组用法详解数组对象的splice方法合并数组Array.prototype.splice.apply合并数组数组对象的splice方法合并数组var arr1 = ['a', 'b', 'c']; arr1.splice(2, 0, '1');arr1.splice(2, 0, '2')arr1.splice(2, 0, '3')console.log(arr1);运行结果:Array.prototype.splice.app

2020-08-21 17:00:02 2217 1

原创 webpack让node.js支持import/export写法

查看node.js对ES6语法的支持情况1 node.js不支持ES6导入/导出模块的写法。安装es-checker可以查看node.js对ES6的支持,执行下面的命令:npm install -g es-checkeres-checkernpm install -g es-checker命令执行结果:es-checker命令执行结果:node不支持ES6的import和export的写法安装webpack后,转换含import/export文件为node能运行的文件1 安装webpa

2020-08-16 17:09:15 774

原创 npm install出现“Unexpected end of JSON input while parsing near“错误解决方法

报错信息windows上运行npm install -g webpack命令,报如下错误:解决方法1.执行命令npm cache clean --force2.删掉C:\Users\PC\AppData\Roaming\npm-cache下的所有文件3.重新执行npm install -g webpack命令后,安装成功...

2020-08-16 16:26:01 366

原创 ES6学习第七篇--类(class)

class一级目录一级目录上一篇:ES6学习第六篇–生成器(Generator)

2020-08-13 15:46:49 210

原创 ES6学习第六篇--生成器(Generator)

ES6学习第五篇--生成器一级目录一级目录下一篇:ES6学习第五篇–迭代器(Iterator)

2020-08-11 17:50:31 178

原创 ES6学习第五篇--迭代器(Iterator)

ES6学习第五篇--迭代器迭代器的概念迭代器的原理迭代器的概念遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。Iterator 的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是 ES6 创造了一种新的遍历命令for…of循环,Iterator 接口主要供for…of消费。原生具备 I

2020-08-11 11:34:28 1017

原创 Array所有方法汇总

Array所有方法汇总Array函数及其属性、方法Array.prototype方法Array函数及其属性、方法具体内容链接:https://zhuanlan.zhihu.com/p/53041549Array.prototype方法

2020-08-10 17:28:41 277

原创 深入理解Object.prototype.toString方法

深入理解Object.prototype.toString方法ECMAScript 3ECMAScript 5ECMAScript 6ECMAScript 7ECMAScript 3在toString方法被调用时,会执行下面的操作步骤:获取this对象的[[Class]]属性的值.(第一步)计算出三个字符串"[object ", 第一步的操作结果Result(1), 以及 "]"连接后的新字符串.(第二步)返回第二步的操作结果Result(2). (第三步)[[Class]]是一

2020-08-10 16:28:08 6679 3

原创 ES6学习第三篇--函数参数的扩展

ES6学习第二篇--函数参数的扩展默认参数1. 基本用法2. 默认参数中不允许有同名参数3. 默认参数生效场景4. 默认参数不生效场景不定参数默认参数1. 基本用法function fn(name,age=17){ console.log(name+","+age);}fn("Amy",18); // Amy,18fn("Amy",""); // Amy,fn("Amy"); // Amy,17运行结果图:2. 默认参数中不允许有同名参数js代码:// 不报错fun

2020-08-07 16:12:18 123

原创 ES6学习第一篇--知识思维导图

ES6学习第一篇--知识思维导图知识思维导图知识思维导图

2020-08-07 15:02:01 229

转载 VUE源码学习第十二篇-patch(diff原理)

一、总述    前面章节介绍了响应式的原理,当监听的属性值发生变化,会触发其相关的订阅watcher对象更新。如果在模板中使用了该属性,则会触发render wacher的更新,最终实现dom的更新。dom更新的有两种实现方式,一种是"全量"的全局更新,一种是"增量"的局部更新,很显然,后一种的效率会更高。VUE就是采用的一种,会先对新旧的vdom进行比较,形成patch,从而实现dom的局部更新。本章节主要介绍如何来比较vdom,即diff算法原理。二、diff算法vue是借鉴

2020-08-04 16:15:47 437

原创 vue 的v-pre指令和pre标签

vue 的v-pre指令和pre标签vue的pre指令不加v-pre代码不加v-pre效果图加v-pre代码加v-pre效果图vue的pre标签不加pre标签代码不加pre标签效果图加pre标签代码加pre标签效果图vue的pre指令v-pre指令说明:跳过这个元素和它的子元素的编译过程。可以用来显示原始标签。跳过大量没有指令的节点会加快编译。不加v-pre代码<!DOCTYPE html><html lang="en"><head> <titl

2020-07-31 15:47:53 8908

原创 preventDefault、stopImmediatePropagation和stopPropagation三剑客区别

三剑客区别1. preventDefault()阻止默认的点击事件执行1. 阻止选中复选框2. 在编辑域中阻止按键2. stopImmediatePropagation阻止监听同一事件的其他事件监听器被调用3. stopPropagation()阻止当前事件捕获和冒泡1. preventDefault()阻止默认的点击事件执行1. 阻止选中复选框下面的例子中,点击复选框时,因为调用了preventDefault函数,阻止了默认事件(复选框的默认事件是选中复选框),所以复选框不会被选中。<!D

2020-07-29 10:54:37 854

原创 window.performance(监控网页与程序性能)

window.performance(监控网页与程序性能)performance对象的完整结构1. performance的memory属性对象2. performance的navigation属性对象3. performance的timing 属性对象timing属性的整体结构如下图timing 属性的解释timing 属性计算出网页性能数据4. performance.getEntries() 方法5. performance.now() 方法6. performance.mark()方法perfor

2020-07-17 15:31:25 3755 1

原创 回车符和换行符区别

回车符和换行符区别两种字符产生的历史背景两种字符在不同系统上的分歧两种字符在不同系统上的转换1. Unix -> Windows:'\n' -> '\r\n'2. Unix <- Windows:'\n' <- '\r\n'两种字符产生的历史背景在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么

2020-07-16 14:47:24 1002

原创 JS基本数据类型和引用数据类型的区别

JS基本数据类型和引用数据类型的区别基本数据类型种类1. Undefined2. Null3. Boolean4. Number5. String6. Symbol特点引用数据类型种类特点浅拷贝深拷贝JS分两种数据类型:基本数据类型和引用数据类型基本数据类型种类基本数据类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6)1. UndefinedUndefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时

2020-07-14 17:31:31 1097

原创 获取对象属性的函数的区别

获取对象属性的函数区别Object.keys()Object.getOwnPropertyNames()Object.getOwnPropertySymbols()相同点:都是获取对象的属性不同点:1 Object.keys()函数获取对象自身可枚举属性,属性包括可枚举的属性,不包括不可枚举的属性和Symbol 属性2 Object.getOwnPropertyNames()函数获取对象的所有自身属性的属性,属性包括枚举属性和不可枚举属性,不包括Symbol 属性3 Object.getOwnPr

2020-07-13 11:34:30 411

原创 ES6学习第四篇--Let和Var的相同点和区别

js中Let和Var的相同点和区别Let和Var的相同点Let和Var的区别总结Let和Var的相同点1 在函数内声明变量时,使用 var 和 let 很相似,它们都有函数作用域2 如果在块外声明声明,那么 var 和 let 也很相似,它们都拥有全局作用域let x = 10;//全局作用域var y = 10;//全局作用域{ var z = 10;//块作用域}Let和Var的区别1 var关键字声明的变量没有块作用域,在块{ }内声明的变量可以从块之外进行访问。let关键字声明

2020-07-12 21:07:39 283

原创 ES6学习第二篇--箭头函数

ES6标准新增了一种新的函数:Arrow Function(箭头函数)。1 为什么叫Arrow Function?因为它的定义用的就是一个箭头:x => x * x上面的箭头函数相当于:function (x) { return x * x;}2 箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ … }和return都省略掉了。还有一种可以包含多条语句,这时候就不能省略{ … }和return:x => {

2020-07-12 16:45:26 180

原创 详解Object.freeze函数

详解Object.freeze函数1. 语法参数返回值2. 描述3. 例子冻结对象冻结数组浅冻结深冻结4. 知识扩展1. 语法Object.freeze(obj)参数obj要被冻结的对象。返回值被冻结的对象。2. 描述被冻结对象自身的所有属性都不可能以任何方式被修改。任何修改尝试都会失败,无论是静默地还是通过抛出TypeError异常(最常见但不仅限于strict mode)。数据属性的值不可更改,访问器属性(有getter和setter)也同样(但由于是函数调用,给人的错觉是还是可以修

2020-07-10 13:46:37 744

原创 详解Object.defineProperty()

详解Object.defineProperty函数语法1. 参数2. 返回值描述1. 数据描述符和存储描述符共享的可选键值a. configurableb. enumerable2.数据描述符可选键值a. valueb. writable3.数据描述符可选键值a. getb. set4. 描述符默认值汇总5. 描述符可拥有的键值示例1. 创建属性2. 修改属性a. Writable 属性b. Enumerable 属性c. Configurable 属性3. 添加多个属性和默认值4. 自定义 Setters

2020-07-10 11:11:18 291

转载 设计模式之订阅/发布模式(subscribe/publish)

一、什么是订阅发布模式订阅发布模式定义了一种 一对多 的依赖关系,一指发布者,比如某个主题对象,多指订阅者,依赖是订阅者对发布者的依赖;多个订阅者同时监听一个主题对象。当发布者即主题对象的状态发生变化时,会将该变化通知给订阅者,订阅者据此更新自己的状态。是设计模式中用的比较多的一种。二、为什么使用订阅发布模式订阅发布模式旨在降低系...

2020-07-06 20:55:34 1909 2

转载 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系

本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事。本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿。再说明之前,咱们先用简单的语言来概括一下这两个的区别。00 上下文环境:可以理解为一个看不见摸不着的对象(有若干个属性),虽然看不见摸不着,但确实实实在在存在的,因为所有的变量都在里面存储着,要不然咱们定义的变量在哪里存?另外,对于函数来说,上下文环境是在调用时创建的,这个很好理解。拿参数做例子,你不调用函数,我哪儿知道你要给我传什么参数?01 作用域:首先

2020-07-06 14:04:21 127

require.js

requireJs源码,下载源码可以用来学习require的加载原理和加载机制;学习require模块加载的思想有利于了解ES6的Module加载原理

2020-09-01

eclipse jetty离线安装插件

eclipse jetty离线安装插件; 解压jar包后取update文件夹下的features中的net.sourceforge.eclipsejetty.feature_3.9.0.jar 和plugins文件夹中的net.sourceforge.eclipsejetty.launcher_3.9.0.jar到eclipse安装目录下的同名文件夹下 我的eclipse安装路径:C:\DevTool\eclipse\plugins

2018-11-24

jetty axis2.war

jetty axis2.war文件在axis2-1.7.8-bin.zip下; jetty安装目录下的webapp文件夹下面需要用到此war,jetty才能支持axis2

2018-11-24

jetty安装的JAR(其他相关的jetty axis2的jar请看此博客相关文档)

jetty安装的jar(jar里面有webapps和lib等文件夹); 后续jetty axis2相关的jar请参照其他博客

2018-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除