zoukankan      html  css  js  c++  java
  • 以面试为提纲的前端知识

    目录

    1.闭包是什么?有什么用途?使用的时候应该注意什么?

    2.n的阶乘怎么实现?

    3.get 和post 有什么区别?

    4.如何实现自动刷新和自动跳转?

    5.append和append to的区别?

    6.css中隐藏不删除的方法?

    7.ajax跨域如何解决?

    8.继承的五种方式是什么?

    9.请简述浏览器渲染过程。

    10.清除浮动的方式。

    11.自适应和响应式的区别是什么?


    1.闭包是什么?有什么用途?使用的时候应该注意什么?(此问题总结自阮一峰老师的学习JavaScript闭包

      答:闭包就是能够读取其他函数内部变量的函数。

             在需要将一个变量存储起来的时候就需要用到闭包。

             使用时应注意两点:第一,耗内存;第二,不可轻易改变父函数内部变量的值。

             举例:

     1 function f1(){
     2     var a = 666;
     3     aAdd = function (){a+=1}
     4     function f2(){
     5         console.log(a);
     6     }
     7     return f2;
     8 }
     9 var result = f1();
    10 result(); //666
    11 aAdd();aAdd();aAdd();
    12 result(); //667

    2.n的阶乘怎么实现?

    1 //n!
    2 function fun(n){
    3     if(n < 2){
    4         return 1;
    5     }else{
    6         return n * fun(n - 1);
    7     }
    8 }
    9 console.log(fun(3)); //6

    3.get 和post 有什么区别?

      答:来自w3c的直接对比

         

    4.如何实现自动刷新和自动跳转?

       答:

    <meta http-equiv="refresh" content="2"> <!--2s后自动刷新-->
    <meta http-equiv="refresh" content="2; url=http://www.cnblogs.com/qingruozhu/"> <!--2s后自动跳转到我的博客主页-->

    5.append和append to的区别?

      答:参考百度经验

             append(content)方法

             方法作用:向每个匹配的元素内部追加内容。

             参数介绍:content (<Content>): 要追加到目标中的内容。

             用法示例:HTML代码为  <p> I come from </p><p>I love </p> 

             向所有p标签中追加一个单词china,则写法为  $("p").append("china"); 

             结果为:   <p> I come from china</p><p>I love china</p> 

              appendTo(expr)方法

             方法作用:把所有匹配的元素追加到指定的元素集合中。

             参数介绍:expr (String): 用于匹配元素的jQuery表达式。

             用法示例:HTML代码为 <b>I love china </b><p></p> 

             把标签b追加到p元素中,写法为 $("b").appendTo("p"); 

             结果为: <p><b>I love china </b></p> 

             使用appendTo这个方法是颠倒了常规的$(A).append(B)的操作,即不是把B追加到A中,而是把A追加到B中。

    6.css中隐藏不删除的方法?

      答:visibility: hidden;

    7.ajax跨域如何解决?

      答:参考悟寰轩-叶秋的博客

             一个专门用来解决跨域问题的jQuery插件-jquery-jsonp

             比较一下json与jsonp格式的区别:

    json格式:
    {
        "message":"获取成功",
        "state":"1",
        "result":{"name":"工作组1","id":1,"description":"11"}
    }
    jsonp格式:
    callback({
        "message":"获取成功",
        "state":"1",
        "result":{"name":"工作组1","id":1,"description":"11"}
    })

             了解了jsonp之后,使用jsonp插件也就比较简单了,server端代码无需任何改动。

             来看一下如何使用jquery-jsonp插件解决跨域问题吧。

     1 var url="http://localhost:8080/WorkGroupManagment/open/getGroupById"+"?id=1&callback=?";
     2 $.jsonp({
     3   "url": url,
     4   "success": function(data) {
     5     $("#current-group").text("当前工作组:"+data.result.name);
     6   },
     7   "error": function(d,msg) {
     8     alert("Could not find user "+msg);
     9   }
    10 });

    8.继承的五种方式是什么?

    答:参考阮一峰老师的Javascript面向对象编程(二):构造函数的继承

    9.请简述浏览器渲染过程。

    答:1.解析HTML文件,创建DOM树。2.解析CSS。3.将CSS与DOM合并,构建渲染树(renderingtree)。4.布局和绘制,重绘(repaint)和重排(reflow)。(参见浅析浏览器渲染页面过程

    10.清除浮动的方式。

    答:1.父级元素添加overflow:hidden属性。 2.浮动元素下方添加标签并添加clear:both属性。3.伪元素:after。4.双伪元素。(详见关于清除浮动的四种方法

    11.自适应和响应式的区别是什么?

    答:自适应的体验http://m.ctrip.com/html5/  

    响应式的体验 http://segmentfault.com/

    (详见响应式和自适应的区别

    12.给个字符串 str = abcbaa,得出{a:3,b:2,c:1}。如何实现?

    答:

     1 let stri = "abcbaa";
     2 let obj = {};
     3 let arri = stri.split("");
     4 for(let i = 0; i < arri.length;i++){
     5     if(!obj[arri[i]]){
     6         obj[arri[i]] = 1;
     7     }else {
     8         obj[arri[i]]++;
     9     }
    10 }
    11 console.log(obj);
  • 相关阅读:
    异步编程:利用委托实现的.NET历史上第一个异步编程模型
    C#:委托
    C#:方法参数之--扩展方法
    py实现ftp
    sftp接口机上传脚本
    通过telnet自动下载cfg配置文件
    下载bat脚本
    solairs11与solairs10 ftp服务的区别
    windows中ftp下载脚本(bat+vb)
    windows2008r2防火墙设置一例
  • 原文地址:https://www.cnblogs.com/qingruozhu/p/7341766.html
Copyright © 2011-2022 走看看