JavaScript checking for null vs. undefined

JS中undefined表示变量没有定义或从来没有赋值,而null是空对象,是有值的。
例如:

var a;
alert(typeof a);
//"undefined"

a = null;
alert(typeof null);
//"object"

JS中==比较为弱类型比较,JS会自动进行类型转换,然后返回值的比较结果。
而===为强类型比较,即必须类型与值同时相同,才会相等。
例如:

alert(0 == "0");
//true

alert(0==="0");
//false

alert(undefined == null);
//true

alert(undefined === null);
//false

判断变量为null:

if (a === null)
// or
if (a == null)

第一种方法,当a为undefined时返回false,
第二种方法,当a为undefined时返回true。

判断变量为undefined:

if (typeof a === "undefined")
// or
if (a === undefined)
// or
if (a == undefined)

第一、二种方法,当a为null时返回false,
第三种方法,当a为null时返回true。

还有一种使用falsey进行检查的方法:

if (!a) {
    // `a` is falsey, which includes `undefined` and `null`
    // (and `""`, and `0`, and `false`)
}

大部分翻译自stackoverflow:
JavaScript checking for null vs. undefined and difference between == and ===

JS中null与undefined

1.undefined是js的一个原始值,不是一个对象,表示变量没有初始化,
null也是js的一个原始值,不是一个对象,他表示变量为空,但由于语言设计的缺陷,导致typeof(null)为object,而正确的应该为null

alert(typeof(null));      // object
alert(typeof(undefined)); // undefined

alert(null !== undefined); //true
alert(null == undefined);  //true

2.object == null 与 !object 是不同的,因为!object相当于!Boolean(object)

alert(Boolean(null)); //false
alert(Boolean(0));    //false
alert(Boolean(""));   //false
alert(Boolean({}));   //true
alert(Boolean([]));   //true

Table删除所有行

1.用jquery的话,还是很简单的

$("#tbid").empty();

2.但如果要保留前几行,比如前两行的话

function ClearTableData(tbid){
	var rows = document.getElementById(tbid).getElementsByTagName('tr');
	if(rows==null || rows.length<3)return;
	for(var i=2;i<rows.length;i++)
	{
		rows[i].parentNode.removeChild(rows[i]);
	}
}

JQuery动态加载Table

用于在同一Table显示两级内容
点击一次,会用ajax从服务器加载json数据,并添加到该行下面
再点击一次,会利用name属性,删除对应的行

function ExpendPatient(srow,pid){
    var imgc = "#p"+pid+"imgc";
    var imgo = "#p"+pid+"imgo";

    if($(imgo).is(":visible"))
    {
        $(imgo).hide();
        $(imgc).show();
        
        delrows = document.getElementsByName("p"+pid+"study");
        for (var i=0;i<delrows.length;i++) 
        {
            delrows&#91;i&#93;.parentNode.removeChild(delrows&#91;i&#93;);
        }
        return;
    }
    $(imgc).hide();
    $(imgo).show();
    
    aurl="xxxxxxxxxxxx?patPk="+pid;
    try
    {
        $.ajax({
          url: aurl,
          dataType: 'json',
          error: function(XMLHttpRequest, textStatus, errorThrown){
            alert('错误原因 ' + textStatus);
            alert('错误堆栈 ' + errorThrown);
            alert('返回字符 ' + XMLHttpRequest.responseText);
          },
          success: function(data) {
              $.each(data,function(i,record){
                  r = '<tr height="30" name="p'+pid+'study" onclick="DoSomeThing(this,'+record&#91;"pk"&#93;+');"&#93;';
                  r += '<td></td>';
                  r += '<td>'+record["a"]+'</td>';
                  r += '<td>'+record["b"]+'</td>';
                  r += '<td>'+record["c"]+'</td>';
                  r += '<td>'+record["d"]+'</td>';
                  r += '<td>'+record["e"]+'</td>';
                  r += '<td>'+record["f"]+'</td>';
                  r += "</tr>";
                  $(srow).after(r);
              });
          }
        });
    }
    catch(e)
    {
        alert(e);
    }
}

JS全选CheckBox

//type=1 全选
//type=2 全不选
//type=3 反选
function selectAll(form, type) 
{
	var elems = form.elements;
	for ( var i = 0 ; i < elems.length ; i++ ) 
	{
		var e = elems[i];
		if(e.type == 'checkbox')
		{
			switch(iType)
			{
			case 1:
				e.checked = true;
				break;
			case 2:
				e.checked = false;
				break;
			case 3:
				e.checked = !(e.checked);
				break;
			}
		}
	}
}

function   checkAll()
{
	var elems=document.getElementsByTagName( "INPUT ");
	for(i=0;i<elems.length;i++)
	{
		var e = elems[i];
		if(e.type.toLowerCase()== "checkbox ")e.checked=true;
	}    
} 

JQuery实现li菜单

$(function() {
	var ctrl = document.getElementById("mainframe");
	var $div_li = $("div.div_header ul li");
	$div_li.click(function() {
		var index = $div_li.index(this);
		
		if (index != 4){
			$("li.selected").removeClass( "selected" );
			$(this).addClass("selected");
		}
		
		if (index == 0) {ctrl.src = "";} 
		else if (index == 1) {ctrl.src = "";} 
		else if (index == 2) {ctrl.src = "";}
		else if (index == 3) {ctrl.src = "";} 
		else if (index == 4) {window.location.href = "logout.jsp";}
	}).hover(function() {
		$(this).addClass("hover");
	}, function() {
		$(this).removeClass("hover");
	});
});