Time of Update: 2017-01-19
在每個函數中,都有個名為 arguments 的變數,它以類似數組的形式儲存了當前調用的參數。而它實際上並不是個數組,使用 typeof arguments 語句嘗試會返回“object”(對象),所以它不能像 Array 一樣使用 push 和 pop 等方法。即便如此,仍然可以使用下標以及長度屬性(length)擷取它的值。 編寫靈活的函數 雖看起來名不經傳,但的確 arguments 是非常有用的對象。比如,你可以讓函數處理不定數目的參數。在 Dean Edwards 寫的 base2
Time of Update: 2017-01-19
效果截圖: html 代碼: 複製代碼 代碼如下: <!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> <title>選擇貨架號</title>
Time of Update: 2017-01-19
var list = [{id:1, name:"czone", age:21}, {id:2, name:'czonechan', age:21}]; var template ='<div id="p$id"><span class="name">$name</span><span class="age">$age</span></div>'; 實現一個通用方法,使用初始化資料來裝配模版。 複製代碼 代碼如下:
Time of Update: 2017-01-19
首先,要實現產生n以內不重複的隨機數,並將產生的隨機數放入另一個Array中,用以下方法來完成: 複製代碼 代碼如下: function getRandomNumbers(count) { var numbers = new Array(); var original = new Array(); for (var i=0;i<count;i++) { original[i] = i+1; } original.sort(function(){ return 0.5 -
Time of Update: 2017-01-19
如代碼塊 複製代碼 代碼如下: if (true) { int i = 100; } print(i); //錯誤,變數i沒有聲明 如上面例子所示,代碼塊外的函數是無法訪問i變數的。 但在javaScript裡,情況則完全不同。 複製代碼 代碼如下: if (true) { var i = 100; } alert(i); //彈出框並顯示100
Time of Update: 2017-01-19
JavaScript的假值列表如下, 值 類型0NumberNaN (非數字)Number'' (Null 字元串)StringfalseBooleannullObjectundefinedUndefined以上的值作為判斷條件,都將為假值,如: 複製代碼 代碼如下: if(undefined) { alert('undefined'); //這行代碼不會執行 } while(null) { alert('null'); //這行代碼不會執行 } 雖然這些值全部都等同於假,
Time of Update: 2017-01-19
對於Array對象我的總結思想是:5法,3招,12式 1.聲明5法:只針對一維數組,當然還有二維三維,這裡就不做解釋了 複製代碼 代碼如下: var a = new Array(); var a = new Array; var a = new Array(10);//建立Array對象,並指定數組中項的個數 var a = new Array("red","blue","green"); var a = ["red"," blue"," green"];
Time of Update: 2017-01-19
1.onchange 及其onpropertychange,oninput 在IE下可使用onpropertychangel立即觸發監聽, oninput 可以使用在FF下,但必須使用w3c推薦的addEventListener的方式來綁定事件. http://www.jb51.net/article/25275.htm2. <button></button>也有type屬性:
Time of Update: 2017-01-19
javascript選定文本取消, 能相容所有主流瀏覽器了: 複製代碼 代碼如下: if (document.selection) { document.selection.empty(); } else if (window.getSelection) { window.getSelection().removeAllRanges(); } 對於文字框(input,textarea)中的文本選定取消, 這種方法會有一些問題. 不過也有辦法, 記錄下文字框中的value,再清空,再重新賦值.
Time of Update: 2017-01-19
一、類型轉換的方法和應該注意的問題:1.轉換為布爾型:(1)用兩次非運算(!):!!5 ==> true(2)用布爾型的建構函式:new Boolean(5) == > true值轉換為布爾類型為false:0,+0,-0,NaN,""(Null 字元串),undefined,null除上面的值其他值在轉換以後為true,需要特別提到的是:"0",new Object(),function(){}2.轉換為字串類型:(1)加上Null 字元串"":123 + "" = "123"(2
Time of Update: 2017-01-19
我們詳細描述: 1)對於運算式對象的exec方法,不加入g,則只返回第一個匹配,無論執行多少次均是如此,如果加入g,則第一次執行也返回第一個匹配,再執行第二個匹配,依次類推。例如: 複製代碼 代碼如下: var regx=/user\d/; var str=”user18duser2dsc”; var rs=regx.exec(str);//此時rs的值為{user1} var rs2=regx.exec(str);//此時rs的值依然是{user1}
Time of Update: 2017-01-19
調用對象位於範圍鏈的前端,局部變數(在函數內部用var聲明的變數)、函數參數及Arguments對象都在函數內的範圍中——這意味著它們隱藏了範圍鏈更上層的任何同名的屬性。 2010年9月14日,我去參加網易網頁工程師招聘會,應聘JS工程師職位。有幸參加筆試,然後有幸栽在筆試,呵呵。廢話少說,抓出音響極深的一題重新研究研究。 題目大概是:寫出如下代碼的輸出結果並進行分析 複製代碼 代碼如下: var tt = 'aa'; function test(){ alert(tt); var tt = '
Time of Update: 2017-01-19
【嵌套函數】 JavaScript允許嵌入的函數,允許函數用作資料,並且在函數詞法範圍下面,可以產生與傳統物件導向語言不同的驚人地方。 首先,JavaScript的函數是通過詞法來劃分範圍的,而不是動態劃分範圍的,於是,函數的是在定義它們的範圍中運行,而不是在執行它們的範圍中運行,所以,當嵌套函數和它的外圍函數定義在同一個詞法範圍中的時候,是很容易理解的。比如下面很平淡無奇的代碼: 複製代碼 代碼如下: var x = 'global'; function f () { var x =
Time of Update: 2017-01-19
但是作者Nicholas C. Zakas在【動態原型】方式建立對象的時候沒有深究可能會存在的問題和解決方案。而僅僅在繼承的時候對【動態原型】的瓶頸作了說明。即在作子類繼承的時候,不能通過動態原型的方式來實現。 原文大致如下: 繼承機制不能採用動態化的原因是:prototype對象的唯一性。執行個體代碼: 複製代碼 代碼如下: function A (i) { this.a = i; if (typeof A._init == 'undefined') { A.prototype.func
Time of Update: 2017-01-19
這次的遊戲的編寫難度比之前的都高很多。本次鄙人用了js的繼承以及設計模式的原廠模式,也算是一個突破。。。 遊戲的大致設計思路:1,玩家類Player:一個人能左右移動,以及上下移動的小人。擁有的基本方法:{左右移動 : 單純的鍵盤左右移動,向下移動 : 屬於向下加速度移動,每次移動都會加一個重力加速度的值,向上移動 : 其實是跟著方塊一起向上移動, 勻速向上運動,彈跳 :
Time of Update: 2017-01-19
1。善用DocumentFragment 之前有個打飛機的遊戲。我是用如下方法添加子彈 複製代碼 代碼如下: for(var i=0;i<5;i++){ var bullet = new Bullet(); document.body.appendChild(bullet); } 問題就來了,我的目的是希望同時能出現5顆子彈,所以我迴圈將5個子彈對象添加到body,這樣會導致一個結果:瀏覽器reflow了5次。
Time of Update: 2017-01-19
廢話不多說,先上代碼給大家看看 複製代碼 代碼如下: <!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
Time of Update: 2017-01-19
複製代碼 代碼如下: var example = new Fx(element,//元素 { form:{ //動畫前的樣式 //color:"#00f", }, to:{ //目標樣式 color:"#00f", "background-color":"#5f5", opacity:0.9, }, //線性方法 transition:Transition.elasticInOut, //動畫時間 duration:5000, //動畫幀值 fps:50, onAnim:function(s){
Time of Update: 2017-01-19
常見的綁定事件有直接綁定在頁面元素中比如<div id="wrap" onclick="a();"></div>,這個換種方法也就是分離出來寫在js代碼裡如document.getElementById('wrap').onclick = function(){a();},此時如果需要綁定多個方法則直接寫在一起即可如document.getElementById('wrap').onclick = function(){a();b();}或<div
Time of Update: 2017-01-19
下文有大概70%的內容出自http://www.quirksmode.org/js/this.html,另外30%是我自己對它的理解和感想。希望能對有需要的人一點協助。。。 首先,先看一個很典型的關於this關鍵字題目:複製代碼 代碼如下: var name = 'hong' var obj = { name: 'ru', getName: function(){ return function(){ return this.name; }; } } alert(obj.getName()())