一般來說想要理解這段代碼,需要掌握如下兩個函數
一個是 typeof 一個就是三元運算符
看完了上面的文章再看下面的就比較好理解了
一般來說常用的函數代碼
function $(id){ return typeof id==='string'?document.getElementById(id):id;}
var GetBy = function (id) { return "string" == typeof id ? document.getElementById(id) : id; };
功能都是一樣的。
這個函數的作用就是之後用到id選擇器可以簡寫,至於判斷的意義就是傳入的參數為字符串就返回document.getElementById(id),其他的就返回參數本身,這個只是一個獲取頁面dom元素的一個簡陋版本的函數,還不夠完善。
1、這是一段JavaScript代碼
$就是一個標示符。 也可以用getID等,如果你的頁面中使用了jquery不建議使用$,因為jquery默認使用的就是$
?:是運算符
return "string" == typeof id ? document.getElementById(id) : id;
也可以寫成是
if("string" == typeof id ) return document.getElementById(id); else return id;
有人感覺上面的代碼,為什麼不用{}括起來,因為代碼比較短只有一行是不需要{}
如下所示
if("string" == typeof id ) { return document.getElementById(id); } else { return id; }
具體的可以參考這篇文章:http://www.jb51.net/article/50197.htm
2、表達式1?表達式2:表達式3
這是一個式子;他的運算過程是:先計算表達式1,如果為true,這個式子就取表達式2的運算結果,否則整個式子取值就是表達式3的運算結果,不懂的朋友可以參考這篇文章:http://www.jb51.net/article/64237.htm
在你這個例子中 表達式1是 "string" == typeof id,功能是判斷id的數據類型是否為string ,==就是判斷是否相等的運算符啊
表達式2是 document.getElementById(id) 獲取ID為 參數id的值的html元素
表達式3 就是 id這個變量(一般來說這個變量多為object),如果是對象就不用document.getElementById了,直接就可以使用了。
原創整理,轉載請注明出處