JsCss笔记

1.  &= 不应该在 Bool 型变量中使用。

 a &= b  对于Js来说是:  a = a & b ;  a 本来是 bool , &= 之后就变成了 Int。

2. javascript 中,Dom的宽高值,在 父容器隐藏时 为0

    如果父容器呈隐藏状态,则父容器里的元素 offsetHeight 为 0 , $.fn.height() 也为0

3. Css

background 后面的参数,太混乱了。涵义:  http://www.w3school.com.cn/cssref/pr_background.asp

4. JavaScript 方法应该处理所有类型参数

没有类型定义及检查,所以 $.trim( obj )  obj 可以是任何类型, 如: int 时,就会出错。 在 $.trim 方法应该先检查是否是  string 类型,非string 类型, 返回值即可。

5. 一道Js小题

var o = {} ;
o["abc"] = {msg:"OK"};

var b = o["abc"] ;

b = {};

o["abc"]   的值是多少? 

 答案:与C#的理解不同,  上面会输出 {msg:"OK"}

6.jQuery的帮助文档中没有 click 的参数定义

事实上, 它只有一个参数 event . 可以用来阻止事件冒泡.

7. Div + CSS 代表主流,但并不代码所有.

在 查询框布局上,简单易操作.依然有它的优势.

8. 问题:  如何在对象的 click 执行之前,和 完成之后进行拦截?

此问题为了完成 单次点击后禁用按钮,  点击完成后, 启用按钮. 或Ajax返回后,启用按钮.

9. Chrome 的 margin 不会引起重排 reflow. 而其它浏览器可以.  

如何显式重排?  http://varnow.org/?p=232

      另外, Chrome 下 发送 XmlHttpRequest , 该对象有两个, 在发送前, 是 XMLHttpRequestProgressEvent , 里面的 target 才是 XmlHttpRequestEvent .!!! (之前以为是Chrome 的Bug.) 它的 type 是 d.type == "readystatechange" , 可用此属性过滤掉.

10. 浏览器Bug

IE的Bug:

测试在使用 QT 进行自动化测试时. 发现每次请求的页面都是第一次请求的页面, 但是每次却都执行了服务器端方法. 奇怪的发现了如下流程:

     客户端发出 Http  Get ->  服务器端执行 并返回Html  -> IE 接收后,  使用第一次请求的缓存页面. 

background-size 的Bug:

background-size 写到 background属性之后。

11. Js 中的 Slice 函数,帮助是错误的.

如:http://www.webdm.cn/onlinebook/javascript/html/jsmthslicestring.htm

    "12345".slice(0) ;   返回 12345

    "12345".slice(0,-1); 返回 1234

返回的是不同的结果 . 帮助文档的说法是错误的.(帮助文档说返回相同的结果.)

substr(start,[length]) , substring(start,[end]); 参见: http://www.cnblogs.com/wz327/archive/2010/04/11/1709433.html

12. jQuery的live 方法

live 方法不支持blur,focus,mouseenter,mouseleave,change,submit , 用 liveQuery 插件。介绍:址:http://hi.baidu.com/fishwodi/blog/item/a22861a66b36e3fc9052eee2.html

后记:  在使用前,需要检测一下是否有内存漏洞啥的,忘的它有额外的执行代码。

13. 有些元素是不能自闭合的

如果自闭合,会出现未知的,且莫名的错误.如 Div,Script ,等. 一定要有结束标记.

14. 尽量避免  !important

如果需要升级Css的优先级,可以比较完整的路径:

html .inlineChild > *{

}

15.工具集合

http://www.wufangbo.com/web-development-tools/

原文地址:https://www.cnblogs.com/newsea/p/4316686.html