zoukankan      html  css  js  c++  java
  • 2019面试题

    HTML

    1.浏览器兼容问题

    • IE6图片有蓝色边框,有背景 解决方案:border:0; background: rgba(0,0,0,0)
    • 盒子模型 html{box-sizing:border-box}
    • 每个浏览器边距和间距显示不一样  解决方案*{margin:0;padding:0}
    • 一个块级元素float,再使用横向margin会有双倍边距,margin:0,0,0,100px,实际会有200px,解决方案:加样式{dispay:inline}
    • IE6,IE7,其他浏览器样式hacker设置使用,   解决方案:div{height:200px; _height:100px; *height:50px}    IE6识别 _ * ,IE7识别 *
    • 设置较小高度的标签,IE6,IE7,遨游会超出固定的高度     解决方案overflow:hidden

    CSS

    1. css3新特性

    答:

    • 选择器      id选择器,class选择器,标签选择器
    • 圆角和背景
    • 渐变
    • 旋转
    • 动画

    2. 写一段动画代码

    animation:myDiv 5s infinite

    @keyframes myDiv{ 

      from{left:0px}

      to{left: 200px}

    }

    3. 一个div如何水平垂直居中

    答:有很多种方法,面试官最想听到的答案是transfrom,display:flex也可以实现,但因display对于IE兼容性的问题,所以选择position: absolte定位

    • position: absolte    top: 50%   left:50%   bottom:0    right:0    transfrom: translate(-50%,-50%)
    • display: flex  justify-content: center    align-item:center

    4. 1px等于多少rem

    答:body{ font-size:12px }

      12px = 1rem

    5. less与sass的区别

    答:

    • 变量符不同     sass是$,less是@
    • 编译环境不同  sass需要安装Ruby环境,less是需要引入less.js来处理less代码来输出css到浏览器上
    • 工具库不同     sass工具库是compass,
    • 引入外部css文件  sass用_text.css引入
    • sass比less强大很多  但sass需要Ruby环境,国内不能使用,所以个人选择是less

    6.如何提高性能,优化

    答:

    • 减少使用position,float
    • 尽量使用父级继承
    • css可写在一个单独答文件夹,便于维护
    • css不用代码删除保留用的
    • 减少使用!important
    • css文件压缩,js,图片压缩
    • CSS Sprites 将很多图片合并到一张图片上用,减少浏览器到请求

    7.怎么让Chrome支持小于12px 的文字?

    答:

    • -webkit-transfrom: scale(0.8)
    • -webkit-text-size-adjust: 10px;

    ES6

    1. ES6新特性 

    答:

    • const let 
    • 默认赋值
    • 模版文本
    • 多行字符串
    • 解构赋值
    • 箭头函数
    • promise
    • classes 类
    • modules 模块

    2.var const let的区别

    答:ES5中只有全局作用域,函数作用域,没有块级作用域,

      ES6新增了块级作用域,块级作用域是 { } 形成的,if与for的{}也被称为作用域

      var 是全局变量,可以跨块访问,但不可以跨函数访问

      let 局部变量,只能在块级作用域中,不能跨块访问,也不能跨函数访问

      const 局部变量,只能在块级作用域中,不能跨块访问,必须初始化(赋值),否则报错,并且赋值后不能修改

    3.变量提升,函数提升

    答:变量提升是变量声明提升到它所在的作用域最开始的位置

    //变量提升
    console.log(a)
    var a = 1;
    console.log(a)
    //只有函数声明才能变量提升
    function t() {
      console.log(a)
      var a = 1;
      console.log(a)
    }
    t()
    //函数提升
    console.log(t)
    console.log(8)
    function t() {
      console.log(10)
    }
    

    4.箭头函数与普通函数有什么区别

    答:普通函数this的指向是调用者本身,而箭头函数会用上下文的this去拿来当作自己的this

    5. bind, call, apply 有什么区别

    答: 这三者都是改变函数this对象的指向的

      call跟apply不同的是参数的传值方式不同  call是(this, a, b)   apply(this, [a, b])

      call跟bind写法相同,但call是立即执行,bind是等待执行

    6.Promise是什么?

    答:promise是异步编程答一种解决方案,从语法上讲,他是一个对象,可以通过reslove,reject,获取异步返回的结果,从本意上讲,他是一种承诺,承诺过一段时间会给你返回消息,promise有三个状态,pending等待态,fulfiled成功态,rejected失败态,

    promise与回调函数类似,请求拿到值以后,将值传到函数中处理,但跟回调函数不同的就是,回调函数再写回调函数,数据很容易出问题,但promise可以执行多个.then,将返回但值再次处理

    promise是链式调用,每次调用.than,catch都会返回一个新的promise

    7.process.nextTick、setTimeout、setImmediate的区别

    答:不同类型的观察者,处理的优先级不同,idle观察者最先,I/O观察者其次,check观察者最后

      nextTick【idle】,setTimeout【check】,setImmediatecheck

      setTimeout、setImmediate的区别:第一是如果在主模块中(node.js)中,是顺序随机主要看性能。   第二是如果不在主模块中,那setImmediate的顺序大于setTimeout

    8.class在ES6中是什么?讲一下class

    答:

    • class被称为类,用类实例化对象,
    • 定义一个class会默认增加一个constructor函数,其中constructor中放入的是显性对象
    • class中除了constructor还有get,set函数可以获取和设置对象的值,
    • 类只能用new去实例化,否则会报错

    9.ES6中class与ES5中function有什么区别?有什么相同之处

    答:相同:语法相同,ES6能实现的绝大多数功能,ES5都能实现

      区别:class只是让对象原型的写法更加的清晰,更像面向对象编程的语法,使代码编程中不易出错

    10.什么是原型链,portotype与_porto_有什么区别?

    答:原型链就是通过一层一层的链接关系组合而成

      class list {

      }

      let listObj = new list()

      list.portotype = listObj._porto_

      每个函数都有一个portotype对象,凡是对象都有一个属性_porto_。

      portotype对象可以增加或修改属性和方法

    11. Map与Set的区别与相同点?

    答:相同:属性中都有,set,get,has,delect,clear,方法相同

      区别:Set类似于数组,但它的值是唯一的,没有重复的值。Set是本身是构造函数,用来生成数据结构

         Map遍历数组

    4.数组方法有哪些

    答:push,pop,

    JS 

    1.jsonp是如何跨域的,实现原理是什么?

    跨域是浏览器从一个页面获取得到另一个页面的数据,如域名,端口,协议不一致可导致跨域。

    jsonp是在需要一个script的基础上,从页面传一个callback到服务器,服务器会将一个携带callback的参数,callback中包裹着我们想要的JSON数据

  • 相关阅读:
    死锁
    Notepad++源代码阅读——窗口封装与继承
    Notepad++源代码阅读——窗口元素组织与布局
    选择问题(selection problem)
    插入排序 | 冒泡排序 | 希尔排序 | 堆排序 | 快速排序 | 选择排序 | 归并排序
    编程之美2014---大神与三位小伙伴
    ulimit 修改 open files & core
    tmux手记
    匿名访问windows server 2008 R2 文件服务器的共享
    WINDOWS系统变量
  • 原文地址:https://www.cnblogs.com/gqx-html/p/10450716.html
Copyright © 2011-2022 走看看