
JavaScript
文章平均质量分 69
小姜哥
用一劳永逸的方式解决问题
展开
-
前端的几个简单问题
今天同事问了我几个问题,一时手贱就发到这里,仅建议初学者阅读。1、使用link标签引入css和使用@import引入css的区别2、js移动dom节点其实关键点是是否移动后要在原位置删除移动的节点,很多初学者都不理解。3、js创建样式原创 2013-04-01 10:04:05 · 1165 阅读 · 0 评论 -
js性能优化
选择合适的算法是性能优化的第一考虑要素,若能根据实际问题找出合适的算法可能会使得性能提升成百上千倍。像去掉多余的赋值,缓存中间计算结果等较算法的改进都逊色的多。所以单纯说js性能优化(非dom)还是要考虑算法,例如数组查重问题。下面简述数组查重问题。问题描述:有两个数组m和n,将m和n中都存在的元素取出来。实现一:var rs = [];for(var i = 0, ii =原创 2013-09-08 19:22:07 · 1523 阅读 · 0 评论 -
DOM对象的dataset属性
HTML5规定DOM对象中有个dataset属性对象,可以在该对象中存一些与该DOM对象相关的数据。如上写法是在生成dom对象时对dataset的一个初始化的动作,dataset中会存在一个id属性和age属性。这里需要注意data-仅仅是一个约定好的前缀,在生成DOM对象时所有已data-开头的属性会将其去掉前缀data-后存在dataset中。原创 2013-12-11 20:54:51 · 11550 阅读 · 0 评论 -
DOM对象的classList对象属性介绍与用法
DOM4级规定DOM对象需要实现一个名为classList的对象属性,该属性中提供了一些方法用于操作DOM class的方法,虽然现在尚处于草案阶段,但已经被浏览器广泛支持,从http://caniuse.sinaapp.com/html/item/classlist/index.html网站可以看出浏览器兼容性还是不错的。原创 2013-12-10 21:28:48 · 2986 阅读 · 0 评论 -
使用nodejs实现守护进程
写一个一直运行永远不挂掉的程序是一件很难的事儿,至少一次性写成很难。但是为了不因为程序挂掉而耽误时间我们往往需要一个守护进程来看着程序是否挂掉,如果挂掉那么将程序重启,重启的同时还要收集挂掉的原因,这样我们的程序才会越来越健壮。今天我遇到了这样的问题,如下是我使用nodejs实现的一个守护进程,var spawn = require('child_process').spawn;fun原创 2014-04-06 20:44:15 · 3765 阅读 · 0 评论 -
结合正则表达式验证数学公式(含变量,js版)
今天有朋友让我帮他写一个正则表达式,要求能验证一个数学公式格式是否正确。数学公式中有括号,变量(未知数)和运算符,而且变量是重数据库中读取的,可以任意添加和删除。这个用一个正则表达式实现是不可能的,所以我给他写了一个函数,如下:原创 2014-05-02 17:05:05 · 14759 阅读 · 5 评论 -
Chrome vim扩展 之 cVim 插件 键盘党的利器
博客搬家:由于各种原因,我现在的博客将首发于blog.mojijs.com, 可以百度搜索 “姜哥的墨迹技术博客” , 或者 点击这里 本文地址http://blog.mojijs.com/post/150.html 以前用过vrome这样的扩展,今天说的是cVim,也挺好用,VI风格操作浏览器。安装就不说了,到Chrome网上应用店去找就成,找到后添加到Chrome。原创 2015-10-19 20:49:24 · 4474 阅读 · 0 评论 -
fiddler filters 使用(fiddler只显示指定请求,fiddler不显示指定请求,即filter请求过滤)
fiddler filters 使用(fiddler只显示指定请求,fiddler不显示指定请求,即filter请求过滤)Fiddler 有一个filters可以很好的帮助我们只显示我们关系的请求或者隐藏掉我们不关心的请求。这在开发中是非常有用的,尤其是你在这边想看请求,那边有程序或者网站在自动频繁发送求情,真的很烦。回想一下买票插件,是不是会在不停的刷,你在fiddler看东西就会很烦。原创 2015-11-06 12:44:22 · 65929 阅读 · 6 评论 -
js中的原型和继承
js原型,原型链,继承,私有变量,类变量,静态变量等有关面向对象的内容。原创 2013-07-23 09:34:19 · 2172 阅读 · 1 评论 -
weinre,移动端远程调试工具(适用于Android和Windows Phone)
博客搬家:由于各种原因,我现在的博客将首发于blog.mojijs.com, 可以百度搜索 “姜哥的墨迹技术博客” , 或者 点击这里 本文首发地址 http://blog.mojijs.com/post/147.htmliOS Safari 可以连接到Mac OSX进行远程调试(OSX 10.6+),但是Android和Windows Phone就不行了,但是我们可以用weinre来原创 2015-10-11 16:23:48 · 1194 阅读 · 0 评论 -
你自认为理解了JavaScript?
优快云论坛里有个帖子,“你自认为理解了JavaScript?”,Dmitry Baranovskiy在自己的博客里出了五道测试题,测试一下大家是否真的懂JavaScript。我对五道题做了解答,建议大家读读ecmascript标准。原创 2013-07-05 08:42:01 · 2881 阅读 · 5 评论 -
转义字符(\)对JavaScript中JSON.parse的影响
一般来说在JSON.parse的参数包含转移字符的时候会遇到两次转义的问题,其实第一次是字符串本身的转义,第二次是将真正转为js对象的转义。原创 2013-07-17 09:54:01 · 15619 阅读 · 0 评论 -
大学生该如何自学前端技术(HTML CSS JavaScript)?
大学生该如何自学前端技术(HTML CSS JavaScript)?这段时间面试了几个实习生,都是在校的研究生,有了一些想法,在这里记录一下。据说很多学校都是不教前端编程的。还有好多学校是虽然教,但是只是用一两节课让同学们知道有HTML+CSS+JavaScript这么个东西,都入不了门,之后老师领着做东西,做法就是扒别人的网页,简单改一下。如果这些都是真的,那么前端技术就得靠自学原创 2015-12-07 14:58:50 · 3821 阅读 · 3 评论 -
repaint和reflow(高效的操作DOM)
我现在的工作对页面的性能要求很高,这一年多以来对这方面有了更深刻的认识,早就想写一些关于这些内容的文章,今天抽时间先写repaint和reflow。使用js操作DOM时repaint和reflow是经常发生的,如果处理不好这就是页面性能的瓶颈,表现出来现象可能是用户操作响应不及时,浏览器进程cpu特别高。什么是repaint?repiant或者redraw遍历所有的节点检测各节点的可见原创 2013-09-08 17:42:07 · 2955 阅读 · 0 评论 -
通过一段代码简单说js中的this
原因是js的this是动态决定的,和你调用方式有直接关系。简单说如果你调用一个函数的时候使用“对象.函数名”的方式,那么this就是这个.(点)之前的对象,否则是window。原创 2013-07-23 16:49:04 · 1480 阅读 · 0 评论 -
css优化技巧
1、使用css精灵。好处是将css中使用的小图片可以合并为一张大图片减少了对服务器端的请求,服务器压力小,页面加载速度也快。2、合并多个css文件为单个css文件。好处同css精灵3、使用外部css。外部css可以被浏览器缓存,而且便于维护。4、将css放在head中。可以参考雅虎的文档http://developer.yahoo.com/performance/rul原创 2013-09-08 16:17:41 · 1497 阅读 · 2 评论 -
正则表达式的或(|)(一个烂正则表达式引发的博客)
Email:longsu2010 at yeah dot net如题,我很荣幸的宣布,这个烂正则表达式的作者是我。起源于Unix的正则表达式一直是字符串处理的瑞士军刀,今天用这刀写了一段程序,结果与预期的不相符。如下/^Task0|Task1|Task10$/这个正则表达式我期待的结果是只匹配Task0、Task1、Task10三者之一,然而它却能匹配Task11、Task12等任原创 2013-05-09 10:13:11 · 1230 阅读 · 0 评论 -
JavaScript String.replace函数参数说明
Email:longsu2010 at yeah dot netjs String的replace函数的函数签名如下:replace(match/* 字符串OR正则表达式 */, replacement/* 字符串OR函数 */)作用是将源自符串中的match替换为replacement并返回替换后的字符串。如果第一参数是字符串就没什么好说的了,但是要记住此时只在源自符串替换一次m原创 2013-06-06 10:11:49 · 2700 阅读 · 0 评论 -
JavaScript交流贴
这篇博客没有任何技术性问题来阐述,只是希望通过留言的形式和大家一起探讨JavaScript的相关知识。可以包括ECMAScript标准、JavaScript程序设计、JavaScript框架等等。各种和JavaScript相关的问题和知识都欢迎在这里讨论。同时希望大家踊跃提问踊跃踊跃给出自己的问题。原创 2013-07-11 08:50:34 · 2016 阅读 · 4 评论 -
JavaScript中的对象(一)
本文讲述了当对JavaScript内建的原始值进行点(.)操作时解析器的行为。如果你读过Nicholas C. Zakas的《JavaScript高级程序设计》你一定会记得其中对此有详细的解释。翻译 2013-07-11 14:16:56 · 1790 阅读 · 0 评论 -
修改构造函数原型——JavaScript中的对象(二)
本文讲述了JavaScript中重写原型后原型不一致的问题和constructor属性指向问题。动态修改原型对象不会在已有对象中生效。重写原型对象后constructor的指向将是不可信的,可以在重写原型后将constructor属性重新赋值。翻译 2013-07-12 09:58:28 · 2600 阅读 · 0 评论 -
消除JavaScript中的if
我的脑海中总在浮现一个问题:“我能不能在写JavaScript的时候不出现if块?” 受Chris Owen对于SmallTalk的阐述启发我写出了类SmallTalk的无if实现。翻译 2013-07-11 15:06:45 · 1622 阅读 · 0 评论 -
JavaScript细微差别(函数声明与函数表达式及浏览器差异)
我将描述一个JavaScript的古怪问题。幸运的是我之前从未在实际工作中出现问题。我确信function a(){}和var a = function (){}是完全相同的的。翻译 2013-07-11 16:06:05 · 2103 阅读 · 0 评论 -
正则表达式速查表
Email:longsu2010 at yeah dot net正则表达式在工作中经常用,但是有些东西就是记不住,我从来不强求自己去记记不住的东西。我的选择是整理出来,用的时候查。如下是我常用的正则表达式速查表(不是我的作品)。原创 2013-08-07 12:07:45 · 1899 阅读 · 0 评论 -
js实现发布订阅模型(雏形)
Email:longsu2010 at yeah dot net 今天花了一点时间写了个订阅发布模式的雏形,仅是一个雏形,写的很简单,很不完善,比如事件(主题)回调函数的this都没做处理。 有时间再继续完善吧,或者说有人顶我就有动力来完善,现阶段仅供抛砖,有任何疏漏错误欢迎指正。(function(){/*** 事件对象的构造函数*/function Event(na原创 2013-08-20 09:33:06 · 1738 阅读 · 0 评论 -
js实现面向切面的编程(AOP)
Email:longsu2010 at yeah dot net面向切面的编程(AOP)还是有点意思的,可以在不修改原有代码的情况下增加新功能。有一些js框架实现AOP功能,但是有些时候我们并不能依赖于框架写程序(框架可能很笨重),我们需要自己实现一些适合我们的功能模块。下面是我自己实现的js AOP,实现了before和after功能,仅供抛砖。如下是aspect.js,是实现AOP原创 2013-04-08 00:58:37 · 5767 阅读 · 2 评论 -
浅谈HTML5 WebSocket
Email:longsu2010 at yeah dot netWebSocket是我现在所在的公司获取数据的主要通道,也是我工作的重要组成部分。今天看同事讨论这个问题,出现了好多有趣的事情,比如说要把WebSocket做成同步的来调试错误(WebSocket是异步全双工通信,标准就是这样的),所以对WebSocket做一个简单的说明,如果有需要后期可能会做一个详细的补充,欢迎关注我的优快云原创 2013-06-19 11:13:11 · 2266 阅读 · 0 评论 -
js构造函数原型(prototype)问题分析(一段烂代码引发的博客)
Email:longsu2010 at yeah dot net很久以前有人发了我如下的代码, 问我有什么问题。今天旧话重提,我索性就写一篇博客分享给大家。事先声明,本博只分析问题,并不提供解决方案(我并不清楚写这段代码的人的真正意图)。代码咋一看很头疼,仔细看更头疼,反正我不会这么写代码。代码如下:function aaa(sColor){ this.color = sColo原创 2013-04-09 10:54:29 · 2326 阅读 · 2 评论 -
encodeURIComponent vs encodeURI vs escape
先看一段描述:1、encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。2、encodeURI() 函数可把字符串作为 URI 进行编码。3、escape() 函数可对字符串进行编码。那区别是什么?如下:1、escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z2、encodeURI不编码字符有82个:!,#,$原创 2013-09-07 22:22:28 · 1773 阅读 · 0 评论 -
JavaScript let (EcmaScript 6 let), JavaScript 局部变量
JavaScript let (EcmaScript 6 let), JavaScript 局部变量。let声明一个块级域的局部变量,并且可以同时初始化该变量。语法1let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];原创 2015-12-07 14:48:05 · 1441 阅读 · 0 评论