Time of Update: 2017-01-19
如今的這個年代,流行在Web頁面上使用了大量的JavaScript,我們需要尋找各種方式來最佳化它們,使它們更快。我們使用事件委託來讓事件監聽器更有效率,使用降頻技術來限定某些方法的使用次數,使用各種JavaScript載入器來動態載入我們需要的資源,等等。另外一種讓頁面更高效、更敏捷的方法是動態添加或移除樣式表裡的樣式,而不需要去查詢DOM元素,對每個元素做樣式調整。下面我們就來看看如何使用這種技術!捕獲樣式表你的頁面上可能引用了不只一個的樣式檔案,你可以選擇其中的一個。如果你指定了某個,你可
Time of Update: 2017-01-19
這個系列的第一部分和第二部分,介紹了Javascript模組原型和理論概念,今天介紹如何將它們用於實戰。 我採用的是一個非常流行的庫require.js。 一、為什麼要用require.js? 最早的時候,所有Javascript代碼都寫在一個檔案裡面,只要載入這一個檔案就夠了。後來,代碼越來越多,一個檔案不夠了,必須分成多個檔案,依次載入。下面的網頁代碼,相信很多人都見過。 複製代碼 代碼如下: <script src="1.js"></script>
Time of Update: 2017-01-19
這個系列的第一部分介紹了Javascript模組的基本寫法,今天介紹如何規範地使用模組。 (接上文) 七、模組的規範 先想一想,為什麼模組很重要? 因為有了模組,我們就可以更方便地使用別人的代碼,想要什麼功能,就載入什麼模組。
Time of Update: 2017-01-19
隨著網站逐漸層成"互連網應用程式",嵌入網頁的Javascript代碼越來越龐大,越來越複雜。 網頁越來越像傳統型程式,需要一個團隊分工協作、進度管理、單元測試等等......開發人員不得不使用軟體工程的方法,管理網頁的商務邏輯。 Javascript模組化編程,已經成為一個迫切的需求。理想情況下,開發人員只需要實現核心的商務邏輯,其他都可以載入別人已經寫好的模組。 但是,Javascript不是一種模組化程式設計語言,它不支援"類"(class),更遑論"模組"(module)了。
Time of Update: 2017-01-19
前言 說Jquery之前,先來學習一下Javascript(以後簡稱為JS)語言中的基礎知識問題,其時對於每種程式設計語言來說基礎知識都是大同小異的,對變數,函數,條件陳述式塊,迴圈語句塊等等,而對於每種語言在寫法上到是顯得各有不同,如JS裡在定義變數時,你要用var去聲局部變數的聲明,而對於弱類型的語言JS來說,你也可以不加var,但不加它會認為這個變數為全域變數,這是要注意的。變數 在程式運行過程中,其值可以發生改變的(呵呵,10多年前書上的定義) var people ;
Time of Update: 2017-01-19
Javascript聲明變數的時候,雖然用var關鍵字聲明和不用關鍵字聲明,很多時候運行並沒有問題,但是這兩種方式還是有區別的。可以正常啟動並執行代碼並不代表是合適的代碼。var num = 1;是在當前域中聲明變數. 如果在方法中聲明,則為局部變數(local variable);如果是在全域域中聲明,則為全域變數。而 num = 1;事實上是對屬性賦值操作。首先,它會嘗試在當前範圍鏈(如在方法中聲明,則當前範圍鏈代表全域範圍和方法局部範圍etc。。。)中解析 num;
Time of Update: 2017-01-19
本文執行個體講述了JavaScript實現清空(重設)檔案類型INPUT元素值的方法。分享給大家供大家參考,具體如下:因為安全限制,指令碼是不能隨意設定其value值的,所以並不能像其它表單輸入欄位那樣用屬性來設定使其重設。重設一個檔案域的值,歸納起來主要有 3 種方法。本文分析這三種方法的瀏覽器安全色性以及優缺點,並給出一個比較完美的綜合方案的代碼和Demo。重設檔案域的三種方法:1.
Time of Update: 2017-01-19
第一部分 基本文法:1、資料類型(字串、小數、整數、布爾、時間日期)複製代碼 代碼如下:var s="3.14" var n=parsefloat(s) s+=5;var s="abc3.14" var n=parsefloat(s) //NaN s+=5;//解析轉換成小數型var
Time of Update: 2017-01-19
在之前的介紹中,我們已經知道 Javascript 沒有塊級作用,只有函數級範圍。複製代碼 代碼如下:function test() { // a scope for(var i = 0; i < 10; i++) { // not a scope // count } console.log(i);
Time of Update: 2017-01-19
Javascript 中的建構函式與其他語言相比也是不同的。任何通過關鍵字 new 調用的函數都可以當做建構函式。在建構函式體內,this 指向新建立的對象。如果建構函式體內沒有顯示的 return 運算式,那麼我們就預設返回 this,也就是建立的對象。複製代碼 代碼如下:function Foo() { this.bla = 1;}Foo.prototype.test = function() {
Time of Update: 2017-01-19
每一個 Javascript 函數都能在自己範圍內訪問一個特殊的變數 - arguments。這個變數含有一個傳遞給函數的所有參數的列表。arguments 對象不是一個數組。儘管在文法上它跟數組有相同的地方,例如它擁有 length 屬性。但它並不是從 Array.prototype 繼承而來,實際上,它就是一個對象。因此,我們不能直接對 arguments 使用一些數組的方法,例如 push, pop 或 slice 等。
Time of Update: 2017-01-19
Javascript 中一個最重要的特性就是閉包的使用。因為閉包的使用,當前範圍總可以訪問外部的範圍。因為 Javascript 沒有塊級範圍,只有函數範圍,所以閉包的使用與函數是緊密相關的。類比私人變數複製代碼 代碼如下:function Counter(start) { var count = start; return {
Time of Update: 2017-01-19
相對於C/C++來說,ECMAScript裡的for迴圈並不能建立一個局部的上下文。複製代碼 代碼如下:for (var k in {a: 1, b: 2}) { alert(k);} alert(k); // 儘管迴圈已經結束但變數k依然在當前範圍 任何時候,變數只能通過使用var關鍵字才能聲明。 上面的指派陳述式: a = 10;
Time of Update: 2017-01-19
經常使用window.location,它的結構總是記不住,簡單梳理下,方便以後查詢。樣本URL:http://b.a.com:88/index.php?name=kang&when=2011 屬性 含義 值 protocol: 協議 "http:" hostname: 伺服器的名字 "b.a.com" port:
Time of Update: 2017-01-19
高亮功能主要是指對頁面中指定地區的指定文字進行高亮顯示,也就是背景著色。一般在搜尋結果頁面會經常用到這個功能。下面就為大家提供一種解決方案,用javascript實現。首先在<head>中引入下面javascript方法:複製代碼 代碼如下:<script type="text/javascript">//<![CDATA[ //--------begin function fHl(o, flag, rndColor, url)
Time of Update: 2017-01-19
實現JavaScript繼承的最簡單的方式是call方法(或者apply方法)及原型鏈方法,但這兩種方法都有缺陷,而其混合體就是很好的繼承實現方式。下面舉例說明:複製代碼 代碼如下:function Animal(age){ this.age = age;}Animal.prototype.sayAge = function(){ window.alert("My age is
Time of Update: 2017-01-19
前言良好的JavaScript書寫習慣的優點不言而喻,今天彬Go向大家推薦Dojo Javascript 編程規範,相當不錯的 Javascript 編程風格規範,建議大家可以借鑒一下此規範編寫 Javascript。感謝i.feelinglucky的翻譯。序Any violation to this guide is allowed if it enhances readability.所有的代碼都要變成可供他人容易閱讀的。快讀參考核心 API 請使用下面的風格: 結構
Time of Update: 2017-01-19
在我們日常開發中,操作和轉換數組是一件很常見的操作,下面我們來看一個執行個體:複製代碼 代碼如下:var desColors = [], srcColors = [ {r: 255, g: 255, b: 255 }, // White {r: 128, g: 128, b: 128 }, //
Time of Update: 2017-01-19
JavaScript中的運算子優先順序是一套規則。該規則在計算運算式時控制運算子執行的順序。具有較高優先順序的運算子先於較低優先順序的運算子執行。例如,乘法的執行先於加法。下表按從最高到最低的優先順序列出JavaScript運算子。具有相同優先順序的運算子按從左至右的順序求值。運算子描述. [] ()欄位訪問、數組下標、函數調用以及運算式分組++ -- - ~ ! delete new typeof void一元運算子、返回資料類型、對象建立、未定義值* / %乘法、除法、模數+ -
Time of Update: 2017-01-19
Throttle 無視一定時間內所有的調用,適合在發生頻度比較高的,處理比較重的時候使用。 複製代碼 代碼如下: var throttle = function (func, threshold, alt) { var last = Date.now(); threshold = threshold || 100; return function () { var now = Date.now(); if (now - last < threshold) { if (alt) { alt.