值为flase的有:

false
0  
"" //空串
null
undefined
NaN 

除了以上的之外的都是ture,包括"0" (zero in quotes), "false" (false in quotes) , empty functions, [](空数组), and {}(empty objects),都是为true

var a = !!(0);    // false
var b = !!("0");  // true

为false的类型之间的比较:

false0 (zero), and "" (empty string)这三个都是"=="相等的

var c = (false == 0); // true
var d = (false == ""); // true  
var e = (0 == ""); // true  

null 和 undefined 除了他们自己本身相比较是"=="相等的,与其他的值相比较是不相等的

var f = (null == false); // false  
var g = (null == null); // true  
var h = (undefined == undefined); // true
var i = (undefined == null); // true  

还有一个比较特殊的NaN,他和任何一个值都不相等

var j = (NaN == null); // false  
var k = (NaN == NaN); // false 

typeof(NaN)返回的“number”,一般我们通过isNaN()来判断一个值是不是NaN

上面的情况,如果使用“===”严格全等和“!==”严格不等,情况又不太一样了,这两个比较的是包括了类型和值

var l = (false == 0); // true
var m = (false === 0); // false

附上两适用的方法:

1.检查是否位空数组

var n =  ([].length == 0)  // ture

2.检查是否位空对象

var obj = {};
for (var i in obj){
    if(obj[i]) {
        return true;
    } else {
        return false;
    }
}

 

  

 

posted @ 2012-08-17 15:15 learn_javascript 阅读(259) 评论(2) 编辑

jsPerf提供了一个简单的方法来创建和分享的测试用例,比较不同JavaScript代码片断在不同浏览器的性能,输出对比结果。

http://jsperf.com/

实例截图:

jquery  中   show vs class

测试代码:

<div id="test" class="active"></div>
<div id="test2" style="display:block;"></div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
 
<script>
  Benchmark.prototype.teardown = function() {
    $('#test').addClass('active');
    $('#test2').show();
  };
</script>

  

 

 

浏览器下性能对比:

 

 

posted @ 2012-04-25 18:45 learn_javascript 阅读(207) 评论(0) 编辑

运用超大规模继承电路规划算法实现CSS Sprites面积最小化

地址:http://cly.jsser.com/sprites/

 

实现效果截图:

posted @ 2012-04-20 11:10 learn_javascript 阅读(78) 评论(0) 编辑

1. 结构尽量简单,最好使用table布局

可以保证在CSS样式失效、或者html被禁用的情况下最大程度的还原布局和样式。

2. 不要使用<head>标签

一般会被过滤掉。

3. 不要使用JavaScript和Flash

正常情况下这个是绝对被过滤的。。

4. 使用内联CSS样式,不要引入外部CSS文件,不要使用<style>标签

Gmail等不支持style标签。

5. CSS禁忌:不要使用绝对定位,不要使用背景图片,不要使用半透明,不要使用IE滤镜和CSS表达式,不要使用CSS3属性……

6. 图片要添加alt属性,保证在禁用图片的情况下传递有效信息

7. 图片添加宽高属性

8. 不要试图使用iframe引入外部页面

9. 尽量精简代码,减少图片数量和体积

10. 一般使用UTF-8编码

邮件客户端/服务商对CSS支持情况:

原文地址:http://www.oncoding.cn/2010/email-coding/

其他文章推荐:http://www.docin.com/p-32193901.html

posted @ 2012-03-29 10:36 learn_javascript 阅读(119) 评论(0) 编辑

直接上代码啦:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
  <title>Untitled</title> 
