Ruffy javascript 学习笔记
作者:涵涵 | 2021-08-11 00:24:30
Ruffyjavascript学习笔记
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 方法.