Ruffy javascript 學(xué)習(xí)筆記
更新時(shí)間:2009年11月30日 22:17:52 作者:
Ruffy javascript 學(xué)習(xí)筆記
1,javascript的原型模型:prototype 在實(shí)現(xiàn)面向?qū)ο?,(像是定義一個(gè)類的時(shí)候)需要一個(gè)構(gòu)造函數(shù)來(lái)定義對(duì)象的成員,而方法去依附在該構(gòu)造函數(shù)的原型上.
2,javascript中,為了實(shí)現(xiàn)繼承,必須將子類構(gòu)造函數(shù)的prototype設(shè)置為一個(gè)父類的對(duì)象實(shí)例.
3,css的方塊套方塊模型:
最外是margin 是用來(lái)設(shè)置一個(gè)元素所占的空間的邊緣到相鄰元素的距離
邊框:border 用來(lái)設(shè)定一個(gè)元素的連線
padding 用來(lái)設(shè)置元素內(nèi)容互元素邊框的距離
還有背景屬性是content 和 padding 區(qū)域,即內(nèi)容和間隙
css中的屬性中的 width 和 height 指的是 content 區(qū)域的寬和高,這是IE中,在firefox里得加上上面的邊邊框框。
4,System.Drawing.Imaging.BitmapData..將一個(gè)bitmap鎖定到內(nèi)存中..
有兩個(gè)函數(shù)將圖像數(shù)據(jù)鎖定到內(nèi)存中
一個(gè)是:Bitmap.LockBits(Rectangle rect,ImageMode flags,PixelFormat format)
還有一個(gè)是:Bitmap.LockBits(Rectangle rect,ImageMode flags,PixelFormat format,BimapBitData bitmapData)
bitmapData 有一個(gè)重要的屬性Scan0,是一個(gè)指針,指向圖片數(shù)據(jù)所在內(nèi)存的第一個(gè)位置.使用內(nèi)存跟蹤,將Scan0的值填入地址中,可以看到內(nèi)存的分配情況.
我們可以用System.Runtime.InteropServices.Marshal.WriteByte(IntPtr ptr,byte val)來(lái)改更改指定位置的像素值了.
IntPtr 類型稱為"平臺(tái)特定整數(shù)類型",它用于本機(jī)資源,如窗口句柄句.
5,反射:反射是一個(gè)運(yùn)行庫(kù)類型發(fā)現(xiàn)的過(guò)程.通過(guò)反射可以得到一個(gè)給定程序集所包含的所有類型的列表,這個(gè)列表包括了給定類型中定義的方法,字段,屬性和事件.也可以動(dòng)態(tài)地發(fā)現(xiàn)一組給定類支持的接口,方法的參數(shù)和其他相關(guān)信息如基類,命名空間,數(shù)據(jù)清單等.
javascript 里的 for/in 語(yǔ)句:
for(variable in obj)
statement;
最有用的一個(gè)功能就是它可以枚舉一個(gè)對(duì)象所有可枚舉的屬性,包括原生屬性和繼承屬性,這樣就為javascript提供了一種很強(qiáng)大的反射機(jī)制.
例如:
--for(var each in document.body)
-- document.write(each+":"+document.body[each]+<br />);
--//枚舉并打印出body所有的屬性
variable 可以是任意的表達(dá)式..
比如:
--function keys(obj){
-- var ret= new Array();
-- var i=0;
-- for(ret[i++] in obj)
-- return ret;
-- }
以上函數(shù)將一個(gè)對(duì)象的屬性作為一個(gè)數(shù)組返回.
6,html-table 控件cellpadding 單元格里的內(nèi)容與單元格之間的距離
cellspacing屬性表示單元格之間的距離
對(duì)齊方式有:align 是水平對(duì)齊有l(wèi)eft right center(指的是單元格里的元素在水平方向上的對(duì)齊)
vlign 是垂直對(duì)齊 有top bottom middle
7,Base64:按照RFC2045的定義,Base64被定義為:Base64內(nèi)容傳送編碼被設(shè)計(jì)用來(lái)把任意序列的8位字節(jié)描述為一種不易被人直接識(shí)別的形式。(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 左右自動(dòng)調(diào)整。
9,js里 opener 和 self的區(qū)別:opener對(duì)<打開(kāi)當(dāng)前窗口的對(duì)象>的引用,如果當(dāng)前窗口被用戶打開(kāi),則opener的值為null
self自引用屬性,是對(duì)當(dāng)前window對(duì)象的應(yīng)用,與window屬性同義.
(self代表自身窗口,opener代表打開(kāi)自身的那個(gè)窗口,比如窗口A打開(kāi)窗口B.如果靠window.open方法,則對(duì)于窗口B,self代表B自己,而opener代表窗口A.)
10,wnd.location.search.slice(1); //得到地址欄上"?"后面的字符串,wnd是一個(gè)window對(duì)象的引用.
11,表達(dá)式中g(shù)的含義
g /global 代表全局搜索
i /ignore 代表忽略大小寫
gi 以上的組合
12,正向預(yù)查和反向預(yù)查
(?=pattern) (?!pattern) 非獲取,只是為了檢驗(yàn)后面出現(xiàn)的是不是預(yù)想的字符串
13,setcapture 鼠標(biāo)捕獲:鼠標(biāo)捕獲(setCapture)作用是將鼠標(biāo)事件捕獲到當(dāng)前文檔的指定的對(duì)象。這個(gè)對(duì)象會(huì)為當(dāng)前應(yīng)用程序或整個(gè)系統(tǒng)接收所有鼠標(biāo)事件。setCapture捕獲以下鼠標(biāo)事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。
14,javascript 里用in delete 和用對(duì)象作為集合,可以很方便的實(shí)現(xiàn)一個(gè)集合(delete 運(yùn)算符刪除所指定的對(duì)象屬性,數(shù)組元素,或者變量.刪除成功返回true.同時(shí) 若運(yùn)算數(shù)不存在時(shí)也返回true)
例如:
---var aSet= new Object();
---sSet["key"]=true; //插入新元素(無(wú)論是否已經(jīng)存在)
---if("key1" in aSet)
--- delete aSet["key1"] //如果key1存在就刪除
---if(delete aSet["key2"])
--- aSet["key2"]=true; //刪除原有元素,更新key2
15,js里的-0 和 |0 操作前者可以將一個(gè)字符隱式轉(zhuǎn)換為一個(gè)數(shù)字,后者會(huì)將一個(gè)符點(diǎn)數(shù)取整.
16,[] :存取對(duì)象和數(shù)組元素的雙目運(yùn)算符。
當(dāng)[] 的第二個(gè)運(yùn)算數(shù)為對(duì)象時(shí),先調(diào)用它的toString() 方法來(lái)進(jìn)行轉(zhuǎn)換,如果轉(zhuǎn)換失敗,再調(diào)用valueOf()方法來(lái)轉(zhuǎn)換。
17,javascript異??偸茄卣{(diào)用堆棧向上傳播,事件傳播也是沿相同的方向.
18,javascript數(shù)組的length屬性不但可以讀還可以寫,設(shè)置數(shù)組的length為0,可以清除數(shù)組中的所有元素(不包括那些數(shù)組下標(biāo)不為整數(shù)的數(shù)組元素.)
19,雖然null 和 undefined 不同但運(yùn)算符 "==" 卻將它們視為相等的值(返回 true)
20,javascript 裝箱和拆箱:把基本數(shù)據(jù)類型轉(zhuǎn)換為對(duì)應(yīng)的引用類型的操作被稱為裝箱,反之,把引用類型轉(zhuǎn)換為對(duì)應(yīng)的值類型,被稱為拆箱.
21,JSON :對(duì)象常量&數(shù)組常量
javascript object notation javascript<對(duì)象表示方法>
JSON 是由javascript發(fā)展而來(lái)的一種簡(jiǎn)單的數(shù)據(jù)交換協(xié)議,它的數(shù)據(jù)格式就是一個(gè)合法的javascript對(duì)象常量
22,absolute屬性與left、top配合起來(lái)制作相關(guān)的“懸浮層”效果。然而有時(shí)候我們需要針對(duì)某一個(gè)容器的懸浮效果,而不是針對(duì)窗口的。這時(shí)候通過(guò)高度、寬度的計(jì)算不但麻煩,而且?guī)缀鯚o(wú)法完美實(shí)現(xiàn)效果。只要把其上一級(jí)的樣式屬性position設(shè)置為relative就可以了。如用div 嵌套 ul 和 li
23,關(guān)于DOM元素的移動(dòng):用object.appendChild(object.firstChild)可以將第一個(gè)元素移到最后,但是這在table元素上應(yīng)用的時(shí)候的移動(dòng)了</body>標(biāo)簽外面(不顯示)..所以移動(dòng)table元素里的行的時(shí)候應(yīng)該用MoveRow 方法.
2,javascript中,為了實(shí)現(xiàn)繼承,必須將子類構(gòu)造函數(shù)的prototype設(shè)置為一個(gè)父類的對(duì)象實(shí)例.
3,css的方塊套方塊模型:
最外是margin 是用來(lái)設(shè)置一個(gè)元素所占的空間的邊緣到相鄰元素的距離
邊框:border 用來(lái)設(shè)定一個(gè)元素的連線
padding 用來(lái)設(shè)置元素內(nèi)容互元素邊框的距離
還有背景屬性是content 和 padding 區(qū)域,即內(nèi)容和間隙
css中的屬性中的 width 和 height 指的是 content 區(qū)域的寬和高,這是IE中,在firefox里得加上上面的邊邊框框。
4,System.Drawing.Imaging.BitmapData..將一個(gè)bitmap鎖定到內(nèi)存中..
有兩個(gè)函數(shù)將圖像數(shù)據(jù)鎖定到內(nèi)存中
一個(gè)是:Bitmap.LockBits(Rectangle rect,ImageMode flags,PixelFormat format)
還有一個(gè)是:Bitmap.LockBits(Rectangle rect,ImageMode flags,PixelFormat format,BimapBitData bitmapData)
bitmapData 有一個(gè)重要的屬性Scan0,是一個(gè)指針,指向圖片數(shù)據(jù)所在內(nèi)存的第一個(gè)位置.使用內(nèi)存跟蹤,將Scan0的值填入地址中,可以看到內(nèi)存的分配情況.
我們可以用System.Runtime.InteropServices.Marshal.WriteByte(IntPtr ptr,byte val)來(lái)改更改指定位置的像素值了.
IntPtr 類型稱為"平臺(tái)特定整數(shù)類型",它用于本機(jī)資源,如窗口句柄句.
5,反射:反射是一個(gè)運(yùn)行庫(kù)類型發(fā)現(xiàn)的過(guò)程.通過(guò)反射可以得到一個(gè)給定程序集所包含的所有類型的列表,這個(gè)列表包括了給定類型中定義的方法,字段,屬性和事件.也可以動(dòng)態(tài)地發(fā)現(xiàn)一組給定類支持的接口,方法的參數(shù)和其他相關(guān)信息如基類,命名空間,數(shù)據(jù)清單等.
javascript 里的 for/in 語(yǔ)句:
for(variable in obj)
statement;
最有用的一個(gè)功能就是它可以枚舉一個(gè)對(duì)象所有可枚舉的屬性,包括原生屬性和繼承屬性,這樣就為javascript提供了一種很強(qiáng)大的反射機(jī)制.
例如:
--for(var each in document.body)
-- document.write(each+":"+document.body[each]+<br />);
--//枚舉并打印出body所有的屬性
variable 可以是任意的表達(dá)式..
比如:
--function keys(obj){
-- var ret= new Array();
-- var i=0;
-- for(ret[i++] in obj)
-- return ret;
-- }
以上函數(shù)將一個(gè)對(duì)象的屬性作為一個(gè)數(shù)組返回.
6,html-table 控件cellpadding 單元格里的內(nèi)容與單元格之間的距離
cellspacing屬性表示單元格之間的距離
對(duì)齊方式有:align 是水平對(duì)齊有l(wèi)eft right center(指的是單元格里的元素在水平方向上的對(duì)齊)
vlign 是垂直對(duì)齊 有top bottom middle
7,Base64:按照RFC2045的定義,Base64被定義為:Base64內(nèi)容傳送編碼被設(shè)計(jì)用來(lái)把任意序列的8位字節(jié)描述為一種不易被人直接識(shí)別的形式。(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 左右自動(dòng)調(diào)整。
9,js里 opener 和 self的區(qū)別:opener對(duì)<打開(kāi)當(dāng)前窗口的對(duì)象>的引用,如果當(dāng)前窗口被用戶打開(kāi),則opener的值為null
self自引用屬性,是對(duì)當(dāng)前window對(duì)象的應(yīng)用,與window屬性同義.
(self代表自身窗口,opener代表打開(kāi)自身的那個(gè)窗口,比如窗口A打開(kāi)窗口B.如果靠window.open方法,則對(duì)于窗口B,self代表B自己,而opener代表窗口A.)
10,wnd.location.search.slice(1); //得到地址欄上"?"后面的字符串,wnd是一個(gè)window對(duì)象的引用.
11,表達(dá)式中g(shù)的含義
g /global 代表全局搜索
i /ignore 代表忽略大小寫
gi 以上的組合
12,正向預(yù)查和反向預(yù)查
(?=pattern) (?!pattern) 非獲取,只是為了檢驗(yàn)后面出現(xiàn)的是不是預(yù)想的字符串
13,setcapture 鼠標(biāo)捕獲:鼠標(biāo)捕獲(setCapture)作用是將鼠標(biāo)事件捕獲到當(dāng)前文檔的指定的對(duì)象。這個(gè)對(duì)象會(huì)為當(dāng)前應(yīng)用程序或整個(gè)系統(tǒng)接收所有鼠標(biāo)事件。setCapture捕獲以下鼠標(biāo)事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。
14,javascript 里用in delete 和用對(duì)象作為集合,可以很方便的實(shí)現(xiàn)一個(gè)集合(delete 運(yùn)算符刪除所指定的對(duì)象屬性,數(shù)組元素,或者變量.刪除成功返回true.同時(shí) 若運(yùn)算數(shù)不存在時(shí)也返回true)
例如:
---var aSet= new Object();
---sSet["key"]=true; //插入新元素(無(wú)論是否已經(jīng)存在)
---if("key1" in aSet)
--- delete aSet["key1"] //如果key1存在就刪除
---if(delete aSet["key2"])
--- aSet["key2"]=true; //刪除原有元素,更新key2
15,js里的-0 和 |0 操作前者可以將一個(gè)字符隱式轉(zhuǎn)換為一個(gè)數(shù)字,后者會(huì)將一個(gè)符點(diǎn)數(shù)取整.
16,[] :存取對(duì)象和數(shù)組元素的雙目運(yùn)算符。
當(dāng)[] 的第二個(gè)運(yùn)算數(shù)為對(duì)象時(shí),先調(diào)用它的toString() 方法來(lái)進(jìn)行轉(zhuǎn)換,如果轉(zhuǎn)換失敗,再調(diào)用valueOf()方法來(lái)轉(zhuǎn)換。
17,javascript異??偸茄卣{(diào)用堆棧向上傳播,事件傳播也是沿相同的方向.
18,javascript數(shù)組的length屬性不但可以讀還可以寫,設(shè)置數(shù)組的length為0,可以清除數(shù)組中的所有元素(不包括那些數(shù)組下標(biāo)不為整數(shù)的數(shù)組元素.)
19,雖然null 和 undefined 不同但運(yùn)算符 "==" 卻將它們視為相等的值(返回 true)
20,javascript 裝箱和拆箱:把基本數(shù)據(jù)類型轉(zhuǎn)換為對(duì)應(yīng)的引用類型的操作被稱為裝箱,反之,把引用類型轉(zhuǎn)換為對(duì)應(yīng)的值類型,被稱為拆箱.
21,JSON :對(duì)象常量&數(shù)組常量
javascript object notation javascript<對(duì)象表示方法>
JSON 是由javascript發(fā)展而來(lái)的一種簡(jiǎn)單的數(shù)據(jù)交換協(xié)議,它的數(shù)據(jù)格式就是一個(gè)合法的javascript對(duì)象常量
22,absolute屬性與left、top配合起來(lái)制作相關(guān)的“懸浮層”效果。然而有時(shí)候我們需要針對(duì)某一個(gè)容器的懸浮效果,而不是針對(duì)窗口的。這時(shí)候通過(guò)高度、寬度的計(jì)算不但麻煩,而且?guī)缀鯚o(wú)法完美實(shí)現(xiàn)效果。只要把其上一級(jí)的樣式屬性position設(shè)置為relative就可以了。如用div 嵌套 ul 和 li
23,關(guān)于DOM元素的移動(dòng):用object.appendChild(object.firstChild)可以將第一個(gè)元素移到最后,但是這在table元素上應(yīng)用的時(shí)候的移動(dòng)了</body>標(biāo)簽外面(不顯示)..所以移動(dòng)table元素里的行的時(shí)候應(yīng)該用MoveRow 方法.
相關(guān)文章
javascript中的107個(gè)基礎(chǔ)知識(shí)收集整理 推薦
這篇文章對(duì)于初學(xué)者絕對(duì)是個(gè)不錯(cuò)的整理,需要的朋友可以收藏下。2010-03-03javascript模塊化是什么及其優(yōu)缺點(diǎn)介紹
模塊化是一種將系統(tǒng)分離成獨(dú)立功能部分的方法,可將系統(tǒng)分割成獨(dú)立的功能部分,嚴(yán)格定義模塊接口、模塊間具有透明性2013-09-09JavaScript中join()方法的使用簡(jiǎn)介
這篇文章主要介紹了JavaScript中join()方法的使用簡(jiǎn)介,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06Javascript學(xué)習(xí)筆記之 函數(shù)篇(三) : 閉包和引用
本系列好久沒(méi)更新了,今天重新拿過(guò)來(lái),繼續(xù)前面未完成的事項(xiàng),本文我們就來(lái)談?wù)凧avascript 中一個(gè)最重要的特性--閉包的使用引用。2014-11-11JavaScript DOM 學(xué)習(xí)第七章 表單的擴(kuò)展
這一章我會(huì)處理一個(gè)簡(jiǎn)單的W3C DOM腳本。他會(huì)幫助我們從一個(gè)新的角度來(lái)看待交互設(shè)計(jì)。2010-02-02