Time of Update: 2017-01-19
1. 大多數遊覽器的組件構成如圖 在最底層的三個組件分別是網路,UI後端和js解譯器。作用如下: (1)網路- 用來完成網路調用,例如http請求,它具有平台無關的介面,可以在不同平台上工作 (2)UI 後端- 用來繪製類似組合選擇框及對話方塊等基本組件,具有不特定於某個平台的通用介面,底層使用作業系統的使用者介面 (3)JS解譯器- 用來解釋執行JS代碼 ps:上圖和知識點主要來自《HOW BROWSERS WORK: BEHIND
Time of Update: 2017-01-19
console.log(); 當你使用console.log()函數時,下面的firebug一定要開啟,不然這函數在用firefox運行時無效且影響正常程式,如果用IE開啟,將會出錯。 第一個參數可以是一個包含格式化預留位置輸出的字串,例如: console.log("The %s jumped over %d tall buildings", animal, count); 格式化字串 類型 %s 字串 %d, 整型 %i (暫不支援數字型) %f 浮點型 (暫不支援數字型) %o
Time of Update: 2017-01-19
1.document.write("");為 輸出語句 2.JS中的注釋為// 3.傳統的HTML文檔順序是:document->html->(head,body) 4.一個瀏覽器視窗中的DOM順序是:window->(navigator,screen,history,location,document) 5.得到表單中元素的名稱和值:document.getElementById("表單中元素的ID號").name(或value) 6.一個小寫轉大寫的JS:
Time of Update: 2017-01-19
1、直接建立模式。這是最簡單也是最直接的一種模式,首先建立一個參考型別的對象,然後為其添加自訂屬性和方法。範例程式碼如下: 複製代碼 代碼如下: var person = new Object(); person.name = "Sam"; person.age = 16; person.speak = function(){ alert(this.name + "is " + this.age + "years old"); } person.speak();
Time of Update: 2017-01-19
複製代碼 代碼如下: txt1.onkeydown = function(ev){ var oevent = ev||event; if(oevent.ctrlKey && oevent.keyCode == 13){ …… } } txt1:綁定事件的對象,例如:一個文本輸入框input。 oevent:事件對象(包含事件的很多有用詳情)。 keyCode:可以擷取到鍵盤按下的索引值。例如:斷行符號鍵就是13。
Time of Update: 2017-01-19
複製代碼 代碼如下: function obj2str(o){ var r = []; if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\""; if(typeof o == "object"){ if(!o.sort){ for(var i in o)
Time of Update: 2017-01-19
首先建立html頁面為sort.html ,並把下面的內容複寫進去 複製代碼 代碼如下: <!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> <meta http-
Time of Update: 2017-01-19
我們先看一段傳統的繼承代碼: 複製代碼 代碼如下: //定義超類 function Father(){ this.name = "父親"; } Father.prototype.theSuperValue = ["NO1","NO2"]; //定義子類 function Child(){ } //實現繼承 Child.prototype = new Father(); //修改共用數組 Child.prototype.theSuperValue.push("修改"); //建立子類執行個體
Time of Update: 2017-01-19
這本書中第一個重要的內容就是介面。大家對介面應該都不陌生,簡單的說介面就是一個契約或者規範。在強型別的面相對象語言中,介面可以很容易的實現。但是在javascript中並沒有原生的建立或者實現介面的方式,或者判定一個類型是否實現了某個介面,我們只能利用js的靈活性的特點,類比介面。 在javascript中實現介面有三種方式:注釋描述、屬性驗證、鴨子模型。 note:因為我看的是英文書,翻譯水平有限,不知道有些詞彙如何翻譯,大家只能領會精神了。 1. 注釋描述 (Describing
Time of Update: 2017-01-19
具體題目是這樣的: 從1--9中選取N個數字,組成不重複的N位元,從小到大進行編號,當輸入其中任何一個數M時,能找出該數字對應 的編號。如 N=3,M=213. 輸出:[123(1) , 132(2) , 213(3) , 231(4) , 312(5) , 321(6)]--->X=2
Time of Update: 2017-01-19
1.NaN 在JavaScript中,NaN代表了“not a number”.主要在解析字串出現錯誤時會返回這個值: 複製代碼 代碼如下: > Number("xyz") NaNNaN 的名字是“not a number”,不過也可以說是not not a number: 複製代碼 代碼如下: > NaN !== NaN true 它是一個數字!類型為"number" 複製代碼 代碼如下: > typeof NaN 'number' 1.1 檢測NaN
Time of Update: 2017-01-19
Array.prototype.push push向數組尾部添加一項並更新length ,返回數組長度。 如果Object使用push會怎樣? 看下面代碼, obj好像數組一樣工作了。length會自動更新。 複製代碼 代碼如下: var push = Array.prototype.push; var obj = {}; push.call(obj, "hello"); // 傳回值 1 // obj {"0":"hello", length:0} push.call(obj, "world"
Time of Update: 2017-01-19
1.稀疏數組 建立一個指定長度的稀疏數組很簡單: 複製代碼 代碼如下: > var a = new Array(3); > a [ , , ] > a.length 3 > a[0] undefined 當你遍曆它時,你會發現,它並沒有元素.JavaScript會跳過這些縫隙. 複製代碼 代碼如下: > a.forEach(function (x, i) { console.log(i+". "+x) }); > a.map(function (x, i)
Time of Update: 2017-01-19
1.語句和運算式 JavaScript中的運算式和語句是有區別的.一個運算式會產生一個值,它可以放在任何需要一個值的地方,比如,作為一個函數調用的參數.下面的每行代碼都是一個運算式: myvar3 + xmyfunc("a",
Time of Update: 2017-01-19
複製代碼 代碼如下: // 去掉字串的頭空格(左空格) function LTrim(str){ var i; for(i=0;i<str.length; i++) { if(str.charAt(i)!=" ") break; } str = str.substring(i,str.length); return str; } // 去掉字串的尾空格(右空格) function RTrim(str){ var i; for(i=str.length-1;i>=0;i--){ if(
Time of Update: 2017-01-19
confirm() 方法 confirm() 方法用於顯示一個帶有指定訊息和確定及取消按鈕的對話方塊。 說明:如果使用者點擊確定按鈕,則 confirm() 返回 true。如果點擊取消按鈕,則 confirm() 返回 false 一種: 複製代碼 代碼如下: <a href="javascript:if(confirm('確實要刪除該內容嗎?'))location='http://www.baidu.com'">快顯視窗</a> 二種: 複製代碼 代碼如下:
Time of Update: 2017-01-19
Javascript中有3個事件控制代碼在對應鍵盤的輸入狀態:keydown、keypress和keyup。 分別對應的意思是:按鍵被按下(按下按鍵但還沒有抬起)、點擊按鍵(按下並抬起按鍵)、按鍵抬起(按鍵抬起之後) 按鍵的分類 按鍵可以分為“實鍵”和“虛鍵” 實鍵可以理解為我們能夠看到並列印出來的按鍵,如字母“A”、數字“1”、字元“?”等等 虛鍵就是那些無法列印出來起到控製作用的按鍵,如“Ctrl”、“Alt”、“Shift”、“方向鍵”等等
Time of Update: 2017-01-19
主流瀏覽器預設為html元素提供的捲軸不美觀,而且前端開發人員想對其通過css進行統一樣式的美化也是不可實現的。比如ie可以通過樣式來實現簡單的美化、Webkit核心瀏覽器可以控制捲軸的顯示效果,firefox則不允許使用者為捲軸定義樣式。但是對於追求友好的使用者體驗的前端開發人員,是不會被這些瀏覽器的不一致行為所阻止的。我們可以自己通過標準的html元素類比來實現自訂的捲軸。這裡是自己在工作不太忙的時候寫出來了一個使用者可以自訂的捲軸jscroll,以下簡稱jscroll。jscroll預設只
Time of Update: 2017-01-19
常常會在回複和引用裡使用此功能,即單擊回複或引用,如讓輸入焦點出現在留言輸入框中,如果使用錨來定位,輸入焦點就不能啟用了。 複製代碼 代碼如下: javascript:document.getElementById("id").focus(); 或javascript:document.all.id.focus(); 或javascript:document.all.name.focus(); 例子: 複製代碼 代碼如下: <input type="text" name="tt" id=
Time of Update: 2017-01-19
前言上一篇文章,我們講解了映像的虛擬邊緣,這篇文章開始進行平滑(也就是模糊)處理。基本原理這裡直接引用OpenCV 2.4+ C++ 平滑處理和OpenCV 2.4+ C++ 邊緣梯度計算的相關內容:平滑也稱模糊, 是一項簡單且使用頻率很高的影像處理方法。平滑處理時需要用到一個濾波器。 最常用的濾波器是線性濾波器,線性濾波處理的輸出像素值(例如:)是輸入像素值(例如:)的加權平均: 稱為核,