Time of Update: 2018-12-08
它的低學習門檻讓很多人都稱它為學前指令碼語言,它另外一個讓人嘲笑的東西是動態語言的概念是偏偏使用了高標準的待用資料類型。其實,你和Javascript都站錯了立場,而現在,你讓Javascript很生氣。這裡有五個原因能說明你的Javascript技術很爛。 1. 你沒有使用命名空間。
Time of Update: 2018-12-08
event究竟有多麼複雜?可見前輩的6年前的努力:最佳的addEvent是怎樣誕生的,後起之秀jQuery也付出了一千六百多行血汗代碼(v 1.5.1)搞定了6年後出現的各種核的瀏覽器。 我參考前輩的代碼以及自己的理解嘗試寫了一個事件架構,我的架構完成了一個事件機制的核心,它能提供統一介面實現多事件綁定以及避免記憶體流失等其他一些問題,更重要的是效能還不錯。我的手法:
Time of Update: 2018-12-08
例如: new Boolean(false) 會返回一個對象,該對象有一個 valueOf 方法會返回被封裝的值。這其實完全沒有必要,並且有時還令人困惑。不要使用 new Boolean、 new Number 或 new String。 此外也請避免使用 new Object 和 new Array。可使用 {} 和 [] 來代替。 --------------------------------------------------------------------------------
Time of Update: 2018-12-08
1.標識符與關鍵字 標識符以字母開頭,可以包含字母、數字、底線。標識符不能使用以下保留字元: 複製代碼 代碼如下:abstract, boolean,
Time of Update: 2018-12-08
js中function對象是一個令人著迷的東西,但由於他太過於靈活,常常令人迷惑,下面我貼一些代碼: 大多數人這樣簡寫: 複製代碼 代碼如下:function test () {}《jsvascript語言精粹》整本書這樣寫: 複製代碼 代碼如下:var test = function () {}函數可以立即運行並賦值: 複製代碼 代碼如下:var test = function () {} () // test === undefined var test2 = function ()
Time of Update: 2018-12-08
範圍是JavaScript最重要的概念之一,想要學好JavaScript就需要理解JavaScript範圍和範圍鏈的工作原理。今天這篇文章對JavaScript範圍和範圍鏈作簡單的介紹,希望能協助大家更好的學習JavaScript。 JavaScript範圍 任何程式設計語言都有範圍的概念,簡單的說,範圍就是變數與函數的可存取範圍,即範圍控制著變數與函數的可見度和生命週期。在JavaScript中,變數的範圍有全域範圍和局部範圍兩種。 1. 全域範圍(Global Scope)
Time of Update: 2018-12-08
長久以來JavaScript相容性一直是Web開發人員的一個主要問題。在正式規範、事實標準以及各種實現之間的存在的差異讓許多開發人員日夜煎熬。為此,主要從以下幾方面差異總結IE和Firefox的Javascript相容性: 一、函數和方法差異; 二、樣式訪問和設定; 三、DOM方法及對象引用; 四、事件處理; 五、其他差異的相容處理。 一、函數和方法差異 1. getYear()方法 【分析說明】先看一下以下代碼: 複製代碼 代碼如下:var year= new Date()
Time of Update: 2018-12-08
複製代碼 代碼如下:<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>javascript資料類型</title> </head> <body> <script type="text/javascript"> /**
Time of Update: 2018-12-08
預載入和JavaScript Image()對象 很多high-res映像真的可以使 Web 網站更加整潔。但是它們也會使網站的訪問速度變慢——映像是檔案,檔案使用頻寬,頻寬直接與等待時間相關。是該瞭解如何通過一個叫做映像預載入(preloading)的技巧來提高 Web 網站的訪問速度的時候了。 映像預載入 對於瀏覽器載入映像來說,只有在對映像發送一個 HTTP請求之後,它們才會被瀏覽器載入,對映像的 HTTP 要求要麼使用 <img> 標記,要麼通過方法調用實現。如果使用
Time of Update: 2018-12-08
大家可以測一測自己在這方面知識掌握的程度。 在題後有我參考原博主文章和評論的題目解析,大家競相拍磚。 The quiz: 1: 1 && 3 2: 1 && "foo" || 0 3: 1 || "foo" && 0 4: (1,2,3) 5: x = {shift:[].shift}; x.shift(); 3: x.length; 6: {foo:1}[0] 7: [true, false][+true, +false] 8:
Time of Update: 2018-12-08
關於反向引用 複製代碼 代碼如下:// 測試函數 function matchReg(reg, str) { var result = str.match(reg); if(result) { console.dir(result); } else { console.log('match failed'); } } var reg = /([A-Za-z]{0,6})\1/; var str = 'AndrewAndrew'; // 測試通過 matchReg(reg, str); //通過(
Time of Update: 2018-12-08
複製代碼 代碼如下:var YX = { //得到JS內建資料類型的類型,傳回值包括[Date,RegExp,Number,String,Array,Boolean,Function,null,undefined,Object] getType : function(obj){ return obj == null ? obj + "" : Object.prototype.toString.call(obj).slice(8,-1); } //建立一個簡單的類 ,createClass :
Time of Update: 2018-12-08
1、javascript中的內建對象 javascript中除了本身的內建對象,如以下我們所熟悉的對象: •Array •Date •Math •String •RegExp •…… 各個對象都有自己的屬性及方法,比如我們經常使用屬性及方法 屬性:stringObject.length; arrayObject.length;…… 方法:stringObject.indexOf(); stringObject.splite(); stringObject.substr();
Time of Update: 2018-12-08
而本文所提到的預先載入技術主要是讓javascript快速擷取圖標題部資料的尺寸。一段典型的使用預先載入擷取圖片大小的例子: 複製代碼 代碼如下:var imgLoad = function (url, callback) { var img = new Image(); img.src = url; if (img.complete) { callback(img.width, img.height); } else { img.onload = function () { callback(
Time of Update: 2018-12-08
昨天用jQuery外掛程式aeImageResize,發現它更有優勢:每張圖片載入完後,會馬上進行等比縮放。 這歸於圖片對象Image的載入事件onload的功勞。 查看外掛程式的源碼,發現它也依賴圖片對象的complete屬性和onload事件,並且特別把IE6區分對待,到底IE6在圖片載入對象上,與其它瀏覽器有什麼不同呢? 看下文: 通過js操縱DOM很多情況下都是為了實現和當前頁html元素的非同步載入,我談談對Image對象的一些認識。 看個例子: 複製代碼
Time of Update: 2018-12-08
複製代碼 代碼如下://靈感來自 //http://www.cnblogs.com/jkisjk/archive/2011/01/28/array_quickly_sortby.html var hasDuplicate = false; var sortBy = function(nodes){ var result = [], array = [], n = nodes.length, i = n, node; while(node = nodes[--n]){ (array[n] =
Time of Update: 2018-12-08
一、Window對象 -------------------------------------------------- ------------------- 對象屬性 window //窗戶自身 window.self //引用本窗戶window=window.self window.name //為窗戶命名 window.defaultStatus //設定窗戶狀態列資訊 window.location //URL地址,配備布置這個屬性可以開啟新的頁面
Time of Update: 2018-12-08
(1)簡化代碼 JavaScript定義對象和數組非常簡單,我們想要建立一個對象,一般是這樣寫的: 複製代碼 代碼如下:var car = new Object(); car.colour = 'red'; car.wheels = 4; car.hubcaps = 'spinning'; car.age = 4; 下面的寫法可以達到同樣的效果: 複製代碼 代碼如下:var car = { colour:'red', wheels:4, hubcaps:'spinning', age:4
Time of Update: 2018-12-08
以下是對變數值的URL編碼總結 : 建議用encodeURIComponent() , GET 和POST方式都可以發送過去 。 JavaScript中存在幾種對URL字串進行編碼的方法:escape(),encodeURI(),以及encodeURIComponent()。這幾種編碼所起的作用各不相同。 escape() 方法: 採用ISO
Time of Update: 2018-12-08
使用new Function( ) 來進行語法檢查 eval( ) 方法是不能亂用的,在不適當的時候使用eval( ) 方法可能導致整個程式都會出問題的; 而new Function( ) 就沒這麼大問題。雖然new Function( ) 在任何情況下,構造的函數都是在全域範圍下直接工作的,但只作語法檢查的話,並不會因為範圍問題而產生意外結果,只要你不直接調用通過它構造的新函數。 在eval( ) 接受的參數前面增加“0,” 其實這是由於IE中存在一個bug。出於某種原因,如果你在IE