</head> 
<body> 
<script type="text/javascript"> 
function foo() { 
  alert("document.body.parentNode.previousSibling.tagName\n" + document.body.parentNode.previousSibling.tagName); 
  alert("document.body.parentNode.parentNode.firstChild.tagName\n" + document.body.parentNode.parentNode.firstChild.tagName); 
  alert("document.body.parentNode.parentNode.firstChild.nodeName\n" + document.body.parentNode.parentNode.firstChild.nodeName); 
  alert("document.body.parentNode.parentNode.firstChild.nodeValue\n" + document.body.parentNode.parentNode.firstChild.nodeValue); 
  alert("document.body.parentNode.parentNode.lastChild.tagName\n" + document.body.parentNode.parentNode.lastChild.tagName); 
  alert("document.body.parentNode.parentNode.lastChild.nodeName\n" + document.body.parentNode.parentNode.lastChild.nodeName); 
} 
function redoctypeme(which) { 
  alert("before\n" + document.body.parentNode.parentNode.firstChild.nodeValue); 
  if(which == 1) { 
    document.body.parentNode.parentNode.firstChild.nodeValue = "DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""; 
  } 
  else { 
    document.body.parentNode.parentNode.firstChild.nodeValue = "DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\""; 
  } 
  alert("after\n" + document.body.parentNode.parentNode.firstChild.nodeValue); 
  foobar = document.body.innerHTML; 
  alert("empty"); 
  document.body.innerHTML = ""; 
  alert("reset"); 
  document.body.innerHTML = foobar; 
} 
</script> 
<a href="javascript: foo()">stuff</a> 
<a href="javascript: redoctypeme('1')">doctype 1</a> 
<a href="javascript: redoctypeme('2')">doctype 2</a> 
<hr> 
<div style="background: #0c0; width: 200px; color: #fff;">200px</div> 
<div style="background: #c00; width: 200px; padding: 20px; border: 30px solid #00c;"> </div> 
<div style="background: #0c0; width: 300px; color: #fff;">300px</div> 
</body> 
</html> 

  

posted @ 2011-12-21 13:11 learn_javascript 阅读(225) 评论(0) 编辑
摘要: http://dean.edwards.name/主要代码: 1 // array-like enumeration 2 if (!Array.forEach) { // mozilla already supports this 3 Array.forEach = function(array, block, context) { 4 for (var i = 0; i < array.length; i++) { 5 block.call(context, array[i], i, array); 6 } 7 }; 8...阅读全文
posted @ 2011-12-02 11:19 learn_javascript 阅读(63) 评论(0) 编辑
摘要: project标签project标签是每个构建文件的根标签,该标签的语义是代表一个项目。project标签常用属性如下:(1) default表示默认的运行目标,这个属性是必须的。(2) basedir表示项目的基准目录。(3) name表示项目名。target标签target标签表示的是一个生成过程或是一个任务。一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target标签。target标签常用属性如下:(1).name表示target名。(2).depends表示依赖的目标。property标签property标签用于定义一个类似于程序语言中的变量,但是阅读全文
posted @ 2011-11-17 13:49 learn_javascript 阅读(265) 评论(0) 编辑
摘要: OverviewSource: Efficient JavaScript - ECMAScriptFirst understand the big picture and the major component of the stack affecting the performance. It is of utmost importance to understand what can and cannot be optimized in JavaScript without touching the browser codebase. A good starting point for t阅读全文
posted @ 2011-09-26 10:35 learn_javascript 阅读(141) 评论(0) 编辑
摘要: 方法1:.fixed { position: fixed; _position: absolute; _top: expression(eval(document.documentElement.scrollTop)); } html { _text-overflow:ellipsis; }方法2:.fixed{ position: fixed; _position: absolute; _top: expression(eval(document.documentE...阅读全文
posted @ 2011-08-24 09:22 learn_javascript 阅读(64) 评论(0) 编辑
摘要: <!DOCTYPE HTML><html><head> <meta charset="utf-8" /> <title></title> <meta property="og:site_name" content="site name" /> <meta property="og:title" content="title" /> <meta property="og:image&qu阅读全文
posted @ 2011-08-22 15:45 learn_javascript 阅读(219) 评论(0) 编辑