请教各位大侠一个JAVASCRIPT定义方式 请问一下我现在在看一个JAVASCRIPT脚本看到如下的语句:var TB=TB||{};请问各位大侠这个语句是什么意思啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果TB存在,TB=TB否则 TB={}; var TB=TB||{};这是一个逻辑与操作,当TB真(存在)后面的就不用再执行了,TB就是等于TB了。如果TB为假(可能是undefined,null)时就往下执行,此时TB={}了。 var poro = poro||{};首先,这里的||是或逻辑,与JAVA相同,如果poro不为null(javascript中undefined与null相同),那么||后面的语句不会执行.第二,{}在js中相当于new Object()最后,var poro = poro||{};如果porop被定义过且值不为null那么就将值为其本身,如果没有定义过就new它 [code=JScript]var TB = TB ||{};TB.Header = function(){ var f = function(v) { return typeof(v) != "string" ? v : document.getElementById(v) } ; var s = navigator.userAgent.toLowerCase(); var n = /msie/.test(s) && ! / opera / .test(s); var k = n && ! / msie 7 / .test(s) && ! / msie 8 / .test(s); var g = { getCookie : function(w) { var v = document.cookie.match("(?:^|;)\\s*" + w + "=([^;]*)"); return(v && v[1]) ? decodeURIComponent(v[1]) : "" } , parseQueryParams : function(B) { var y = { } ; var w = B.split("&"); for(var z = 0, A = w.length; z < A; ++ z) { var x = w[z], C = x.search("="); var D = x.substring(0, C); var v = x.substring(C + 1, x.length); y[decodeURIComponent(D)] = decodeURIComponent(v) } return y } , trim : function(v) { return v.replace(/^\s+|\s+$/g, "") } , hasClass : function(w, v) { w = f(w); if( ! w || ! v || ! w.className) { return false } return(" " + w.className + " ").indexOf(" " + v + " ") > - 1 } , addClass : function(w, v) { w = f(w); if( ! w || ! v) { return } if(this.hasClass(w, v)) { return } w.className += " " + v } , removeClass : function(w, v) { w = f(w); if( ! this.hasClass(w, v)) { return } w.className = w.className.replace(new RegExp(v, "g"), ""); if( ! this.trim(w.className)) { w.removeAttribute(n ? "className" : "class") } } , addEvent : function(x, w, v) { x = f(x); if( ! x || ! w || typeof(v) != "function") { return } if(x.addEventListener) { x.addEventListener(w, v, false) } else { if(x.attachEvent) { x.attachEvent("on" + w, v) } } } , stopEvent : function(v) { if(v.stopPropagation) { v.stopPropagation() } else { v.cancelBubble = true } if(v.preventDefault) { v.preventDefault() } else { v.returnValue = false } } , escapeHTML : function(w) { var x = document.createElement("div"); var v = document.createTextNode(w); x.appendChild(v); return x.innerHTML } } ; var t = g.getCookie("_nk_"); var i = g.getCookie("uc1"); var d = g.parseQueryParams(i); var p = g.getCookie("_l_g_") && t; var o = parseInt(d._msg_) || 0; var j = new Date().getTime(); var c = document.getElementsByTagName("script"); var q = c[c.length - 1].getAttribute("version") == "co"; var r = (document.location.href.indexOf("https://") === 0); function a(x) { x = f(x); if( ! x) { return } var w = x.children[1]; if( ! w) { return } if( ! r) { var v = document.createElement("iframe"); v.src = "about: blank"; v.className = "menu-list"; v.style.border = "none"; x.insertBefore(v, w); x.iframe = v } x.menulist = w; x.onmouseenter = function() { g.addClass(this, g.hasClass(this, "forum-v2") ? "forum-hover" : "hover"); if(r) { return } this.iframe.style.height = (parseInt(this.menulist.offsetHeight) - 5) + "px"; this.iframe.style.width = this.menulist.offsetWidth } ; x.onmouseleave = function() { g.removeClass(this, g.hasClass(this, "forum-v2") ? "forum-hover" : "hover") } } function m(y, x, v) { var w = document.createElement("option"); w.innerHTML = y; w.value = x; w.className = v || ""; return w }code] function e(z) { var x = f(z); if( ! x) { return } var y = x.q; if( ! y) { return } var w = x.elements.search_type; var v = x.elements.cat; v.appendChild(m(" \u6570\u5b57\u7535\u5f71/\u7535\u89c6\u5267/\u7efc\u827a", "special0", "S")); v.appendChild(m(" \u7535\u5b50\u6742\u5fd7/\u65f6\u5c1a\u751f\u6d3b/\u5a31\u4e50\u524d\u6cbf", "special1", "S")); g.addEvent(w, "change", function() { if(w.value == "dating") { g.addClass(v, "hidden") } else { g.removeClass(v, "hidden") } } ); g.addEvent(x, "submit", function(G) { var C = w.value; if(C == "item" && y.value == "" && v.value == "") { x.action = "http://list.taobao.com/browse/cat-0.htm" } else { if(v.value.indexOf("special") > - 1) { x.method = "post"; x.action = ["http://video.taobao.com/searchlist.php", "http://zazhi.taobao.com/search"][v.value.replace("special", "")] + "?q=" + x.q.value } else { if(C == "mall") { x.action = "http://list.mall.taobao.com/search_dispatcher.htm" } else { if(C == "shop") { var E = ""; if(x.elements.page_type) { E = x.elements.page_type.value } var F = 3; if(E === "FP") { F = 1 } else { if(E === "SRP") { F = 2 } } if( ! x.elements.stat) { if(n) { var B = document.createElement('<input name="stat" >') } else { var B = document.createElement("input"); B.name = "stat" } B.type = "hidden"; x.appendChild(B) } x.elements.stat.value = F; if( ! x.elements.catName) { if(n) { var D = document.createElement('<input name="catName" >') } else { var D = document.createElement("input"); D.name = "catName" } D.type = "hidden"; x.appendChild(D) } x.elements.catName.value = v[v.selectedIndex].innerHTML.replace(" ", ""); x.action = "http://shopsearch.taobao.com/browse/shop_search.htm" } else { if(C == "dating") { if(y.value == "") { x.action = "http://dating.taobao.com" } else { x.action = "http://dating.taobao.com/search_question.htm" } } else { if(C == "global") { x.promote.value = "2097152" } else { if(C == "auction") { x.atype.value = "a"; x.isnew.value = "1,3" } } } } } } } var H = v.options[v.selectedIndex]; if( ! H || ! H.className) { return } var A = H.className.split("^"); if( ! A || A.length < 2) { return } x.elements.prop.value = A[0]; x.elements.ppath.value = A[1] } ) } function b(C) { var z = f(C); if( ! z) { return } var A = z.q; if( ! A) { return } if( ! (window.TB && TB.Suggest)) { return } var w = new TB.Suggest(A, "http://suggest.taobao.com/sug", { resultFormat : "" } ); var B = z.ssid;[/ 关于闭包面试题求解答 大家来看看这个移动的效果吧 怎么动态改变css style,程序怎么写才漂亮? 页面打印时去掉页眉和页脚内容,脚本中不能创建对象操作注册表,请高手指点 获取iframe中所载页面的内容的问题,请指点 急---控制浏览器的设置 恭喜MEIZZ,散分! 有谁用过DTPicker控件嘛?怎么使用的? 在线等!!这是一个比较难的帮助功能!!!请大家帮忙!!! 如何改掉地址栏头的图标 新手javascript 循环问题 Chrome js 设为主页
这是一个逻辑与操作,当TB真(存在)后面的就不用再执行了,TB就是等于TB了。如果TB为假(可能是undefined,null)时就往下执行,此时TB={}了。
首先,这里的||是或逻辑,与JAVA相同,如果poro不为null(javascript中undefined与null相同),那么||后面的语句不会执行.
第二,{}在js中相当于new Object()
最后,var poro = poro||{};如果porop被定义过且值不为null那么就将值为其本身,如果没有定义过就new它
{
}
;
TB.Header = function()
{
var f = function(v)
{
return typeof(v) != "string" ? v : document.getElementById(v)
}
;
var s = navigator.userAgent.toLowerCase();
var n = /msie/.test(s) && ! / opera / .test(s);
var k = n && ! / msie 7 / .test(s) && ! / msie 8 / .test(s);
var g =
{
getCookie : function(w)
{
var v = document.cookie.match("(?:^|;)\\s*" + w + "=([^;]*)");
return(v && v[1]) ? decodeURIComponent(v[1]) : ""
}
, parseQueryParams : function(B)
{
var y =
{
}
;
var w = B.split("&");
for(var z = 0, A = w.length; z < A; ++ z)
{
var x = w[z], C = x.search("=");
var D = x.substring(0, C);
var v = x.substring(C + 1, x.length);
y[decodeURIComponent(D)] = decodeURIComponent(v)
}
return y
}
, trim : function(v)
{
return v.replace(/^\s+|\s+$/g, "")
}
, hasClass : function(w, v)
{
w = f(w);
if( ! w || ! v || ! w.className)
{
return false
}
return(" " + w.className + " ").indexOf(" " + v + " ") > - 1
}
, addClass : function(w, v)
{
w = f(w);
if( ! w || ! v)
{
return
}
if(this.hasClass(w, v))
{
return
}
w.className += " " + v
}
, removeClass : function(w, v)
{
w = f(w);
if( ! this.hasClass(w, v))
{
return
}
w.className = w.className.replace(new RegExp(v, "g"), "");
if( ! this.trim(w.className))
{
w.removeAttribute(n ? "className" : "class")
}
}
, addEvent : function(x, w, v)
{
x = f(x);
if( ! x || ! w || typeof(v) != "function")
{
return
}
if(x.addEventListener)
{
x.addEventListener(w, v, false)
}
else
{
if(x.attachEvent)
{
x.attachEvent("on" + w, v)
}
}
}
, stopEvent : function(v)
{
if(v.stopPropagation)
{
v.stopPropagation()
}
else
{
v.cancelBubble = true
}
if(v.preventDefault)
{
v.preventDefault()
}
else
{
v.returnValue = false
}
}
, escapeHTML : function(w)
{
var x = document.createElement("div");
var v = document.createTextNode(w);
x.appendChild(v);
return x.innerHTML
}
}
;
var t = g.getCookie("_nk_");
var i = g.getCookie("uc1");
var d = g.parseQueryParams(i);
var p = g.getCookie("_l_g_") && t;
var o = parseInt(d._msg_) || 0;
var j = new Date().getTime();
var c = document.getElementsByTagName("script");
var q = c[c.length - 1].getAttribute("version") == "co";
var r = (document.location.href.indexOf("https://") === 0);
function a(x)
{
x = f(x);
if( ! x)
{
return
}
var w = x.children[1];
if( ! w)
{
return
}
if( ! r)
{
var v = document.createElement("iframe");
v.src = "about: blank";
v.className = "menu-list";
v.style.border = "none";
x.insertBefore(v, w); x.iframe = v
}
x.menulist = w;
x.onmouseenter = function()
{
g.addClass(this, g.hasClass(this, "forum-v2") ? "forum-hover" : "hover"); if(r)
{
return
}
this.iframe.style.height = (parseInt(this.menulist.offsetHeight) - 5) + "px";
this.iframe.style.width = this.menulist.offsetWidth
}
;
x.onmouseleave = function()
{
g.removeClass(this, g.hasClass(this, "forum-v2") ? "forum-hover" : "hover")
}
}
function m(y, x, v)
{
var w = document.createElement("option");
w.innerHTML = y;
w.value = x;
w.className = v || "";
return w
}
code]
{
var x = f(z);
if( ! x)
{
return
}
var y = x.q;
if( ! y)
{
return
}
var w = x.elements.search_type;
var v = x.elements.cat;
v.appendChild(m(" \u6570\u5b57\u7535\u5f71/\u7535\u89c6\u5267/\u7efc\u827a", "special0", "S"));
v.appendChild(m(" \u7535\u5b50\u6742\u5fd7/\u65f6\u5c1a\u751f\u6d3b/\u5a31\u4e50\u524d\u6cbf", "special1", "S"));
g.addEvent(w, "change", function()
{
if(w.value == "dating")
{
g.addClass(v, "hidden")
}
else
{
g.removeClass(v, "hidden")
}
}
);
g.addEvent(x, "submit", function(G)
{
var C = w.value;
if(C == "item" && y.value == "" && v.value == "")
{
x.action = "http://list.taobao.com/browse/cat-0.htm"
}
else
{
if(v.value.indexOf("special") > - 1)
{
x.method = "post";
x.action = ["http://video.taobao.com/searchlist.php", "http://zazhi.taobao.com/search"][v.value.replace("special", "")] + "?q=" + x.q.value
}
else
{
if(C == "mall")
{
x.action = "http://list.mall.taobao.com/search_dispatcher.htm"
}
else
{
if(C == "shop")
{
var E = "";
if(x.elements.page_type)
{
E = x.elements.page_type.value
}
var F = 3;
if(E === "FP")
{
F = 1
}
else
{
if(E === "SRP")
{
F = 2
}
}
if( ! x.elements.stat)
{
if(n)
{
var B = document.createElement('<input name="stat" >')
}
else
{
var B = document.createElement("input");
B.name = "stat"
}
B.type = "hidden";
x.appendChild(B)
}
x.elements.stat.value = F;
if( ! x.elements.catName)
{
if(n)
{
var D = document.createElement('<input name="catName" >')
}
else
{
var D = document.createElement("input");
D.name = "catName"
}
D.type = "hidden";
x.appendChild(D)
}
x.elements.catName.value = v[v.selectedIndex].innerHTML.replace(" ", "");
x.action = "http://shopsearch.taobao.com/browse/shop_search.htm"
}
else
{
if(C == "dating")
{
if(y.value == "")
{
x.action = "http://dating.taobao.com"
}
else
{
x.action = "http://dating.taobao.com/search_question.htm"
}
}
else
{
if(C == "global")
{
x.promote.value = "2097152"
}
else
{
if(C == "auction")
{
x.atype.value = "a";
x.isnew.value = "1,3"
}
}
}
}
}
}
}
var H = v.options[v.selectedIndex];
if( ! H || ! H.className)
{
return
}
var A = H.className.split("^");
if( ! A || A.length < 2)
{
return
}
x.elements.prop.value = A[0];
x.elements.ppath.value = A[1]
}
)
}
function b(C)
{
var z = f(C);
if( ! z)
{
return
}
var A = z.q;
if( ! A)
{
return
}
if( ! (window.TB && TB.Suggest))
{
return
}
var w = new TB.Suggest(A, "http://suggest.taobao.com/sug",
{
resultFormat : ""
}
);
var B = z.ssid;[/