Window對象 視窗操作 Window對象對操作瀏覽器視窗非常有用,開發人員可以移動或調整瀏覽器視窗的大小。可用四種方法實現這些操作: moveBy(dx,dy):把瀏覽器視窗相對當前位置水平移動dx個像素,垂直移動dy個像素。dx值為負左移,dy為負上移。 moveTo(x,y):行動瀏覽器視窗,使它的左上方位於使用者螢幕的(x,y)處。可以使用負數,不過這樣會把部分視窗移出螢幕的可視地區。 resizeBy(dw,dh):相對瀏覽器視窗當前大小,把視窗的寬度調整dw個像素,
繼承 繼承是物件導向語言的必備特徵,即一個類能夠重用另一個類的方法和屬性。在JavaScript中繼承方式的實現方式主要有以下五種:對象冒充、call()、apply()、原型鏈、混合方式。 下面分別介紹。 對象冒充 原理:建構函式使用this關鍵字給所有屬性和方法賦值。因為建構函式只是一個函數,所以可以使ClassA的建構函式成為ClassB的方法,然後調用它。ClassB就會收到ClassA的建構函式中定義的屬性和方法。 樣本: 複製代碼 代碼如下: function
工廠方式 建立並返回特定類型的對象。 複製代碼 代碼如下: function createCar(sColor,iDoors,iMpg){ var oTempCar=new Object(); oTempCar.color=sColor; oTempCar.doors=iDoors; oTempCar.mpg=iMpg; oTempCar.showColor=function(){ alert(this.color); } return oTempCar; } 調用樣本:
Math對象的屬性 E:值e,自然對數的底 LN10:10的自然對數 LN2:2的自然對數 LOG2E:以2為底E的對數 LOG10E:以10為底E的對數 PI:值派 SQRT1_2:1/2 的平方根 SQRT2:2的平方根 Math對象的方法:最大值與最小值 min()&&max()用於取一組數中的最小值跟最大值。 樣本: 複製代碼 代碼如下: var iMax=Math.Max(1,2,3); alert(iMax);//outputs 3 var iMin=Math.Min(1,2,3);
1、邏輯非 邏輯非用!表示,可以應用與ECMAScript的任何類型的值,邏輯非操作返回的是一個布爾值(true/false)。該操作符首先會將它的運算元轉換為一個布爾值,然後再對其求反。 下面說明下Boolean()轉型函數的一組規則。 資料類型轉換為true的值轉換為false的值BooleantruefalseString 任何非Null 字元串""(Null
局部變數也就可以理解為在函數內部定義的變數,很明顯訪問局部變數要比域外的變數要快,因為它位於範圍鏈的第一個變數對象中(關於範圍鏈的介紹可以閱讀這篇文章)。變數在範圍鏈的位置越深,訪問所需要的時間就越長,全域變數總是最慢的,因為它們位於範圍鏈的最後一個變數對象。 每種資料類型的訪問都需要付出點效能代價,對於直接量和局部變數基本都能消費得起,而訪問數組項和對象成員則要代價高點。下圖顯示了不同瀏覽器,分別對這四種資料類型進行了200'000次操作所用的時間。
1.1.1 摘要 相信有C++、C#或Java等編程經驗的各位,對於this關鍵字再熟悉不過了。由於Javascript是一種物件導向的程式設計語言,它和C++、C#或Java一樣都包含this關鍵字,接下來我們將向大家介紹Javascript中的this關鍵字。 本文目錄 全域代碼中的this 函數中的this 參考型別 函數調用以及非參考型別 參考型別以及this的null值 函數作為構造器被調用時this的值 手動設定函數調用時this的值 1.1.2 本文
複製代碼 代碼如下: isNull: function(a){ return a === null; }, isUndefined: function(a){ return a === undefined; }, isNumber: function(a){ return typeof a === 'number'; }, isString: function(a){ return typeof a === 'string'; }, isBoolean: function(a){ return
一,for迴圈的基本寫法 代碼如下: 複製代碼 代碼如下: //例一for(var i=1;i<=10;i++) { alert(i); } 這段代碼太簡單了,我都不好意思拿出手。代碼的執行結果是依次彈出1到10,PS:在早期的IE如IE6中,你把10改成10000,就能讓使用者一直點確定什麼也不能幹了哈哈——不要說是我出的主意。 由於這是一篇基礎課程,所以我們迴歸正題來詳細分析一下這段代碼吧。 for迴圈的結構都是類似的,任意一個for迴圈都是這樣的: for(開始前;迴圈進行的條件;
•類比塊級範圍 大家都知道在JavaScript中沒有塊級範圍的概念,我們可以通過使用閉包來類比實現塊級範圍,看下面的樣本: 複製代碼 代碼如下: (function () { for (var i = 0; i < 10; i++) { //Do Nothing } alert(i); //輸出10 })(); 第6行可以訪問到for迴圈塊中的變數i,如果我們稍微修改以上代碼,把for迴圈塊放置在閉包中,情況就不一樣了: 複製代碼 代碼如下: (function () {
Daniel Clifford 在 Google I/O 2012 上做了一個精彩的演講“Breaking the JavaScript Speed Limit with V8”。在演講中,他深入解釋了13個簡單的代碼最佳化方法,可以讓你的代碼在 Chrome 的 V8 JavaScript 引擎編譯/運行你的 JavaScript 代碼更加快速。在演講中,他解釋了怎麼最佳化,並且解釋了原因。下面簡明的列出了最佳化的要點: 1. 在建構函式中初始化所有的對象 2.
請看源碼: 複製代碼 代碼如下: function clone(o) { var F = function(){}; F.prototype = o; return new F(); } 首先看ext(4.1的1896行開始)的原型式繼承。 複製代碼 代碼如下: var TemplateClass = function(){}; var ExtObject = Ext.Object = { chain: function (object) { TemplateClass.prototype =
1、每個函數都包含兩個非繼承而來的方法:apply()和call()。 2、他們的用途相同,都是在特定的範圍中調用函數。 3、接收參數方面不同,apply()接收兩個參數,一個是函數啟動並執行範圍(this),另一個是參數數組。call()方法第一個參數與apply()方法相同,但傳遞給函數的參數必須列舉出來。 例1: 複製代碼 代碼如下: window.firstName = "diz"; window.lastName = "song"; var myObject = {
javascript操作cookie簡單版本 複製代碼 代碼如下: function setCookie(name, value, iDay) { var oDate = new Date(); oDate.setDate(oDate.getDate() + iDay); document.cookie = name+'='+value+';expires='+oDate; } function getCookie(name) { var arr = document.cookie.split(
主要兩個部分,一、是滾動內容部分;二、JS的滾動代碼部分,也只有兩句話。 一、傳統的滾動代碼 用Javascript實現新聞內容的水平滾動! [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行] 傳統的滾動代碼應用效果比較單一,而且經常還存在瀏覽器的相容性問題,比如在FIREFOX上效果就會出現marquee的特效無效的問題。 二、Javascript實現的滾動效果 用Javascript實現新聞內容的水平滾動1 //div標籤中的寬度width等參數可以自行調節
調用介面: 複製代碼 代碼如下: /** * @param elem {HTMLElement} 執行動畫的HTML元素 * @param params {JSON} 動畫執行過過程中需要修改的HTML 屬性 * @param duration {Number} 可選,動畫執行時間,單位毫秒 * @param easing {String} 可選,動畫執行的方式,緩入easeIn、緩出easeOut * @param callback {Function} 可選,動畫執行完成時的回呼函數 * @
比如要在一個列表中利用ajax插入一個li的時候,我會直接把資料跟html標籤拼接成一句完整的html,然後插入到ul中。無論資料是從伺服器端拿回的,或者是從使用者的input輸入中拿到的——無論哪種方法都是一樣。
在項目中需要快速檢測瀏覽器是否支援某CSS3特性,比如檢測是否支援“transform”,然後我的布局會有兩種完全不同的版式。當然除開本文介紹的這種快速方法,還有一種更有名和更通用的方法,那就是modernizr,運行指令碼之後它會在html的class上加上瀏覽器支援的所有特性的列表。優點:js是可配置的,不需要的特性檢測可以在配置指令碼中去掉基於特性檢測js庫簡單好用除此之外還有一種不太好的方法,那就是判斷瀏覽器的UA,不好的原因是UA可能會偽造,而且版本判斷繁瑣,還有不穩定。優點:效能可能
譯者注:本文要講的是ECMAScript 6中的知識點,如果你連ES5都不瞭解的話.我得說,你已經很落後了.CSS4,HTML6,甚至ES7
譯者注:前兩天在看ES5的時候順便出了一道題,今天看到這篇文章,剛好解釋的很清楚,就翻譯了一下.在JavaScript中,主要有三種方法能讓任意值轉換為字串.本文講解了每種方法以及各自的優缺點.1.轉換字串的三種方法 這三種將value轉換為字串的方法是: 1.value.toString() 2."" + value 3.String(value) 第一種方法存在的問題是,它不能把null和undefined轉換為字串.還有第二種和第三種方法,這兩種方法的效果基本一樣.