知识点总结

1. 连用两个非运算符是将变量值转换成布尔值的快速方法

2. offsetParent 获取元素页面上有定位的父元素

3. 获取event对象(兼容性写法): var oEvent = e || event

4. 按ctrl+enter发送消息:

    if(oEvent.ctrlKey && oEvent.keyCode==13){
...

    }

5. 取消冒泡:oEvent.cancelBubble=true

6. 可视区鼠标位置:clientX ,clientY

7. 但凡被setInterval调用的就是window

8. call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向

9. IE谷歌中向上滚是120,向下滚是-120;

   火狐向上滚上:-3;下:3;

10. toFixed();返回的是具有指定位数小数的数字的字符串表示, 该方法能表示具有 0 到 20 位小数的数字,超过这个范围的值会引发错误

11. toString();括号内是进制数,省略则是十进制,可把一个 Number 对象转换为一个字符串,并返回结果

12. 正则中修订符g之所以起作用是因为lastIndex属性会随着改变

13. 操作iframe中的元素,contentWindow是关键(谷歌需在服务器环境下测试)
    obj.contentWindow.document.getElementById()  各浏览器兼容

    obj.contentDocument.getElementById()    IE6,7不兼容

14. 跨域常用方法:

    1).document.domain设置为同源

    2).服务器代理:XMLHTTPRequest代理文件

    3).script标签:jsonp,script标签不存在跨域问题

    4).location.hash

    5).window.name

    6).flah

    7).html5  postMessage

15. firebug常用:
    console.log();
    console.warn();警告信息
    console.error();错误信息
    console.group(‘第一组’); Console.groupEnd();分组
    console.dir(),显示信息
    console.dirxml(obj);显示当前元素代码结构
    console.assert();断言
    console.trace();调用的顺序
    console.time();console.timeEnd();显示运行时间,括号中必须有信息

    console.profile();console.profileEnd();执行性能

16. 事件源:不管在哪个事件中,只要你操作的那个元素就是事件源。nodeName属性返回事件源的标签名
    ie:window.event .srcElement   标准:event.target
兼容性写法:

var target = 事件对象.srcElement || 事件对象.target; 

17. cloneNode();复制节点,参数为true时,同时复制子节点,false时,只复制当前节点

18. 如果数组中的某一项值是null或undefined,那么该值在join()、toString()、valueOf()和toLocaleString()方法中返回的结果中以空字符串表示 

19. arguments的callee属性,该属性是一个指针,指向拥有这个arguments对象的函数,例如阶乘函数里面内部调用的函数可以替换为arguments.callee

20. 合并文本节点:normalize()

分割文本节点:splitText();(括号里是数字)

21. console.log:

    console.log('保剑锋从磨砺出\n%c梅花香自苦寒来',"color:red;font-size:41px;font-weight:bold;background:green");

    console.log("%c\n       ","width:100px;font-size:41px;background:url('http://cdn.iknow.bdimg.com/static/common/pkg/module_zed9cd9fd.png') no-repeat -135px -1px");

    console.log('%c想和我们共同打造世界最大中文互动问答平台吗?\n想让自己的成就在亿万用户面前展现吗?想让世界看得你的光芒吗?\n加入我们,在这里不仅是工作,投入你的时间和热情,滴滴汗水终会汇聚成不平凡的成果。\n期待你的加盟。http://zhidao.baidu.com/misc/more/joinus',"line-height:40px;");

22. 把arguments对象转换成一个真正的数组:

    var args = Array.prototype.slice.call(arguments); 

23. Event Loop:

异步执行的运行机制:
1). 所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
2). 主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
3). 一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。

主线程不断重复上面的第三步,主线程从"任务队列"中读取事件,这个过程是循环不断的,所以整个的这种运行机制又称为Event Loop(事件循环)

HTML5标准规定了setTimeout()的第二个参数的最小值(最短间隔),不得低于4毫秒,如果低于这个值,就会自动增加。在此之前,老版本的浏览器都将最短间隔设为10毫秒。另外,对于那些DOM的变动(尤其是涉及页面重新渲染的部分),通常不会立即执行,而是每16毫秒执行一次。这时使用requestAnimationFrame()的效果要好于setTimeout()。

需要注意的是,setTimeout()只是将事件插入了"任务队列",必须等到当前代码(执行栈)执行完,主线程才会去执行它指定的回调函数

24. js之所以阻塞,是由于浏览器为了防止出现JS修改DOM树,需要重新构建DOM树的情况,所以就会阻塞其他的下载和呈现,如果js脚本(行内或者外部)之前有css样式文件,则js将等到css渲染完成再执行,css之后的js将按照顺序执行

25. css不会阻塞DOM树的解析;css加载会阻塞DOM树渲染;css加载会阻塞后面的js语句的执行

26. HTTPS一般使用的加密与HASH算法如下:
    非对称加密算法:RSA,DSA/DSS
    对称加密算法:AES,RC4,3DES

    HASH算法:MD5,SHA1,SHA256

27. MVVM的设计思想:关注Model的变化,让MVVM框架去自动更新DOM的状态,从而把开发者从操作DOM的繁琐步骤中解脱出来

28. 元素水平居中的方法:

    a).  margin和width实现水平居中

    b).  inline-block配合text-align 父元素:text-align:center;子元素:inline-block

  c). float配合position:relative实现水平居中的方法:父元素:float:left;position:relative;left:50%;子元素:position:relative;right:50%;

    d).  绝对定位实现水平居中:父元素:position:absolute;left:50%;子元素:position:relative;right:50%;

    e). css3 父元素:display: box; box-orient: horizontal; box-pack: center;

29. 元素垂直居中:

a). 父元素:display: flex;//flex布局  justify-content: center;//水平居中  align-items: center;//垂直居中

29. Array原型上的slice可以把arguments类数组变成真正的数组: var arr = Array.prototype.slice.call(arguments)

30. 闭包是指有权访问另一个函数作用域中的变量的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值