zoukankan      html  css  js  c++  java
  • 前端面试总结下~

    1、简述下src和href的区别?

    src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。
    src:指向的内容会嵌入到文档中当前标签的所在位置,在请求src资源时会将指向的资源下载并应用到文档内
    href:指向网络资源的所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接

    2、什么是CSS Hack?

    css Hack是 通过在css样式中加入一些特殊符号,已达到被不同浏览器识别并应用到不同css样式的目的。

    .bdw{300px;_200px;} _width只有ie6能识别,所以其他浏览器识别width,ie6会执行_200px;

    3、简述下你了解到的Web攻击技术?

    sql入注:把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意sql命令。

    XSS:它允许恶意web用户将代码植入到提供给其它用户使用的页面中(在论坛博客中加入恶意链接,当用户点击链接时,就会把隐私信息发送到攻击者的电脑,导致被窃取信息)

    4、浏览器是如何渲染界面的?

    DNS域名解析-建立TCP连接-发起http请求-接受响应结果-浏览器解析html-浏览器布局渲染

    附带浏览器中输入url发生了什么?

    解析域名-建立tcp连接-发起http请求-接收响应结果-浏览器解析html-浏览器布局渲染

    400:Bad Request 请求报文中存在语法错误

    5、讲述下对MVC、MVVM的理解?

    MVC是一种架构模式,M表示Model,V表示视图View,C表示控制器Controller

    MVVM是一种设计思想,M表示Model,V表示视图View,VM表示数据与模型(区别MVC中,C是用于跳转至哪个页面,而VM只是将数据进行转换或者封装)

    6、写一个function,清除字符串前后的空格  兼容所有浏览器

    function myTrim(x) {
        return x.replace(/^s+|s+$/gm,'');
    }
    
    function myFunction() {
        var str = myTrim("        Hello World11!        ");
        console.log(str);
    }
    
    
    myFunction();
    
    
    Jquery:
    trim()

    7、简述同步和异步的区别?

    同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;

    异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有等主线程任务执行完毕,"任务队列"开始通知主线程,请求执行任务,该任务才会进入主线程执行。

    8、怎样添加 创建 移除、赋值、移动、查找节点?

    var para=document.createElement("p"); //创建新的 <p> 元素
    var node=document.createTextNode("这是新段落。"); //创建了一个文本节点
    para.appendChild(node); //向 <p> 元素追加这个文本节点
    
    var element=document.getElementById("div1");//向一个已有的元素追加这个新元素
    element.appendChild(para); //向这个已有的元素追加新元素
    2)添加、移除、替换、之前插入、之后插入、复制
    
          appendChild()
    
          removeChild()
    
          replaceChild()
    
          insertBefore()
    
          insertAfter()
    
          cloneNode() 
    
    (3)查找
    
          document.getElementsByTagName("")    //通过标签名称
    
          document.getElementsByName("")    //通过元素的Name属性的值
    
          document.getElementById("")    //通过元素Id,唯一性
    
          document.getElementsByClassName("");  //通过类查找
    
          document.querySelector("")

    9、清除数组中重复的元素?

    function unique(arr){
            var result = [];
            for(var i=0;i<arr.length;i++){
                if(result.indexOf(arr[i])==-1){
                    result.push(arr[i])
                }
            }
            return result;
        }

    10、说说px、em、rem和各自的使用场景?

    px就是css中最基本的长度单位,

    em是相对单位 ,相对的基准点是浏览器字体大小(若浏览器默认字体大小是16px,那1em = 16px), 用来解决,鼠标缩放浏览器大小导致的界面错乱,字体大小相对于父元素 html{font-size: 62.5%}  16*62.5% = 10px

    rem 也是相对单位,只相对<html>计算,这就是说只要在根节点设定好参考值,那么全篇的1rem都相等

    rem用来响应式开发

    11、$(document).find(“div>p”).html();语句的作用?  

    整个界面搜索所有div后面的所有p标签下的html代码

    element element 选取div内部包含的所有p

    12、ajax beforeSend()  async:true  dataType

    beforeSend方法用于在向服务器发送请求前添加一些处理函数,

    常见的一种效果,在用ajax请求时,没有返回前会出现前出现一个转动的loading小图标或者“内容加载中..”,用来告知用户正在请求数据。这个就可以用beforeSend方法来实现。

    dataType:服务器返回的数据类型

     async:true 是否异步,默认异步

    13、给string添加一个方法,然后将每个字符之间添加空格返回

    var str = "hello world";
    var str1 = str.split("").join(" ");
        console.log(str1);

    14、请简述promise的编程模式,和应用场景

    基于上面的应用场景发现promise可以有三种状态,分别是pedding 、Fulfilled、 Rejected

    Pending Promise对象实例创建时候的初始状态
    Fulfilled 可以理解为成功的状态
    Rejected可以理解为失败的状态

    所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息

    var promise = new Promise(function(resolve, reject) {
      // ... some code
      if (/* 异步操作成功 */){
        resolve(value);
      } else {
        reject(error);
      }
    });
    

    15、display:none;和visible:hidden;区别

    display:none ---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就是看不见也摸不到。

    visible:hidden--- 使对象在网页上不可见,但该对象在网页上所占的空间没有改变,通俗来说就是看不见但摸得到。

    16、描述下间歇调用和超时调用?

    超时调用——setTimeOut

    间歇调用——setInterval

    • 按照指定的时间重复执行代码,直至间歇调用被取消或者页面被卸载。接受参数与setTimeOut相同。
    • var num = 0;
          var max = 10;
          var intervalId = null;
      
          function incrementNumber() {
              num++;
              if (num == max) {
                  clearInterval(intervalId);
                  alert("Done");
              }
          }
          intervalId = setInterval(incrementNumber, 500);

    17、兼容模式和怪异模式下的盒模型的区别?

    • 在标准模式下,一个块的总宽度= width + margin(左右) + padding(左右) + border(左右)

    • 在怪异模式下,一个块的总宽度= width + margin(左右)(即width已经包含了padding和border值)

    18、选择器有哪些?优先级怎样?

          1.标签选择器(如:body,div,p,ul,li)

      2.类选择器(如:class="head",class="head_logo")

      3.ID选择器(如:id="name",id="name_txt")

      4.全局选择器(如:*号)

      5.组合选择器(如:.head .head_logo,注意两选择器用空格键分开)

      6.后代选择器 (如:#head .nav ul li 从父集到子孙集的选择器)

      7.群组选择器 div,span,img {color:Red} 即具有相同样式的标签分组显示

      8.继承选择器(如:div p,注意两选择器用空格键分开)

      9.伪类选择器(如:就是链接样式,a元素的伪类,4种不同的状态:link、visited、active、hover。)

      10.字符串匹配的属性选择符(^ $ *三种,分别对应开始、结尾、包含)

      11.子选择器 (如:div>p ,带大于号>)

      12.CSS 相邻兄弟选择器器 (如:h1+p,带加号+)

    !important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

  • 相关阅读:
    布局重用 include merge ViewStub
    AS 常用插件 MD
    AS 2.0新功能 Instant Run
    AS .ignore插件 忽略文件
    AS Gradle构建工具与Android plugin插件【大全】
    如何开通www国际域名个人网站
    倒计时实现方案总结 Timer Handler
    AS 进行单元测试
    RxJava 设计理念 观察者模式 Observable lambdas MD
    retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
  • 原文地址:https://www.cnblogs.com/ss977/p/9219340.html
Copyright © 2011-2022 走看看