Time of Update: 2017-01-19
一、迷思!由一段代碼引發的疑惑 請看如下代碼: 複製代碼 代碼如下: for(var i=0;i<3;i++) { console.log(j+","+k); for(var j=0;j<3;j++) { var k = j+1; } } console.log(i); 輸出結果: undefined,undefined 3,3 3,3 3 如果你是搞c、java等語言的,可能你會不解,為何j、k這種局部變數可以被範圍外的代碼訪問呢?
Time of Update: 2017-01-19
複製代碼 代碼如下: <script type="text/javascript"> var R1=[5,2,10,4,90,88,65,62]; var R2=[5,2,10,4,90,88,65,62]; function BubbleSort1(){ var n=R1.length; for(var i=0;i<n-1;i++){ var flag=false; for(var j=0;j<n-i;j++){ var temp; if(R1[j]<R1[j+1
Time of Update: 2017-01-19
1. 把數字轉換成字串,應用"" + 1,雖然看起來比較醜一點,但事實上這個效率是最高的,效能上來說:("" + ) > String() > .toString() > new String(),盡量使用編譯時間就能使用的內部操作要比運行時使用的使用者操作要快。String()屬於內建函式,所以速度很快,而.toString()要查詢原型中的函數,所以速度遜色一些,new String()用於返回一個精確的副本。 2.
Time of Update: 2017-01-19
複製代碼 代碼如下: function f1(){ var n = 999; nAdd = function(){ n += 1; } function f2(){ alert(n); } return f2; } 這裡的閉包是f1,封閉了一個變數n和一個函數f2。 我們先無視nAdd,盡量保持原貌重寫一下這個函數。 複製代碼 代碼如下: function f1(){ var n = 999; var f2 = function(){ alert(n); }; return f2; }
Time of Update: 2017-01-19
複製代碼 代碼如下: <script type="text/javascript"> var str = 'abced'; var obj = new String(str); function newToString() { return 'hello,world'; } function func(val) { val.toString = newToString; } func(str); //ps:實際只傳入了str的值,因此對它的toString修改是無意義的
Time of Update: 2017-01-19
正確來源程式如下: 複製代碼 代碼如下: <script type="text/javascript"> var lastTime = 3; function abc() { var btnReg = document.getElementById("btnReg"); if (!btnReg) { return; } if (lastTime <= 0) { btnReg.value = "同意"; btnReg.disabled = "";
Time of Update: 2017-01-19
複製代碼 代碼如下: document.writeln("<TABLE BORDER=1><TR VALIGN=TOP>", "<TH ALIGN=left>i", "<TH ALIGN=left>名稱", "<TH ALIGN=left>檔案名稱", "<TH ALIGN=left>描述", "<TH ALIGN=left>類型數</TR>") for (i=0; i < navigator.
Time of Update: 2017-01-19
子頁面HTML: 複製代碼 代碼如下: <input type="checkbox" name="check" onclick="CheckedBox(this)" value="a" /> 子頁面JS: 複製代碼 代碼如下: function CreateIOC(text,value) { var o = document.createElement("a"); o.id = value; o.href = "#"; o.className = "c";
Time of Update: 2017-01-19
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
Time of Update: 2017-01-19
JavaScript 擷取/設定游標位置,相容Input&&TextArea。 JavaScript 擷取/設定游標位置,相容Input&&TextArea: 單行文字框 輸入位置: 多行文字框 Hi,CssRain!!! 輸入位置: [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
Time of Update: 2017-01-19
appendChild定義 appendChild(newChild: Node) : Node Appends a node to the childNodes array for the node. Supported: IE 5.0+, Mozilla 1.0+, Netscape 6.0+, Safari 1.0+, Opera 7.0+ 添加一個節點到指定的節點的子節點數組中,讀起來好象有點拗口,簡單地說就是將元素添加到指定的節點中 appendChild用法
Time of Update: 2017-01-19
複製代碼 代碼如下: <textarea onkeydown="keyHanlder(event)"> </textarea> <script> function keyHanlder(e){ if(e.ctrlKey&&e.keyCode==13){ alert('"Ctrl+Enter"'); if(e.preventDefault)e.preventDefault(); else e.returnValue=false; } } </script&
Time of Update: 2017-01-19
複製代碼 代碼如下: /* * JavaScript對象就是一組屬性(方法)的集合 * 在該語言中如果變數名或方法名不符合聲明規範, * 則一定得用方括弧“ [] ”引用它 * */ /** * <1.>該語句聲明了一個class1類,class1相當於構造方法,又叫構造器 * 也可說聲明了一個class1方法 */ function class1(){ this.name="xjl"; //給對象添加屬性 this.say= function(){alert("大家好!");};
Time of Update: 2017-01-19
1。延遲切換tab 需求:頁面上有幾個tab,切換tab的時候,會對某個特定地區的資料進行拉取更新。 弊端:使用者從第一個tab切換一直快速切到尾,就會產生n個ajax請求。其實使用者只是需要看到最後一個tab的資料。 複製代碼 代碼如下: var changeTab = function(){ var timeId = 0; return function(tabId){ if(timeId){ clearTimeout(timeId); timeId=0; }
Time of Update: 2017-01-19
修正hashtableobj.set("length","0") bug 可以設定key忽略大小寫 可以clone hashtable對象 可以 使用obj.valueOf("key","defalutvalue") 設定預設值等等 歡迎修正bug 複製代碼 代碼如下: <html> <head> <script type="text/javascript"> // Authors Birdshome, 麻袋@部落格園 改版 phito,彭海濤 Object.
Time of Update: 2017-01-19
但是從全域看來,這樣會導致出現一些讓我們難以掌控的情況的出現:變數同名、多個函數共用一個全域變數後的值的變換……等等。所以,有時候,對於一些簡單的全域變數,我們可以通過另一種方式來處理——用自執行函數+閉包的方法來解: 比如:我們要在網頁載入時給出一個提示,在網頁關閉時給出另一個提示 下面的代碼,實現了以上功能 複製代碼 代碼如下: var msg1 = "歡迎光臨!"; // 定義一個全域變數 var msg2 = "再見!" //定了另一個全域變數 window.onload =
Time of Update: 2017-01-19
複製代碼 代碼如下: var test=(function() { var arr2=[1,2,3,3]; return function(){ return arr2; }; })() Array.prototype.f1= function () { return []; } Array.prototype.f2= function () { this.length=0; return this; } 然後用兩種方式調用: 一:var arr= test();
Time of Update: 2017-01-19
test.htm複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type"
Time of Update: 2017-01-19
常用檢查變數類型的方法有兩種,下面是解說: 檢查變數類型方法一:typeof 格式:typeof 變數 用法:if( typeof 變數 == "類型標識") { ... } 下面是一些常用資料類型對應的typeof值: {an:"object"} : object ["an","array"] : object function() {} : function "a string" : string 55
Time of Update: 2017-01-19
而在javascript中,變數的範圍是按函數來劃分的——變數在某個函數範圍內有效。比如: 複製代碼 代碼如下: var f = false; if(true) { var f = true; } //此時f位於if內,也就是塊內,等價於還是全域範圍內 alert(f) //所以,結果為true 再如下例: 複製代碼 代碼如下: var f = false; function test() { var f = true;