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选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

  • 相关阅读:
    迷宫城堡 HDU
    Strategic game POJ
    Warm up HDU
    Network POJ
    Delphi Tstream 流
    Delphi 获得文件大小的五种方法
    Delphi Messagebox 介绍
    delphi idftp
    Delphi 操作Excel
    Delphi 打印对象 Tprinter 常用属性、方法、函数、打印示例
  • 原文地址:https://www.cnblogs.com/ss977/p/9219340.html
Copyright © 2011-2022 走看看