10個你可能不知道的JavaScript小技巧

儘管我使用Javascript來做開發有很多年了,但它常有一些讓我很驚訝的小特性。對於我來說,Javascript是需要持續不斷的學習的。在這篇文章中,我將列出10個Javascript使用小技巧,主要面向Javascript新手和中級開發人員。希望每個讀者都能至少從中學到一個有用的技巧。1.變數轉換看起來很簡單,但據我所看到的,使用建構函式,像Array()或者Number()來進行變數轉換是常用的做法。始終使用未經處理資料類型(有時也稱為字面量)來轉換變數,這種沒有任何額外的影響的做法反而效

javascript Array對象

文章目錄 Array 對象的方法Array 對象的屬性 數組是一段線性分配的記憶體,它通過整數去計算位移並訪問其中的元素。數組是很快的資料結構,但不幸的是,Javascript並沒有像這種數組一樣的資料結構。Javascript的數組實質是對象,它把數組的下標轉換成字串,用其作為屬性,因此它明顯比真正的數組慢,但它可以更方便地使用。 改變自身pop,push,reverse,shift,sort,splice,unshift,

javascript的緩動效果(第1部分)

緩動,學名為Tween,緩衝移動的簡稱。要想頁面內容切換起來舒服,就使用淡入淡出特效,要想讓頁面元素動起來自然,就要使用緩動效果。這兩個混合起來,可以衍生多種特效的。感謝Flash開發人員為我們做了那麼多先行研究,我們直接把它們拆出來裝在各種菜單與相簿中。我們先從最簡單的東西做起,加速與減速。既然是緩動,它就一定涉及以下概念:距離,時間與速度。我們可以想象存在一條直線L,點A與點B就是L的起點與終點,有一個點C在直線L上移動,從點A到點B。所需的時間通常都是未知,但速度我們一定要制定。看下面的圖

javascript變數的範圍

