JavaScript

function与感叹号

最近有空可以让我静下心来看看各种代码,function与感叹号的频繁出现,让我回想起2个月前我回杭州最后参加团队会议的时候,@西子剑影抛出的一样的问题:如果在function之前加上感叹号 (!) 会怎么样?比如下面的代码: !function(){alert('iifksp')}() // true 在控制台运行后得到的值时true,为什么是true这很容易理解,因为这个匿名函数没有返回值,默认返回的就是undefined,求反的结果很自然的就是true。所以问题并不在于结果值,而是在于,为什么求反操作能够让一个匿名函数的自调变的合法? 平时我们可能对添加括号来调用匿名函数的方式更为习惯: (function(){alert('iifksp')})() // true 或者: (function(){alert('iifksp')}()) // true 虽然上述两者括号的位置不同,…

Image Lazy Loading

文章比较老了,下面的内容已经过时。现代浏览器中无法实现伪延迟加载。文中提到的插件所实现的伪延迟加载在现代浏览器下也没有效果。 延迟加载 Lazy Loading 是一种设计模式,和预加载 Preloading 相反,最简单的说法就是“按需加载”。如果用在网页里,最多的就是图片的延迟加载。对于一张自上而下的充满图片的页面,尤其是图片列表形式,Lazy Loading的效果会非常的明显,能大幅提高加载速度和体验。大概是近期发觉自己博客里的图片日益变多,所以就打算赶下流行(似乎很大一部分博客都有使用),也简单做一下图片延迟加载。 虽然大部分的框架和插件都提供类似功能,但是代码原理也大都是类似——获取视点即viewpoint的高宽、图片的位置以及当前浏览页面部分的位置,由此判断图片是否在我们的浏览范围之内,如果是则加载它。…

JavaScript字符串连接性能

起初今天碰到的字符串拼接的性能问题并不是关于JavaScript的,而是有关PHP的,名为PHP中的高性能字符串连接( High-Performance String Concatenation in PHP )。众所周知,PHP是用“点”来连接字符串的: $str = 'a' . 'b'; $str .= 'c'; 并且和JavaScript类似,PHP也可以通过Array来拼接字符串: $str = implode(array('a', 'b', 'c')); 问题就是,当拼接达到上万的数量级之后,哪一种性能更好呢? // standard string…

IE9,Opacity 和 Alpha

译自同名IEBlog:IE9, Opacity, and Alpha,关于IE9和透明度兼容CSS和JS代码。日期是昨晚(8/17)6:15。 -------------以下为我的译文------------- IE9引入了 CSS3 Color Module 的支持,包括其中已普遍使用的透明度( opacity )属性。如同我们已经完成的其他基于标准的特性,为了在其他浏览其中的相同的标记能工作在IE9的标准模式下,IE9实现了透明度。 IE8以及其之前的版本实现了另一种替代的机制,使用IE特定的滤镜( filter )属性中的 alpha filter 来应用透明度。…

Web书评

整理行装的时候,瞥见这张一年半前的照片,然后在柜子了浏览了一下这些见证过往的书籍。原来也曾这么这么地努力过:)。现在,书更多了一些,有几本书借出去了,所以合影似乎没多大的意义。所以仍旧用这张照片,怀念下阳光里,一本书,一首曲子的时光。 以前总是看别人的书评。当然在不看书评前,自己总是乱买书,结果总是有几本书比较糟糕。但好在数量不是很多。在即将重新启程的当前,自己也该写个书评总结回顾下。题外话,书看多了,也没啥好的。 《JavaScript 权威指南》— David Flanagan 厚的书总之给人无形的压迫感,JavaScript权威指南,也就是大家俗称的犀牛书,就是这么一本近千页的书,…

JavaScript和C的数学解题

这段时间,怿飞的博客上有一篇用 JavaScript 解数学题,代码很简练优雅。于是突然想用C写写看,因为很久没写,就权当是练习也挺不错啊:) 题目是这样的:一个六位数,分别用2,3,4,5,6乘它,得到的五个新数仍是由原数中的六个数字组成,只是位置不同,则此六位数是多少? #include <stdio.h> #include <string.h> #define DIGIT…

滑动展示窗

又是一个挖坟的POST. 这段短短50行的JS滑动窗效果,算是我的第二次JS编写(2009-04-06)。最后作为了毕业论文网站的一个小插曲。 DEMO <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&…

JavaScript菜单抖动

挖出了一些很怀念的代码。 这是一段我最早写的JS代码,大概时间是2008年中期的事了,实现的是一个菜单抖动的效果。看看这些代码,总是能回想起刚开始写JS时的兴奋之情。 DEMO <html> <head> <title>test</title> </pre> <pre lang="css" line=…