Time of Update: 2017-01-19
string 對象 1、str.match(RegExp) 在str中搜尋匹配RegExp的字串並儲存在一個數組內返回, 如果RegExp不是全域設定(/g),僅匹配一次 複製代碼 代碼如下: ("abc112dwfwabcwef2abc3wfwabcasqf453abcqwf24j234h").match(/abc\d*/g); //結果 ["abc112", "abc", "abc3", "abc", "abc"]
Time of Update: 2017-01-19
每個函數建立時預設帶有一個prototype屬性,其中包含一個constructor屬性,和一個指向Object對象的隱藏屬性__proto__。constructor屬性的值為該函數的對象。在一個函數前面加上new來調用,則會建立一個隱藏串連到該函數prototype成員的新對象(由__proto__屬性來連結),同時函數的this將會被綁定到那個新對象上。 函數總是返回一個值;如果沒有指定傳回值,就返回undefined;如果當做建構函式來調用,且傳回值不是對象,則返回this(該新對象);
Time of Update: 2017-01-19
學php gd庫 看到有圖片裁剪 正好整一個 嗯 其實挺簡單的 php版 複製代碼 代碼如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Resize</title>
Time of Update: 2017-01-19
原廠模式也是對象建立模式之一,它通常在類或類的靜態方法中去實現。構造對象的一種方式是使用new操作符,但使用new時正是針對實現編程,會造成“耦合”問題,與具體的類別關係緊密。導致代碼更脆弱,缺乏彈性,在複雜邏輯的項目中建議是面向介面編程。 先看簡單原廠模式 複製代碼 代碼如下: Person(name, age) { var obj = {} obj.name = name obj.age = age return obj } var p1 = Person('jack', 25) var
Time of Update: 2017-01-19
1.檢測NaN 在數學上,任意值x總是與自己相等: x = x 但這條規則並不適用於 === 和 NaN: 複製代碼 代碼如下: > NaN === NaN false 導致的結果就是,你不能通過使用indexOf方法在一個包含了NaN的數組中找到這個NaN,因為該方法在內部是使用了===來判斷一個元素是否和參數中指定的值相等的: 複製代碼 代碼如下: > [ NaN ].indexOf(NaN) -1 譯者注:switch語句同理 複製代碼 代碼如下: switch (NaN)
Time of Update: 2017-01-19
本文主要講了JavaScript中科裡化和反科裡化this的方法.話題來自於Brendan Eich(JavaScript之父)的一個tweet.1.反科裡化(Uncurrying)this 反科裡化this的意思是:把一個簽名如下的方法: obj.foo(arg1, arg2)轉換成另外一個簽名如下的函數: foo(obj, arg1, arg2)想要知道這麼做有什麼用,我們首先得瞭解一下通用方法. 2.通用方法(Generic methods)
Time of Update: 2017-01-19
複製代碼 代碼如下: window.onload = function(){ var oDIv = document.getElementById('progressBox'); var sytleElemt = window.getComputedStyle(oDIv); for(var i=0;i<sytleElemt.length;i++){ if( typeof sytleElemt[sytleElemt[i]] != 'undefined' &&
Time of Update: 2017-01-19
由於主流瀏覽器對select元素渲染不同,所以在每種瀏覽器下顯示也不一樣,最主要的是預設情況下UI太粗糙,即使通過css加以美化也不能達到很美觀的效果。這對於我們這些專註於UX的前端開發人員是無法容忍的。於是在項目不太忙的時候,就計劃寫一個類比的select控制項出來。接下來就把實現的細節、遇到的問題以及如何使用和大家分享一下。 1. 實現細節 init: function(context) { //擷取指定上下文所有select元素 var elems =
Time of Update: 2017-01-19
因為工作的需要,我要在網頁端編寫一段指令碼,把資料通過網頁批量提交到系統中去。所以我就想到了Greasemonkey外掛程式,於是就開始動手寫,發現問題解決得很順利。但是在對指令碼進行總結和整理的時候,我習慣性地問了自己一個問題:能不能再簡單點?
Time of Update: 2017-01-19
首先不同瀏覽器中event位置屬性的分析: 1. IE的event.x,event.y是以事件觸發元素的父元素外界為參考點(不包括滾動距離) 2. Firefox的event.pageX,event.pageY是以body元素為參考點(包括滾動距離) 3. event.clientX,event.clientY以瀏覽器左上方為參考點(不包括滾動距離) 4.
Time of Update: 2017-01-19
一、IE中的XML DOM支援 IE對XML的支援是基於ActiveX的MSXML庫。 1、DOM建立 對每個新版本的MSXML,都會建立出不同的XML DOM對象,所以盡量選擇新的XML DOM版本。 2、載入XML 載入XML分兩種,即: 載入XML字串:loadXML(xml字串)
Time of Update: 2017-01-19
一、前言 JavaScript語言在不同的瀏覽器的下有存在細微的差異,但不像DOM操作差異那麼大,現在為大家列舉出其中一個"for迴圈"的差異,並介紹如何有效解決這種差異。 二、問題描述 在下面的 測試代碼 例1 中IE6和Chrome輸出的結果是不一致,IE6不執行for語句裡的代碼 複製代碼 代碼如下: //例1: alert("準備測試toString是否被for迴圈枚舉出來") var forTest = { toString: 1 } for (i in forTest) {
Time of Update: 2017-01-19
Javascript 的數組Array,既是一個數組,也是一個字典(Dictionary)。先舉例看看數組的用法。 複製代碼 代碼如下: var a = new Array(); a[0] = "Acer"; a[1] = "Dell"; for (var i = 0; i < a.length; i++) { alert(a[i]); } 下面再看一下字典的用法。 複製代碼 代碼如下: var computer_price = new Array(); computer_price["
Time of Update: 2017-01-19
一、問題的提出 我們先來看看下面幾段代碼,要注意的是,以下代碼不要在瀏覽器的開發人員工具(如FireBug、Chrome Developer tool)中運行,原因後面會說明: 為什麼我們可以刪除對象的屬性: 複製代碼 代碼如下: var o = { x: 1 }; delete o.x; // true o.x; // undefined 但不以刪除像這樣聲明的變數: 複製代碼 代碼如下: var x = 1; delete x; // false x; // 1
Time of Update: 2017-01-19
1.1.1 摘要 相信有C++、C#或Java等編程經驗的各位,對於this關鍵字再熟悉不過了。由於Javascript是一種物件導向的程式設計語言,它和C++、C#或Java一樣都包含this關鍵字,接下來我們將向大家介紹Javascript中的this關鍵字。 本文目錄 •全域代碼中的this •函數中的this •參考型別 •函數調用以及非參考型別 •參考型別以及this的null值
Time of Update: 2017-01-19
動畫原理 所謂的動畫,就是通過一些列的運動形成的動的畫面。在網頁中,我們可以通過不斷的改變元素的css值,來達到動的效果。 用到的公式 總距離S = 總時間T * 速度V 即: V = S/T 當前距離s = S/T * 已耗時t 即: s = S * (t/T) 即:當前距離 = 總距離 * (已耗時/總時間) 即:動畫元素開始值 + (動畫元素結束值 - 動畫元素開始值) * (目前時間-開始時間) / (動畫需要時間) + 值的格式
Time of Update: 2017-01-19
JS的字串都是string對象,可以用string對象的length屬性可以擷取其長度,但是無論是中文、全形符號以及英文最小長度單位都是1,這與php的strlen()並不相同。複製代碼 代碼如下: function strlen(str) { var s = 0; for(var i = 0; i < str.length; i++) { if(str.charAt(i).match(/[u0391-uFFE5]/)) { s += 2; } else { s++; } }
Time of Update: 2017-01-19
很多時候我們會用for 來產生多個結構相同的節點結構,這樣我們需要寫很多createElement、setAttribute、appendChild 等代碼。 但其實我們只需要有一個html 的模板,就可以用cloneNode 方法對已有的節點進行複製,包括其子節點。 以下是cloneNode 方法原型: newElement oldElement.cloneNode(bool deep); 這個方法只有一個參數deep,布爾值,如果為true,則複製oldElement
Time of Update: 2017-01-19
1、給你一個字串,要你找出裡面出現次數最多的字母和出現的次數,例如:“abaasdffggghhjjkkgfddsssss”; 複製代碼 代碼如下: var str = "abaasdffggghhjjkkgfddsssss"; var arr = new Array(); var i = 0; while (str.charAt(0)) { arr[i] = str.charAt(0) + "=" + (str.split(str.charAt(0)).length - 1); str =
Time of Update: 2017-01-19
範例程式碼很簡單,直接奉上,就不多廢話了複製代碼 代碼如下:<html> <head> <title>denotoggle</title> <style> #box { width: 100px; height: 100PX; background-color: #ddd } .show {