JavaScript(摘自SegmentFault)

一篇博文中我不知道的JavaScript知识

(并不是不会的都记录下来)

  • 事件的委托代理:自己所触发的事件让他的父元素代替执行
  • document ready和document load区别:ready表示文档结构加载完成(不包含图片等非文字媒体文件) onload指页面包涵图片等所有文件在内的所有文件都加载完成。
  • 使用闭包的注意点:1.由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。2.闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。
  • JSONP的工作原理以及跟AJAX的区别:JSONP (JSON with Padding)是一个简单高效的跨域方式,HTML中的script标签可以加载并执行其他域的javascript,于是我们可以通过script标记来动态加载其他域的资源。例如我要从域A的页面pageA加载域B的数据,那么在域B的页面pageB中我以JavaScript的形式声明pageA需要的数据,然后在 pageA中用script标签把pageB加载进来,那么pageB中的脚本就会得以执行。JSONP在此基础上加入了回调函数,pageB加载完之后会执行pageA中定义的函数,所需要的数据会以参数的形式传递给该函数。JSONP易于实现,但是也会存在一些安全隐患,如果第三方的脚本随意地执行,那么它就可以篡改页面内容,截获敏感数据。但是在受信任的双方传递数据,JSONP是非常合适的选择。AJAX是不跨域的,而JSONP是一个是跨域的,还有就是二者接收参数形式不一样!
  • arguments:arguments虽然有一些数组的性质,但其并非真正的数组,只是一个类数组对象。
    其并没有数组的很多方法,不能像真正的数组那样调用.jion(),.concat(),.pop()等方法。
  • use strict以及好处坏处:在代码中出现表达式-“use strict”; 意味着代码按照严格模式解析,这种模式使得Javascript在更严格的条件下运行。好处:
    1.消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
    2.消除代码运行的一些不安全之处,保证代码运行的安全;
    3.提高编译器效率,增加运行速度;

    坏处:
    1.同样的代码,在”严格模式”中,可能会有不一样的运行结果;一些在”正常模式”下可以运行的语句,在”严格模式”下将不能运行。

  • 回调函数:

    1.就是一个函数的调用过程。那么就从理解这个调用过程开始吧。
    函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫回调。

    2.另外种解释:开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。
    通常的做法是,为它们指定回调函数(callback)。即事先规定,一旦它们运行结束,应该调用哪些函数。

    (暂时只看到了第32条)

发表评论

电子邮件地址不会被公开。 必填项已用*标注