Time of Update: 2017-01-19
如何用 JavaScript 將 [1,2,3,[4,5, [6,7]], [[[8]]]] 這樣一個 Array 變成 [1,2,3,4,5, 6,7,8] 呢?傳說中的 Array Flatten。 處理這種問題,通常我們會需要遞迴,來讓程式自己按照一種演算法去迴圈。在某書說寫著,“遞迴是一種強大的編程技術”,好吧,她不僅僅屬於
Time of Update: 2017-01-19
入門 Kibo不依賴任何東西。你只要把它放到你的HTML代碼裡就行了: 複製代碼 代碼如下: <script type="text/javascript" src="kibo.js"></script> 下載 kibo.js 建立一個Kibo對象執行個體,事件監聽器就建立起來了: 複製代碼 代碼如下: var k = new Kibo(); Kibo對象的構造器有一個選擇性參數——你指定的接收事件的HTML元素。可以是input, textarea 或 select,
Time of Update: 2017-01-19
<script src='stream-min.js'></script> 下載 stream.js 2Kb minified streams是什嗎? Streams 是一個操作簡單的資料結構,很像數組或連結資料表,但附加了一些非凡的能力。 它們有什麼特別之處? 跟數組不一樣,streams是一個有魔法的資料結構。它可以裝載無窮多的元素。是的,你沒聽錯。他的這種魔力來自於具有延後(lazily)執行的能力。這簡單的術語完全能表明它們可以載入無窮多的元素。 入門
Time of Update: 2017-01-19
它的低學習門檻讓很多人都稱它為學前指令碼語言,它另外一個讓人嘲笑的東西是動態語言的概念是偏偏使用了高標準的待用資料類型。其實,你和Javascript都站錯了立場,而現在,你讓Javascript很生氣。這裡有五個原因能說明你的Javascript技術很爛。 1. 你沒有使用命名空間。
Time of Update: 2017-01-19
查了不少資料,最後結論如下: 複製代碼 代碼如下: function orientationChange(){ switch(window.orientation) { case 0: // Portrait case 180: // Upside-down Portrait // Javascript to setup Portrait view break; case -90: // Landscape: turned 90 degrees counter-clockwise case 90
Time of Update: 2017-01-19
引子: 今天看到別人的一個題目: 複製代碼 代碼如下: function fn(x){ x = 10; arguments[0] = 20; console.log(x,arguments[0]) } fn() 感覺自己對這也是一知半解,自己也可以試一下,於是就特地分析一下。 本想從語言的角度來分析,無奈功力不夠,只能粗淺的嘗試一下,於是稱之管中窺豹,還望大牛指正。 這是昨天寫的,今天吃飯的時候又想了一下,想來想去感覺有些問題還是說得不靠譜,於是又試著修改了一下。 每一本js入門書籍都會提到,
Time of Update: 2017-01-19
其實通俗的講類就是對象的模板,為了增強JS的OO特性,受mootoos架構啟發我們可以使用一個JSON對象來描述這個對象的模板。在這個模板中我們可以類比實現私人成員,受保護的成員,靜態成員。 這是一個在JS中類比的類定義文法,代碼中Class是一個自訂函數,它接受兩個參數,第一個參數是類名、第二個參數是一個JSON用來一個對象的模板。在這個JSON對象中其中欄位 "extend",,"initialize","static"
Time of Update: 2017-01-19
先看圖: 很簡單的一個效果 首先html 複製代碼 代碼如下: <ul> <li><img src="i.jpg" alt="" /></li> <li><img src="i.jpg" alt="" /></li> <li><img src="i.jpg" alt="" /></li> <li><img src="i.jpg" alt=""
Time of Update: 2017-01-19
複製代碼 代碼如下: /* * base64編碼 */ var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var base64DecodeChars = new Array( -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Time of Update: 2017-01-19
1.如果密碼少於5位,那麼就認為這是一個弱密碼。 2.如果密碼只由數字、小寫字母、大寫字母或其它特殊符號當中的一種組成,則認為這是一個弱密碼。 3.如果密碼由數字、小寫字母、大寫字母或其它特殊符號當中的兩種組成,則認為這是一個中度安全的密碼。 4.如果密碼由數字、小寫字母、大寫字母或其它特殊符號當中的三種以上組成,則認為這是一個比較安全的密碼。 複製代碼 代碼如下: <script language="javascript"> //CharMode函數 function
Time of Update: 2017-01-19
javaScript的類型函數(如Number/String/Boolean/Array/Date/Obejct等)都是繼承於 Function.prototype,所以給Function.prototype增加方法,同時也會影響到由它衍生的下層類型函數。如: 複製代碼 代碼如下: Function.prototype.addMethod=function(methodName,func){ if(!this[methodName]){
Time of Update: 2017-01-19
我們來看看如果使用Knockout更簡單的來實現密碼強度的驗證。 原有代碼請查看: 複製代碼 代碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>
Time of Update: 2017-01-19
1. 排序: 預設的sort()按字元編碼排序的: 複製代碼 代碼如下: <script type="text/javascript"> <!-- var testArray=[3,324,5345,6546,134,5654,665]; testArray.sort(); alert(testArray); //--> </script> 現在要讓它按照數值大小排序: 複製代碼 代碼如下: <script type="text/javascript"
Time of Update: 2017-01-19
複製代碼 代碼如下: <select id="select" onchange="location.href='?page='+escape(this.value)+'';"> <option>請選擇</option> <option value="這是第一個">1</option> <option value="2">2</option> <option
Time of Update: 2017-01-19
l ECMAScript,有ECMA-262定義,明確javascript這門語言的規則和約定,好比為開始一場遊戲指定的遊戲規則、規範、約定。 l DOM:提供訪問和操作網頁內容的方法和介面 l BOM,提供與瀏覽器互動的方法和介面 ECMA-262規定了以下內容: l 文法 l 類型 l 關鍵字 l 保留字 l 操作符 l 對象 ECMAScript是對該標準規定的各方面內容的程式設計語言描述,javascript實現了ECMAScript指定內容並進行了擴充。
Time of Update: 2017-01-19
這時候最好的做法就是按需引入,動態引入組件js和樣式,檔案load完成後調用callback,運行js。代碼還是很簡便的 1. 判斷檔案load完成。載入狀態ie為onreadystatechange,其他為onload、onerror 複製代碼 代碼如下: if(isie){ Res.onreadystatechange = function(){ if(Res.readyState == 'complete' || Res.readyState == 'loaded'){
Time of Update: 2017-01-19
isNaN函數 返回一個 Boolean 值,指明提供的值是否是保留值 NaN (不是數字)。 NaN 即 Not a Number isNaN(numValue) 必選項 numvalue 參數為要檢查是否為 NAN 的值。 說明 假如值是 NaN, 那麼 isNaN 函數返回 true ,否則返回 false 。 使用這個函數的典型情況是檢查 parseInt 和 parseFloat 方法的輸入值。 還有一種辦法,變數可以與它自身進行比較。 假如比較的結果不等,那麼它就是 NaN 。
Time of Update: 2017-01-19
DOM文件物件模型是HTML和XML的應用程式介面(API),DOM將整個頁面規劃成由節點層次構成的文檔。DOM對象給予開發人員對HTML的存取權限,並且使開發人員能將HTML作為XML文檔來處理和查看。DOM對象是與語言無關的API,意味著它的實現並不是與javascript綁定,這在於初學者來說可能會理解錯誤。DOM是針對XML的基於樹的API,它關注的不僅僅是解析XML代碼,而是用一系列相互關聯的對象來表示這些代碼,而這些對象可以被修改,而且無需重新解析代碼就能直接存取它們。由於DOM的使
Time of Update: 2017-01-19
在這篇文章中,作者介紹了7個在IE和Firefox中不同的JavaScript句法。 1. CSS "float" 值 訪問一個給定CSS 值的最基本句法是:object.style.property,使用駝峰寫法來替換有串連符的值,例如,訪問某個ID為"header"的<div>的 background-color值,我們使用如下句法: document.getElementById("header").style.backgroundColor= "#ccc";
Time of Update: 2017-01-19
相信很多與頁面打過交道的同學都對 Yahoo 的 Best Practices for Speeding Up Your Web Site 不陌生。而這 35 條最佳實務中,對 Javascript 的載入順序的要求是:Put Scripts at the Bottom。因為根據 HTTP/1.1 specification 看來,在同一時間載入兩個檔案是最理想的,而 Javascript 指令碼會阻礙平行下載。Steve 說那是 2008 – 2009 那個時代用的。現在,載入