• 做一些面试题目(JavaScript部分)


    1.js是什么,js和html 的开发如何结合?

     JavaScript 是广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能。

     通过DOM把HTML分析为节点来进行相应的结合开发。

    2. 怎样添加、移除、移动、复制、创建和查找节点?

     appendChlid添加节点;removeChild移除节点;cloneNode复制节点;createElement创建节点;getElementById,getElementsByTagName,getElementsByName查找节点

    3. 怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别?

    4.面向对象编程:b怎么继承a?
    fuction a(){
    }
    var b=a;

    5. 看看下面alert的结果是什么?

    function b(x, y, a) {
    arguments[2] = 10;
    alert(a);
    }
    b(1, 2, 3);

     都是10

    6. 请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象

    var url="http://test.com/index.php?key0=0&key1=1&key2=2";
    function parseQueryString(url)
    {
        
        var str=url.split("?")[1];//取右边的
        var items=str.split("&");
        var obj={};
        var arr;
        for(var i=0;i<items.length;i++)
        {
            
            arr=items[i].split("=");
            obj[arr[0]]=arr[1];
        }
    return obj;
        
    }

    7.ajax是什么?   ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?

    AJAX = Asynchronous JavaScript and XML异步刷新
    AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
    AJAX的交互模型就是AJAX在浏览器端准备了一个执行引擎,一边接收用户提交的需求,一边准备在准备好后台返回的数据。如搜索补全和验证用户名
    同步就是一条线执行完,异步就是各条线执行各自的。
    跨域问题解决的精髓就是用ajax请求一个包含服务器语言的页面,用服务器语言去获取跨域所请求信息,然后返回给请求数据页。
    http://blog.csdn.net/lovingprince/article/details/2954675
    在这里给出了比较详细的三种方法:
    1、服务器 Proxy: A 的页面 JS 需要访问域 B 下的链接获取数据,该方案在域 A 的服务器端建立一个 Proxy 程序 ( 可能是 ASP servlet 等任何服务端程序 ) ,域 A 的页面 JS 直接调用本域下的 Proxy 程序, proxy 程序负责将请求发送给域 B 下的链接并获取到数据,最后再通过 Proxy 将数据返回给页面 JS 使用。
    2、Script 标签:域 A 页面 http://Jipiao.taobao.com/test.htm 的 head 中写一个空的 Script 标签
    <html>   
    <head>   
    <mce:script id=”remoteScript” type=”text/javascript” src="””" mce_src="””" />
     </head>   
     <body>   
    <script type=”text/javascript” >   
          
          Var remoteScript=document.getElementById(‘remoteScript’);   
          
          remoteScript.src=” www.baidu.com/xxxxx.do”;// 域 B 的链接   
          
          alert(remote.test);// 使用域 B 返回的 JSON 数据   
          
          alert(f[0]);   
        </mce:script>   
          
          </body>   
     </html>   

    注意:这种方案要求域 B 返回的数据必须是合法的 JSON 格式或者如 JS 文件的格式。

    3、隐藏 iframe: 即域 A jipiao.taobao.com/yyyy.htm 的页面上写一个隐藏的 iframe

    这里列举的三种方案各有优缺点:

        Proxy 方案优点是可以适用用于几乎所有的跨域访问,而且只需要要一个域中进行开发,另一个域可以提供任何类型格式的数据。缺点是这种方案经过了中间 Proxy ,所以延迟可能稍微大一点,并且会加重本域服务器的负荷,开发工作量也稍微大一点。

        Script 标签的方案可以说是非常简单的,不用几行代码就搞定了事,不过它对返回的数据格式要求有点严格,只能是 Json 格式数据 , 如果是其他格式的数据,那么这种方法就无能为力了。

        隐藏 iframe 方式也很简单,它可以处理任何返回的数据格式,但它只适用在具有同一个父域下的跨域请求上,并且要求其他域得配合开发,即需要设置 document.domain

    8.什么是闭包?
     子函数可以使用父函数中的局部变量,这种行为就叫做闭包。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

    使用闭包的注意点

    1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。

    2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。

    9.下面这个ul,如何点击每一列的时候alert其index?
    <ul id=”test”><li>这是第一条</li><li>这是第二条</li><li>这是第三条</li></ul>
  • 相关阅读:
    win10没有新建文件夹
    js暂停的函数
    Mini ORM——PetaPoco笔记
    阻止网页内部滚动条mousewheel事件冒泡
    setTimeout调用带参数的函数的方法
    spring入门--Spring框架底层原理
    spring入门——applicationContext与BeanFactory的区别
    mybatis的Sql语句打印
    Sql语句中IN和exists的区别及应用
    Jenkins学习
  • 原文地址:https://www.cnblogs.com/pilee/p/3561946.html
Copyright © 2020-2023  润新知