zoukankan      html  css  js  c++  java
  • 来一套 常规笔试题

    1.css盒模型

      

    2.css选择器有哪些?那些属性可以继承?优先级算法如何计算?css3新增伪类有哪些?

    选择器  权重
    通配符选择器 0
    标签选择器 、 为元素选择器 10
    class选择器、伪类选择器、属性选择器  100
    id选择器   1000
    行间样式 10000
    @import  无穷大

     

    .wrapper,.box{}  --->   并列选择器

    .wrapper>.box{}  --->直接子元素选择器

    .wrapper .box{}  ---->后代选择器

    可以继承的属性  color、font-size等字体属性  text-indent、text-align、line-height等文本属性     visibility cursor等

    样式的  优先级   就是选择器的权重相加   显示权重大的 样式

    新增伪类

      p:first-of-type  当前层p标签的第一个

      p:last-of-type  当前层p标签的最后一个

      p:only-of-type  所有p标签中    作为唯一子元素的p

      div:nth-child(n)  div子元素中的第n个

      div:last-child   div的最后一个子元素

      p:not      除了p的其他所有标签

      input:enable   所有启用的input

      input:disable    所有禁用了的input

      input:checked    所有被选中的  input标签

      :root        根元素html

      ::selection    用户选中的部分

      

    3.用css实现  左右固定,中间自适应的三栏布局

    CSS

      *{
          margin: 0;
          padding: 0;
        }
        .wrapper{
          padding: 0 200px;
        }
        .center,.left,.right{
          height: 200px;
          float: left;      
        }
        .left,.right{
          width: 200px;
          background: pink;
          position: relative;
        }
        .center{
          background: blue;
          width: 100%;
        }
        .left{
          margin-left: -100%;
          left: -200px;
        }
        .right{
          margin-left: -200px;
          right: -200px;
        }

    html

      <div class="wrapper">
          <div class="center"></div>
          <div class="left"></div>
          <div class="right"></div>    
      </div>

    4.说明浮动产生的效果,至少列举三种清除浮动的方法

      元素浮动之后,就脱离当前同一层的文本流,浮动元素根据设置不同的浮动方向,浮动到父元素的边界,或者其他浮动的元素

      清除浮动的方法

        1.最简洁的方法

          在需要清除浮动的元素后面添加一个  div   并设置 css      clear:both

        2.給父级设置 overfloat:hidden

        3.常规方法

    .clearFloat:after{
      display:block;
      clear:both;
      content:'';
      visibility:hidden;
      height:0;    
    }
    .clearFloat{
     zoom:1;  //兼容IE6
    }

    5.列出display的值,说明他们的作用。positioin的值,relative和absolte定位原点是

    display  作用
    block  将元素变成块级元素
    inline    将元素变成行内元素
    none  使元素不存在
    inline-block  将元素变成行内块元素
    inherit  继承父级的display
    table  相当于 <table></table>
    table-row  相当于<tr></tr>
    table-cell  相当于<td></td>或者<dd></dd>
    list-item  相当于 列表元素

    position 有  absolute 、 relative 、fixed 、 inherit

      relative   是相对于自身原本在文本流中的位置进行定位

      absolute  是根据最近有定位的父级进行定位的

    6.前端页面有哪三层结构? 分别是什么?作用是什么?

      结构层   html  页面的结构布局

      样式层  css    前端页面的样式

      行为层  js     页面交互

    7.css中可以通过哪些属性定义使DOM元素不显示在浏览器可视范围内

      postion 的各种定位 可以将元素  移出屏幕

      visibility:hidden  可以设置dom的透明度 为透明的,但是还占据原来的位置  还存在

      opacity:0      设置Dom元素的不透明度  为0    即使DOM透明     与Visibility:hidden效果相同

      display:none    使元素消失,不存在与文档流中

    8.超链接访问后hover样式就不出现的问题是什么?如何解决?

      a标签的4个状态  

      link      默认状态

      hover     鼠标悬停

      active     点击的瞬间

      visited     访问过的

    。。。。上网上查的   试了好久  并没有试出来  hover 不好使的情况

    9.rgba()和opacity的透明效果有什么不同

      rgba()   是设置在 dom元素背景颜色上的  不会影响子元素

      opacity  设置的透明度是相对  dom元素整体的   会继承给子元素

    10.CSS中可以让文字在垂直和水平方向上重叠的两个属性是什么?

      我以为是   line-height    和   text-indent

    11.display:none 与 visilibity:hidden的区别是什么

      display:none;是   是元素消失于文档流中,不存在于Dom结构中

      visilibity:hidden  是设置的  元素的  透明度  为透明    而元素仍然存在于 DOM结构中  任然占据原来的位置

    12.知道css有个content属性么?有什么作用?如何应用?

      可以配合为元素 :after/:befor     设置为元素里的内容

    a:after{content:attr('href')}

    13.编写函数,实现冒泡排序

        var arr = [12,123,345,21,88];
    
        function sort (arr){
          var cut = 0,
              len = arr.length - 1;
          for(var i = 0; i < len; i++) {
            for(j = i; j < len; j++){
              if(arr[j] > arr[j+1]) {
                cut = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = cut;
              }
            }
          }
          return(arr)
        }
        var after = sort(arr);
        console.log(after);

    14.谈谈你对闭包的理解,写一个简单的闭包实例

       由于js函数作用域,在函数外部无法访问函数内部的东西,通过在函数内添加一个相对于这个函数是子函数,也就是可以读取这个函数的内容的函数,return这个函数   就可以在最外层函数外面访问函数内的内容了  

       形象的解释 闭包就是  内部函数和外部函数的一道桥梁

    function f1(){
      var n = 666;
      function f2() {
        console.log(n);
      }
    }
    f1()();    //666

     15.闭包与定时器混合考验

    //修改如下代码,让循环输出结果依次为1,2,3,4,5
    
    for(var i=1; i<=5; i++) {
      setTimeout(function timer(){
        console.log(i);
      },i*1000)
    }

      修正代码

        for(var i = 1; i <=5; i++) {
          (function(j){
            setTimeout(timer = () => {
              console.log(j);
            }, j*1000);
          })(i)
        }

    16.扁平化多维数组arr=[1,3,4,5[6,[0,1,5],9],[3,5,[1,5]],[5]]  ;

      扁平化就是将多维数组编程一维的

      

      方法一  遍历数组

    function bianPingHua(arr){
          var newArr = [];
          arr.forEach(
            function(item){
              if(Array.isArray(item)){
                newArr = newArr.concat(bianPingHua(item));//concat是将item的每一位 拼接到newArr后面 且不改变newArr 所以要用赋值
          }
    else{ newArr.push(item);//在数组最后添加一位 这里如果是一个数组,任然相当于 newArry的一位 } } ); return newArr; } var oEnd = bianPingHua(arr); console.log(oEnd);

      方法二  toString与split

    var newArr = arr.toString().split(',');
        console.log(newArr);

    17.谈谈你对this指向的理解

      普通对象、计时器、定时器的this        指向window

      对象中的 方法中的this  指向的就是这个对象

      绑定事件执行时this指向dom

    改变this指向的方法  call、apply 、bind

        function Foo () { 
        }
        function son (){
          console.log(this);
        }
        son.call(Foo);
        son.apply(Foo);  
        son.bind(Foo)();

    18.说说你对面向对象的理解,然后写一段js代码示例

        

        一、继承

          一个类继承另一个类,可以实现代码复用,减少冗余。

        二、封装

          将函数封装起来,隐藏内部信息,用户无需知道对象内部的方法实现的过程,但可以使用对象的方法

        三、多态

          同一函数,可以适应多种传参

      

    19.javascript的typeof返回类型有哪些

      number 、string 、 function、 boolean、 undefind、        object

    20.数组方法 pop(),push(),unshift(),shift()

      这四种方法都改变原数组

      pop()在最后一位删除一位  传参无效

      push()在最后一位添加几位  可以用  ,  传多个参数   返回值是  length

      unshift()在第一位添加几位  也可以用 , 传多个参数  返回值是length

      shift() 在第一位删除一位  传参无效

     21.字符串包装类方法 substr()、substring()、slice()

      sbustr()    传两个参数  截取的起始位置,截取的长度

      sbustring()   传两个参数   较小的为起始位置, 较大的为截止位置    ,  (留头去尾)

      slice()      传一个参数,就是从第几位向后截取  若有负数就从字符串的尾部向前数 

              传两个参数   前始后终  截取数组

      

      

          

  • 相关阅读:
    OpenSeadragon 基础显示图片 学习记录 (一)
    数组篇【第一集】
    css如何让页面上的文字不能选中??
    toggleClass()原来是这么用的
    vue-gemini-scrollbar(vue组件-自定义滚动条)
    css绝对底部的实现方法
    Select下拉框需求
    iview之Model对话框封装
    Java基础(一)
    vue-draggable-resizable插件的API记录
  • 原文地址:https://www.cnblogs.com/96weibin/p/8652939.html
Copyright © 2011-2022 走看看