• html5随笔


    1.闭包
            闭包指有权访问另一个函数作用域中变量的函数,创建闭包最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用域链,将函数内部的变量和方法传递到外部。
            闭包的特性:
                    1>.函数内再嵌套函数
                    2>.内部函数可以引用外层的参数和变量
                    3>.参数和变量不会被垃圾回收机制回收
    2.浏览器事件模型,如何获得资源dom节点?
          浏览器存在三种事件模型:
                    1>.原始事件模型(被所有浏览器所支持)
                    2>.DOM2事件模型(除了IE以外的所有主流浏览器支持)
                    3>.IE事件模型
            浏览器事件分为三个阶段:
                    1>.事件捕获阶段
                    2>.目标阶段
                    3>.事件冒泡阶段
            DOM节点获取方法:
                    1>.通过id属性获取document.getElementById()
                    2>.通过name属性获取document.getElementsByName()
                    3>.通过标签名获取document.getElementsByTagName()
                    4>.通过class属性获取document.getElementsByClassName()
                    5>.原生js中的querySelector和querySelectorAll方法也同样可以获取到相应的dom节点,相似于jquery,但比jquery更快
    3.简述ECMAscript6的新特性
                    1>.增加块作用域
                    2>.增加let、const
                    3>.解构赋值
                    4>.函数参数扩展
                    5>.增加class类的支持
                    6>.增加箭头函数
                    7>.增加模块和模块加载
                    8>.math,number,string,array,object增加新的API
    4.Apply和call方法的异同
                相同点:
                            两个方法产生的作用是完全一样的,第一个参数都是对象。
                   不同点:
                            call( )方法参数将依次传递给借用的方法作参数,即fn.call(thisobj,arg1,arg2,arg3...argn),有n个参数
                            apply( )方法第一个参数是对象,第二个参数是数组fn.apply(thisobj,arg),此处的arg是一个数组,只有两个参数。
    5.在JavaScript中什么是伪数组,如何将伪数组转化为标准数组
                    伪数组符合的条件:
                            1>.具有length属性
                            2>.按索引方式存储数据
                            3>.不具有数组的push,pop等方法
                    伪数组:
                            无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push、pop等方法,但仍可以对真正数组遍历方法来遍历它们。典型的是函数的argument参数,还有像调用document.getElementByTagName,document.childNodes之类的,它们返回的NodeList对象属于伪数组。
                    伪数组转化为Array对象
                            function makeArray(c){
                                    try{
                                            returm Array.prototype.slice.call(c);
                                    }catch(e){
                                            var ret=[ ],i,len=c.length;
                                            for(i=0;i<len;i++){
                                                    ret[i]=(c[i]);
                                            }
                                            return ret;
                                    }
                            }
     
  • 相关阅读:
    Splay
    AVL
    Everything 搜索文件
    佛祖保佑 永无Bug
    火绒注入
    STL vector list map 用法
    漏洞挖掘 向目标进程中植入代码
    漏洞挖掘 利用漏洞控制程序执行流程
    漏洞挖掘 堆栈的溢出实践
    追码CM破解笔记
  • 原文地址:https://www.cnblogs.com/weiyuxi/p/7768861.html
Copyright © 2020-2023  润新知