不太會寫冠冕堂皇的開場白,直接進入主題。我們看一道題,出處為javaeye的某貼——這世界就是這樣,有些人喜歡製造問題,有人喜歡解決問題。製造問題的人為解決問題的人帶來就業機會……var a=100; var b=true; function test(){ alert(a); alert(b); b=false; alert(b); var a=200; alert(a/2); alert(++Math.PI);

javascript事件代理

在編程中,如果我們不想或不能夠直接操縱目標對象,我們可以利用delegate建立一個代理對象來調用目標對象的方法,從而達到操縱目標對象的目的。毋庸置疑,代理對象要擁有目標對象的引用。我們來看一下javascript的一個最簡單實現: var delegate = function (client,clientMethod ){ return function() { return clientMethod.apply(client,arguments); } }

javascript架構之全域變數

縱觀各大類庫的實現,一開始基本都是定義一個全域變數,然後對它進行擴充。如Prototype.js的Prototype,mootools的Native,Base2的Base,Ext的Ext,jQuery的jQuery,YUI的YUI,dojo的dojo,MochiKit的MochiKit等等。從全域變數的汙染程度來看,分為兩大類,Prototype,mootools與Base2歸一類。Prototype的哲學是對JS原生對象進行擴充。早些年,Ptototype差點成為事實的標準,因此基本沒有考慮到

javascript Number對象

文章目錄 Number 對象的方法Number 對象的屬性 Javascript只有一個單一的數字類型,它在內部被表示為64位的浮點數,和Java的double一樣。不像大多數其他的程式設計語言,它沒有分離出整數類型,所以1與1.0是相同的值。這提供了很大的方便,因為它完全避免了短整數的溢出問題,你只要知道的一切就是它是一種數字。這樣就避免了一大堆因數字類型而導致的錯誤。Number 對象的方法FF: Firefox, IE:

javascript 選取器簡明教程

文章目錄 兄長選擇符相鄰選擇符親子選擇符 本來準備開講jQuery源碼學習筆記六的,但心中有佛才能看到佛,有些人連選取器都不知什麼東西,直接講下去,估計有人會看得雲裡霧裡,滿頭霧水了。加之,John

推薦給 JavaScript 開發人員十款超級有用的工具來提高客戶體驗

近年來,JavaScript 越來越受到重視,早已不單單只是寫寫網頁特效的指令碼語言了,如今廣泛用於網站的前端互動。值得一提的是,當下 Web 開發人員們追捧的 Node.js 使得 JavaScript能夠在更多環境下運行,甚至是伺服器端,使得這門語言再次受到大家的關注。今天,本文向 JavaScript 開發人員推薦十款超級有用的工具。YepNope YepNope 是一個非同步條件載入架構,速度超快,只為使用者載入需要的指令碼。使用非常簡單,非常有用! 點擊訪問:

讓人難以置信的HTML5和JavaScript實驗

Google的 Chrome實驗室收集了很多讓人難以置信的基於 HTML5 Canvas 和 JavaScript 的實驗項目,裡面的例子都很獨特,讓人驚歎。我從未想過結合 HTML 和 JavaScript 能實現這麼強大的效果。今天,本文與大家分享其中9個很棒的例子,為了有更好的效果,建議在Chrome瀏覽器中瀏覽。Untangle拖動藍點,讓所有線都不相交,看看你多久能解開? Z Type一款太空射擊遊戲,基於ImpactJS遊戲庫開發。Cube

javascript的可控式透明特效

透明特效是script.aculo.us提到的特效中最簡單的特效之一。既然是特效,必須涉及時間與空間的概念。時間我們可以用setTimeout與setInterval,個人比較喜歡setTimeout,雖然它每次調用都重複註冊,但可控性比較好。空間就全憑CSS的絕對位置實現位移了。在開始之前,我們練習一下setTimeout的遞迴用法(用來類比setInterval)。 function text(el){ var node = (typeof el == "string")?

5種 JavaScript 調用函數的方法

一次又一次的,我發現,那些有bug的Javascript代碼是由於沒有真正理解Javascript函數是如何工作而導致的(順便說一下,許多那樣的代碼是我寫的).JavaScript擁有函數式編程的特性, 當我們選擇面對它的時候,這將成為我們前進的阻礙.

javascript 技巧總結積累109-173條(正在積累中)

109.改變狀態列 self.status ="";//110.改變視窗大小 window.resizeTo(200,300);//111.改變滑鼠樣式 style BODY{CURSOR: url('mouse.ani'); SCROLLBAR-BASE-COLOR: #506AA8; SCROLLBAR-ARROW-COLOR: #14213F; }//112.背景透明 <input type="button" value="Button"

javascript測試函數運行速度

通常我們需要對函數進行最佳化,一般的做法是開始的時候獲得時間,結束的時候再獲得一次時間,兩次時間相減就能到到花費的時間。而函數運行速度之快,基本上都是毫秒級的。下面給出的函數就是就此準備的。 // 時間轉為時間戳記(毫秒)function time2stamp(){ var d = new Date(); return Date.parse(d)+d.getMilliseconds();}用法: var t1 = time2stamp(); //

javascript命名空間的簡單實現

為了防止與其他類庫發生命名衝突,命名空間是必需的。下面是一個簡單的實現。<script> (function(){ if(!window.JS){ window['JS'] = {} } var $ = function(id) { return document.getElementById(id); } var html = function (id) { if(!(obj = $(id))) return

JavaScript trim函數大賞

W3C那幫人的腦袋被驢踢了,直到javascript1.8.1才支援trim函數(與trimLeft,trimRight),可惜現在只有firefox3.5支援。由於去除字串兩邊的空白實在太常用,各大類庫都有它的影子。加之,外國人都很有研究精神,搞鼓了相當多實現。實現1 String.prototype.trim = function() { return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

javascript 的forEach函數

在Base2中找到一個叫forEach的函數,是我見過的最好的實現。挖出來分析一下。它能對各種普通對象,字串,數組以及類數組進行遍曆。如果原遊覽器的對象已實現此函數,它則調用原對象的函數。 function forEach(object, block, context, fn) { if (object == null) return; if (!fn) { if (typeof object == "function" &&

javascript的動態this與動態綁定

javascript是一門動態語言,最明顯就是那個dynamic this。它一般都是作為函數調用者存在。在javascript,所有關係都可以作為對象的一個關聯陣列元素而存在。那麼函數就是被掰成兩部分儲存於對象,一是其函數名(鍵),一是函數體(值),那麼函數中的this一般都指向函數所在的對象。但這是一般而已,在全域調用函數時,我們並沒有看到調用者,或者這時就是window。不過,函式宣告後,其實並沒有綁定到任何對象,因此我們可以用call apply這些方法設定調用者。一個簡單的例子:

javascript wrapper函數

在設計javascript的繼承體系時,有一個重要需求,方法鏈。通俗地說,說是在方法中調用父類的同名方法。類似java的this.super().method()。如何把父類的同名方法封裝到子類中呢?這就要用到wrapper函數。之所以叫wrapper,而不是wrap,因為它比wrap更加wrapper。比如像Ext那種深度繼承的結構中,如果父類沒有找祖父,祖父沒有找曾祖父,沿著原型鏈層層上溯,以擷取它所需要的功能。此外,wrapper函數在jQuery也有應用,好像分為三種wrapAll,wr

javascript架構之繼承機制

大一點的架構都有這個東西。Prototype原來的繼承機制非常弱,為了與mootools對抗也強化了這一方面。嘛,要用原型繼承來模仿類繼承,都基本存在一個複製函數。把父類的原型屬性複製到子類上去。理念的東西暫時這麼多,動手實踐一下最實際。我們設計一個數組類,擁有原生數組的能力與新擴充的能力。 var isNumber = function(n){ return typeof n === 'number' && isFinite(n);

總頁數: 3271 1 .... 215 216 217 218 219 .... 3271 Go to: 前往

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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