JavaScript.The.Good.Parts閱讀筆記(二)範圍閉包減緩全域空間汙染

如代碼塊 複製代碼 代碼如下:if (true) { int i = 100; } print(i); //錯誤,變數i沒有聲明 如上面例子所示,代碼塊外的函數是無法訪問i變數的。 但在javaScript裡,情況則完全不同。 複製代碼 代碼如下:if (true) { var i = 100; } alert(i); //彈出框並顯示100 很多現代語言都推薦儘可能遲地聲明變數,但在Javascript裡這是一個最糟糕的建議。由於缺少塊級範圍,最好在函數體的頂部聲明函數中可能用到的所有變數。

JavaScript.The.Good.Parts閱讀筆記(一)假值與===運算子

JavaScript的假值列表如下,值 類型0NumberNaN (非數字)Number'' (Null 字元串)StringfalseBooleannullObjectundefinedUndefined以上的值作為判斷條件,都將為假值,如: 複製代碼 代碼如下:if(undefined) { alert('undefined'); //這行代碼不會執行 } while(null) { alert('null'); //這行代碼不會執行 } 雖然這些值全部都等同於假,但它們是不可互換的。

javascript取消文本選定的實現代碼

javascript選定文本取消, 能相容所有主流瀏覽器了: 複製代碼 代碼如下:if (document.selection) { document.selection.empty(); } else if (window.getSelection) { window.getSelection().removeAllRanges(); } 對於文字框(input,textarea)中的文本選定取消, 這種方法會有一些問題. 不過也有辦法, 記錄下文字框中的value,再清空,再重新賦值.

javascript Array對象基礎知識小結

對於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"];

javascript 學習筆記(onchange等)

1.onchange 及其onpropertychange,oninput 在IE下可使用onpropertychangel立即觸發監聽, oninput 可以使用在FF下,但必須使用w3c推薦的addEventListener的方式來綁定事件. http://www.jb51.net/article/25275.htm2. <button></button>也有type屬性:

js迴圈動態綁定帶參數函數遇到的問題及解決方案

眾所周知,不帶參數的綁定非常簡單,只要使用(文法:“document.getElementById("對象ID名").attachEvent("事件名,如onchange",函數名);”)(樣本:“document.getElementById("select_0").attachEvent("onchange",modifyFunction);”)即可。(註:以下唯寫樣本) 帶參數的綁定就要複雜一些:document.getElementById("select

javascript開發中使用onpropertychange,oninput事件解決onchange事件的不足

onchange在用於文字框輸入框時,有一個明顯的不足. 事件不會隨著文字的輸入而觸發,而是等到文字框失去焦點(onblur)時才會觸發. 也就是沒有即時性!在IE下,可以用onpropertychange來代替onchange事件,當文字框有任何變化時,能立即觸發此事件.這樣一來問題就解決了.那其他瀏覽器呢,onpropertychange可是IE的專利. 接下來就是oninput事件了.但是oninput有個詭異,必須用addEventListener的方式來綁定事件.否則無效.好了,

JavaScript類型轉換方法及需要注意的問題小結(挺全面)

一、類型轉換的方法和應該注意的問題: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

JavaScript遊戲之是男人就下100層代碼打包

這次的遊戲的編寫難度比之前的都高很多。本次鄙人用了js的繼承以及設計模式的原廠模式,也算是一個突破。。。 遊戲的大致設計思路:1,玩家類Player:一個人能左右移動,以及上下移動的小人。擁有的基本方法:{左右移動 : 單純的鍵盤左右移動,向下移動 : 屬於向下加速度移動,每次移動都會加一個重力加速度的值,向上移動 : 其實是跟著方塊一起向上移動, 勻速向上運動,彈跳 : 就是玩家先向上一個減速度運動,然後,當速度小於1時,像下加速度運動 }

淺談Javascript嵌套函數及閉包

【嵌套函數】   JavaScript允許嵌入的函數,允許函數用作資料,並且在函數詞法範圍下面,可以產生與傳統物件導向語言不同的驚人地方。   首先,JavaScript的函數是通過詞法來劃分範圍的,而不是動態劃分範圍的,於是,函數的是在定義它們的範圍中運行,而不是在執行它們的範圍中運行,所以,當嵌套函數和它的外圍函數定義在同一個詞法範圍中的時候,是很容易理解的。比如下面很平淡無奇的代碼: 複製代碼 代碼如下:var x = 'global'; function f () { var x = '

javascriptRegex中參數g(全域)的作用

我們詳細描述: 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}

JavaScript遊戲之最佳化篇

1。善用DocumentFragment 之前有個打飛機的遊戲。我是用如下方法添加子彈 複製代碼 代碼如下:for(var i=0;i<5;i++){ var bullet = new Bullet(); document.body.appendChild(bullet); } 問題就來了,我的目的是希望同時能出現5顆子彈,所以我迴圈將5個子彈對象添加到body,這樣會導致一個結果:瀏覽器reflow了5次。 但其實可以找一個載體,來先把這5個子彈類裝起來,然後,再一次性添加到body中,

JavaScript進階程式設計 擴充–關於動態原型

但是作者Nicholas C. Zakas在【動態原型】方式建立對象的時候沒有深究可能會存在的問題和解決方案。而僅僅在繼承的時候對【動態原型】的瓶頸作了說明。即在作子類繼承的時候,不能通過動態原型的方式來實現。   原文大致如下: 繼承機制不能採用動態化的原因是:prototype對象的唯一性。執行個體代碼: 複製代碼 代碼如下:function A (i) { this.a = i; if (typeof A._init == 'undefined') { A.prototype.func =

javascript開發中因空格引發的錯誤

廢話不多說,先上代碼給大家看看 複製代碼 代碼如下:<!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

關於JavaScript定義類和對象的幾種方式

可以看看這個例子: 複製代碼 代碼如下:var a = 'global'; (function () { alert(a); var a = 'local'; })();   大家第一眼看到這個例子覺得輸出結果是什嗎?‘global'?還是‘local'?其實都不是,輸出的是undefined,不用迷惑,我的題外話就是為了講這個東西的。 其實很簡單,看一看JavaScript運行機制就會明白。我們可以把這種現象看做“預聲明”。但是如果稍微深究一下,會明白得更透徹。

一個javascript圖片閱覽組件

就是圖片切換的效果是可自訂的,通過這個組件,我們可以自訂出很多效果,不過這個東西還不算最終完成,現在搞出來先讓大家試試 複製代碼 代碼如下:var pola=new PhotoLook("contain");//建立PhotoLook對象 這就是執行個體化這個組件的語句,cantain是你指定div的ID,這個是使用組件的人自己定義的 複製代碼 代碼如下:/*PhotoLook大小的設定*/ pola.width=240; pola.height=320; /*添加圖片*/ pola.add("

發布一個基於javascript的動畫類 Fx.js

複製代碼 代碼如下: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){

19款Javascript富文本網頁編輯器

1. AIE (示範地址)AIE是一個開源的ajax圖片編輯器,基於ExtJS與PHP ImageMagick開發,易於與部落格/相簿等其它應用相整合。提供調整圖片大小,裁剪圖片,旋轉/翻轉圖片,應用濾鏡,添加文本,添加浮水印等功能。2. MarkitUp (示範地址)MarkitUp是一個輕量級,可定製,靈活的WYSIWYG Editor。3. SmartMarkUPSmartMarkUP是一個輕量級,強大的JavaScript

js隔行變色、滑鼠划過變色代碼

xmlns="http://www.w3.org/1999/xhtml"> window.onload = function() { changeColor('content'); changeColor('content2');//寫上要控制的UL的ID,想控制幾個就控制幾個 changeColor('content3'); } function changeColor(id) { var arrayli =

深入理解JavaScript定時機制

例如 複製代碼 代碼如下:setTimeout(function() { alert('你好!'); }, 0); setInterval(callbackFunction, 100); 認為setTimeout中的問候方法會立即被執行,因為這並不是憑空而說,而是JavaScript API文檔明確定義第二個參數意義為隔多少毫秒後,回調方法就會被執行. 這裡設成0毫秒,理所當然就立即被執行了.

總頁數: 3530 1 .... 113 114 115 116 117 .... 3530 Go to: 前往
Tags Index:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。