javascript
文章平均质量分 70
alexxiyang
java,nodejs,php
展开
-
Jest单元测试最佳实践1:使用eslint-plugin-jest规范测试代码
项目中的荒草地我们经常只关注业务代码的代码质量,而忽略了测试用例的代码质量。这让单元测试代码狂野生长。从而导致单元测试代码往往不起作用。这也是有些程序员认为单元测试代码没什么用。所以我会分享我在项目中发现的jest单元测试最佳实践。从代码风格开始让我们从测试代码的风格开始吧。我们一般都会用eslint来规范业务代码。你是否尝试过使用eslint来规范单元测试代码呢?试试看 eslint-plugin-jest 吧。这是这个项目的页面https://www.npmjs.com/package/eslin原创 2021-04-28 12:42:02 · 1630 阅读 · 1 评论 -
如何解决测试动态加载vue组件的时候浅加载shallowMount不能用的问题
动态import带来的问题如果你在使用Vue的时候同时使用了动态加载,比如有两个组件Parent和Child。Parent会动态加载Child。Parent组件内容<template> <div> Parent <Child /> </div></template><script>export default { components: { Child: () => im原创 2020-05-13 15:52:30 · 2065 阅读 · 1 评论 -
调试javascript/nodejs单元测试的方法
本文会说明如何调试javascript 或者 nodejs的方法。该方法不局限于开发工具,你可以使用atom或者vscode。也不局限于测试框架,你可以使用vue-test-utils, mocha, jest等等。步骤在要调试的代码处加debugger 打开Chrome(谷歌浏览器),并在地址栏输入 chrome://inspect ,选择 Open dedicated DevToo...原创 2019-12-27 03:46:49 · 821 阅读 · 0 评论 -
用 Browserify 替换 require.js
我一直不喜欢require.js的AMD风格,没事就增加代码层级。刚开始我花了很多时间去理解这种风格。直到我偶然发现了Browserify,他可以用更扁平化的风格来写代码,这就是我理想中的简洁的代码结构。原创 2016-10-05 05:23:47 · 2084 阅读 · 0 评论 -
将页面上的javascript错误获取到并打印到页面上的方法
将页面上的javascript错误获取到并打印到页面上的方法如下,原创 2014-11-12 15:07:18 · 3719 阅读 · 0 评论 -
[读书笔记] 了不起的Node.js
继承使用 Ferret.prototype = new Animal(); 来继承重写:原创 2014-06-12 16:38:58 · 1772 阅读 · 1 评论 -
如何建立一个bower私库
本教程适用于centos安装之前检查nodejs如果没安装nodejs按照以下步骤安装$ su - $ yum install openssl-devel$ cd /usr/local/src$ wget http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz$ tar zxvf node-v0.10.29.tar.gz原创 2014-06-30 12:13:17 · 6642 阅读 · 3 评论 -
如何上传发布自己的npm组件包
本文介绍如果上传自己写的 npm 组件包到 npm私库上。当你 写好了自己的一个npm的组件想共享上去给别人或者给公司的同事使用的时候,你可以把你的npm组件发布上去原创 2014-07-17 11:30:25 · 17794 阅读 · 1 评论 -
如何建立npm私库
该教程教大家怎样建立自己的npm私库原创 2014-06-30 12:26:35 · 22819 阅读 · 2 评论 -
javascript的属性拷贝prototype.__proto__ 的用法
用 prototype.__proto__ 可以把一个类的属性拷贝到另外一个类,比如原创 2014-06-05 14:23:53 · 2705 阅读 · 0 评论 -
如何彻底删除node.js以及node.js安装教程(基于Centos其他linux版本可以类推 )
以下教程建立在linux (centos) 操作系统基础下,也只有linux需要专门出教程,因为linux的文件位置原创 2014-06-23 17:24:16 · 109237 阅读 · 0 评论 -
如何在 javascript / js 中 建立一个map
建立map的方式(其实用的是json实现方式)var a = {};a["key1"] = "value1";a["key2"] = "value2";既然是个map就有检索某个键是否存在的方法,这样写if ("key1" in a) { // something} else { // something else }简单的一句话声明map里面的key和valu原创 2014-05-01 18:38:43 · 1526 阅读 · 0 评论 -
jQuery deffered和promise对象方法
一、前言为了让前端们从回调的地狱中回到天堂,jQuery也引入了Promise的概念。Promise是一种令代码异步行为更加优雅的抽象,有了它,我们就可以像写同步代码一样去写异步代码。jQuery从1.5版本开始实现了CommonJS Promise/A规范这一重量级方案,不过没有严格按照规范进行实现,有一些API上的差异。好,让我们来看看他们的特性吧(本文示例基于jQuery 1.8版本以上)。转载 2015-11-26 17:01:56 · 1670 阅读 · 0 评论 -
调试nodejs的方法(node-inspector)
node-inspector调试nodejs可以使用 node-inspector该项目的主页是https://github.com/node-inspector/node-inspector具体的用法全局安装 node-inspectornpm install -g node-inspector然后用 node-debug 来运行你的nodejs 文件node-debug app.js它会自动打原创 2016-06-25 09:59:08 · 3988 阅读 · 1 评论 -
Vue 不睡觉教程3 - 来点实在的:自动计算剩余时间的任务列表
名字灵感来自我的书《HBase不睡觉书》 意为让你看了也不会想睡觉的教程 :)目标前两课教的是入门和文件结构。都没有什么实在的东西。这次我们要来点实在的。我们要做出一个待办列表。这个待办列表有以下特点:可以自动从文本中抽取出这件事情的开始时间 可以显示当前距离这件事情的开始时间还有多久,比如:23:40 回家 (还有 6 小时 36 分 15 秒) 如果当前时间已经超过了计划时间,...原创 2018-10-04 09:48:46 · 4241 阅读 · 12 评论 -
虚拟浏览器 JSDOM 学习笔记
这篇文章只是个人学习笔记,所以结构不清,信息不全,建议阅读原版项目手册。 JSDOM 是用nodejs实现的用于测试的虚拟浏览器。基本例子const dom = new JSDOM(``, { url: "https://example.org/", referrer: "https://example.com/", contentType: "text/html",...原创 2018-09-24 15:15:33 · 3458 阅读 · 0 评论 -
Vue 不睡觉教程2 - 洋气的文件结构
名字灵感来自我的书《HBase不睡觉书》 意为让你看了也不会想睡觉的教程 :)目标我们这节课的目标在于通过改造上一课的例子来学习vue的文件结构Let's do it环境参数vue版本:2.5.16开始改造我们要开始改造上一节那个极土的例子,让它看起来洋气一点。很多教程上来把webpack跟vue绑在一起教,让很多原本不懂webpack的人以为webpack是vue的组成部分,或者是必不可少的部分...原创 2018-06-30 11:21:42 · 7136 阅读 · 12 评论 -
Vue 不睡觉教程1-从最土开始
环境参数vue版本:2.5.16安装虽然vue有很多种安装方式,但是最酷的是使用vue-cli方式安装。方法如下:安装vue-cli首先确保npm版本大于3.0:$ npm -v6.0.0如果低于3.0请升级npmnpm i -g npm全局装vue-clinpm i -g @vue/cli插曲:我第一次安装 vue/cli的时候,npm不断提示 ERR! write after endroot...原创 2018-06-21 08:22:19 · 21883 阅读 · 4 评论 -
监控/触发text input变化的事件大全,总有一个会命中
监控/触发text input变化的事件大全,总有一个会命中如果是要绑定text input的变化:elem.bind("propertychange change click keyup input paste", function(event){...})如果是要触发text input的变化:.trigger("propertychange").trigger("change").tri原创 2017-11-08 04:55:51 · 610 阅读 · 0 评论 -
Underscore.js API 学习笔记
Collections_.first 可以挑选出数组中第一个元素,比[0]更可读_.reduce可以将整个数组合并成一个数字,第三个参数是初始值,如果没有就采用数组的第一个数字作为初始值var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);=> 6_.reduceRight 是 _.reduce的从右原创 2017-07-16 09:24:43 · 723 阅读 · 0 评论 -
xpath如何通过class来定位元素
xpath中没有提供对class的原生查找方法。但是我在stackoverflow上看到了一个很有才的回答。现翻译如下原帖链接(不管你能不能看到,总之原帖都是要贴的,要看到请自带天梯):http://stackoverflow.com/questions/1604471/how-can-i-find-an-element-by-css-class-with-xpathThis selector s翻译 2016-08-11 06:35:36 · 18141 阅读 · 0 评论 -
当 jquery 发送 ajax 请求的时候遇到服务端session过期超时返回 302 跳转登陆页面的时候怎么办的处理方法
我们可以利用jquery.ajax的datafilter ,请保证你的所有请求只有登陆页面有一个特殊的字符串,比如在这个例子中我们用 “登陆页面” 作为特殊字符串。请在公共的header头里面写上这样的js代码//做一个过滤器处理服务端超时后302的情况 $.ajaxSetup({ dataFilter:function(response){ if(response.原创 2013-11-20 16:07:48 · 5237 阅读 · 0 评论 -
解决 jquery 在 eclipse 里面报错的最佳方案
在网上看到很多 jquery-xxx.js 在eclipse中报错的解决方案大多是说 项目右键 Properties->Validation->JSP Content Validator 这项的右边点击 ... 按钮,然后点 Add Exclude Group->在 Exclude Group 点 Add Rule->Folder or file name 然后选到 jquery-xxxx.js原创 2013-08-05 15:37:16 · 7291 阅读 · 2 评论 -
利用jQuery的$.event.fix函数统一浏览器event事件处理
做WEB前端开发的人都知道不同的浏览器对事件的处理方式是有区别的。比如得到触发事件的元素引用在IE浏览器下是:event.srcElement,在FF浏览器下则是:event.target,另外又比如在FF浏览器下得到光标相对页面的位置是event.pageX,而IE浏览器下的处理方式又是不一样的,当然还有一些像“阻止事件冒泡”以及“取消浏览器默认行为”等,不同浏览器也有不同的处理方式转载 2013-06-06 14:25:07 · 1287 阅读 · 0 评论 -
spket 强大的注释功能
在spket中注释已经不仅仅是给人看的了,现在还可以使用注释帮助IDE更好的提供代码提示,视频演示请看:http://www.spket.com/demos/demo3.html原创 2008-05-22 09:26:00 · 1412 阅读 · 0 评论 -
一个可以根据自己的要求定制滚动条的网站
http://ajaxload.info/#preview原创 2008-05-22 09:15:00 · 992 阅读 · 0 评论 -
jQuery 使用注意点技巧1
1、$函数的使用技巧和注意点div id="msg" value="content">aaadiv>$("#msg").value的写法是错误的,因为:通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。这样就很明了了,如果要得到msg原创 2008-05-21 15:36:00 · 1185 阅读 · 0 评论 -
dhtmlxtree 的使用教程——带复选框的javascript树
在网上找带复选框的javascript树,找了很多都不是很满意,终于找到了dhtmlxtree。关于下载dhtmlxtree我就不说了,百度上一搜就有。下载下来后打开 dhtmlxTree/samples/treeEx23.html这就是我们需要的带 复选框的javacript树的最好例子,看到下面那颗三态树,所谓的三态树就是,选择框有三种状态,选中,没选中和半选中状态(文件夹的时候出原创 2008-05-20 22:52:00 · 6789 阅读 · 2 评论 -
当别人拷贝时自动加上本站地址
document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "/r/n本篇文章来源于 XXXXXXXXXXXXX|www.XXXXXXXXXXXXX.COM 原文链接:"+location.h原创 2008-07-20 01:18:00 · 980 阅读 · 0 评论 -
用 label 来扩展 input 标签
input id="notChked" type="checkbox"/>label for="notChked">not me brotha!label>这样就扩展了 id 叫 "notChked"的 input ,点击这个label也相当于点到了那个input,类似的可以用label扩展别的按钮之类的元素。原创 2008-05-08 16:01:00 · 1382 阅读 · 0 评论 -
javascript 中的捕获异常
大家是不是觉得调试javascript非常的痛苦,我也觉得。只要能找到一点可以帮助我们调试javascript的好方法我们都要用上。其实javascript中也可以捕获异常的,比如:div id=bbb style="display:none">asdfdiv>script> function a() ...{ try ...{原创 2008-05-08 14:42:00 · 1507 阅读 · 0 评论 -
javascript 中的继承
继承主要是用到了 js 中的call 或者 apply 函数call方法JScript参考中的说明:调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]]),但是没有示例 apply方法JScript参考中的说明:应用某一对象的一个方法,用另一个对象替换当前对象。apply([thisObj[,argArray]])原创 2008-05-06 10:54:00 · 1085 阅读 · 0 评论 -
setTimeOut传参数的时候的写法
无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数。先看一个简单的代码:function show(){ alert("Hello World");}setTimeout(show,1000);这段代码的效果是在1秒后显示hello world,但是如果改成 setTimeOut(show(),10原创 2008-05-03 14:01:00 · 7032 阅读 · 0 评论 -
jQuery使用注意点技巧2——jQuery 选择器详解
要用好jQuery首先要用好选择器,连元素都获取不了的话,就谈不上什么特效什么插件了,而且jQuery的选择器用法简单全部学会也不会花你多少时间的,不过有一点还是需要注意的:通过jQuery的选择器获得的是jQuery对象集合,不能直接使用dom对象的方法,如果要使用dom的方法要取出其中意向,比如:$(#msg)[0].innerHTML或$(#msg)[0].value。jQuer原创 2008-05-24 15:36:00 · 3413 阅读 · 2 评论 -
jQuery 使用注意点技巧3
1、$(div).eq(i) 这样才能取到 jquery 对象2、$("p").click(function(){alert($(this).html())}) //为每个p元素增加了click事件,单击某个p元素则弹出其内容注意那个$(this)$("tr").each(function(i){this.style.backgroundColor=[#原创 2008-05-26 01:26:00 · 1043 阅读 · 0 评论 -
超级强力推荐!240个jquery插件
原帖地址:http://www.cnblogs.com/Terrylee/archive/2007/12/09/the-ultimate-jquery-plugin-list.htmljQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及的,它兼容 CS转载 2008-05-23 23:53:00 · 1234 阅读 · 0 评论 -
safari上的鼠标点击hover css属性-webkit-tap-highlight-color
CSS property: -webkit-tap-highlight-colorDescriptionOverrides the highlight color shown when the user taps a link or a JavaScript clickable element in Safari on iPhone.This property obeys the转载 2013-06-06 14:03:43 · 4083 阅读 · 0 评论 -
ie6下jquery submit 方法失效 不起作用 的解决方案
ie6下不能这么写aaafunction play(player){ $('#myform').submit();}要改成这样,###代表不跳到页面头,还保留在当前位置aaafunction play(player){ $('#myform').submit();}原创 2013-06-12 17:38:54 · 1761 阅读 · 0 评论 -
CI跟swfupload结合 出现302的解决方案
出现 302 多半是因为 flash 插件不会使用 ie的cookie, 所以登陆的 hook 无法还原 sessionid 导致CI认为没有登陆,造成 redirect到 Login yemian de 302曾经有人写过一篇文章http://www.shirne.com/?cid=17&id=145 但是我照他的方法,虽然很有帮助但是还是无法搞定,于是自己研究了,以下是解决方案:前提原创 2013-05-22 00:40:20 · 2569 阅读 · 0 评论 -
各平台播放器以及浏览器的navigator.userAgent
ipad:百度影音:Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Mobile/9A405safari: Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like原创 2013-04-05 17:58:20 · 2032 阅读 · 0 评论