1,javascript的原型模型:prototype 在實現面向對象,(像是定義一個類的時候)需要一個構造函數來定義對象的成員,而方法去依附在該構造函數的原型上.
2,javascript中,為了實現繼承,必須將子類構造函數的prototype設置為一個父類的對象實例.
3,css的方塊套方塊模型:
最外是margin 是用來設置一個元素所占的空間的邊緣到相鄰元素的距離
邊框:border 用來設定一個元素的連線
padding 用來設置元素內容互元素邊框的距離
還有背景屬性是content 和 padding 區域,即內容和間隙
css中的屬性中的 width 和 height 指的是 content 區域的寬和高,這是IE中,在firefox裡得加上上面的邊邊框框。
4,System.Drawing.Imaging.BitmapData..將一個bitmap鎖定到內存中..
有兩個函數將圖像數據鎖定到內存中
一個是:Bitmap.LockBits(Rectangle rect,ImageMode flags,PixelFormat format)
還有一個是:Bitmap.LockBits(Rectangle rect,ImageMode flags,PixelFormat format,BimapBitData bitmapData)
bitmapData 有一個重要的屬性Scan0,是一個指針,指向圖片數據所在內存的第一個位置.使用內存跟蹤,將Scan0的值填入地址中,可以看到內存的分配情況.
我們可以用System.Runtime.InteropServices.Marshal.WriteByte(IntPtr ptr,byte val)來改更改指定位置的像素值了.
IntPtr 類型稱為"平台特定整數類型",它用於本機資源,如窗口句柄句.
5,反射:反射是一個運行庫類型發現的過程.通過反射可以得到一個給定程序集所包含的所有類型的列表,這個列表包括了給定類型中定義的方法,字段,屬性和事件.也可以動態地發現一組給定類支持的接口,方法的參數和其他相關信息如基類,命名空間,數據清單等.
javascript 裡的 for/in 語句:
for(variable in obj)
statement;
最有用的一個功能就是它可以枚舉一個對象所有可枚舉的屬性,包括原生屬性和繼承屬性,這樣就為javascript提供了一種很強大的反射機制.
例如:
--for(var each in document.body)
-- document.write(each+":"+document.body[each]+<br />);
--//枚舉並打印出body所有的屬性
variable 可以是任意的表達式..
比如:
--function keys(obj){
-- var ret= new Array();
-- var i=0;
-- for(ret[i++] in obj)
-- return ret;
-- }
以上函數將一個對象的屬性作為一個數組返回.
6,html-table 控件cellpadding 單元格裡的內容與單元格之間的距離
cellspacing屬性表示單元格之間的距離
對齊方式有:align 是水平對齊有left right center(指的是單元格裡的元素在水平方向上的對齊)
vlign 是垂直對齊 有top bottom middle
7,Base64:按照RFC2045的定義,Base64被定義為:Base64內容傳送編碼被設計用來把任意序列的8位字節描述為一種不易被人直接識別的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)
8,margin:0px auto 上下邊距為0px 左右自動調整。
9,js裡 opener 和 self的區別:opener對<打開當前窗口的對象>的引用,如果當前窗口被用戶打開,則opener的值為null
self自引用屬性,是對當前window對象的應用,與window屬性同義.
(self代表自身窗口,opener代表打開自身的那個窗口,比如窗口A打開窗口B.如果靠window.open方法,則對於窗口B,self代表B自己,而opener代表窗口A.)
10,wnd.location.search.slice(1); //得到地址欄上"?"後面的字符串,wnd是一個window對象的引用.
11,表達式中g的含義
g /global 代表全局搜索
i /ignore 代表忽略大小寫
gi 以上的組合
12,正向預查和反向預查
(?=pattern) (?!pattern) 非獲取,只是為了檢驗後面出現的是不是預想的字符串
13,setcapture 鼠標捕獲:鼠標捕獲(setCapture)作用是將鼠標事件捕獲到當前文檔的指定的對象。這個對象會為當前應用程序或整個系統接收所有鼠標事件。setCapture捕獲以下鼠標事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。
14,javascript 裡用in delete 和用對象作為集合,可以很方便的實現一個集合(delete 運算符刪除所指定的對象屬性,數組元素,或者變量.刪除成功返回true.同時 若運算數不存在時也返回true)
例如:
---var aSet= new Object();
---sSet["key"]=true; //插入新元素(無論是否已經存在)
---if("key1" in aSet)
--- delete aSet["key1"] //如果key1存在就刪除
---if(delete aSet["key2"])
--- aSet["key2"]=true; //刪除原有元素,更新key2
15,js裡的-0 和 |0 操作前者可以將一個字符隱式轉換為一個數字,後者會將一個符點數取整.
16,[] :存取對象和數組元素的雙目運算符。
當[] 的第二個運算數為對象時,先調用它的toString() 方法來進行轉換,如果轉換失敗,再調用valueOf()方法來轉換。
17,javascript異常總是沿調用堆棧向上傳播,事件傳播也是沿相同的方向.
18,javascript數組的length屬性不但可以讀還可以寫,設置數組的length為0,可以清除數組中的所有元素(不包括那些數組下標不為整數的數組元素.)
19,雖然null 和 undefined 不同但運算符 "==" 卻將它們視為相等的值(返回 true)
20,javascript 裝箱和拆箱:把基本數據類型轉換為對應的引用類型的操作被稱為裝箱,反之,把引用類型轉換為對應的值類型,被稱為拆箱.
21,JSON :對象常量&數組常量
javascript object notation javascript<對象表示方法>
JSON 是由javascript發展而來的一種簡單的數據交換協議,它的數據格式就是一個合法的javascript對象常量
22,absolute屬性與left、top配合起來制作相關的“懸浮層”效果。然而有時候我們需要針對某一個容器的懸浮效果,而不是針對窗口的。這時候通過高度、寬度的計算不但麻煩,而且幾乎無法完美實現效果。只要把其上一級的樣式屬性position設置為relative就可以了。如用div 嵌套 ul 和 li
23,關於DOM元素的移動:用object.appendChild(object.firstChild)可以將第一個元素移到最後,但是這在table元素上應用的時候的移動了</body>標簽外面(不顯示)..所以移動table元素裡的行的時候應該用MoveRow 方法.