欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

Ruffy javascript 学习笔记_基础知识

程序员文章站 2022-04-18 21:48:21
...
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]+
);
--//枚举并打印出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元素上应用的时候的移动了