zoukankan      html  css  js  c++  java
  • 面试题总结

    Css篇:

    1、CSS实现宽度自适应100%,宽高16:9的比例的矩形。

    JS篇:

    1、iframe的缺点有哪些?

    iframe会阻塞主页面的Onload事件;
    搜索引擎的检索程序无法解读这种页面,不利于SEO;
    iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。
    使用iframe之前需要考虑这两个缺点。

    如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以绕开以上两个问题。

    2、怎么判断两个对象是否相等?

    3、git pull和git fetch的区别?

    (1)git fetch:相当于是从远程获取最新版本到本地,不会自动merge

    (2)git pull:相当于是从远程获取最新版本,并merge到本地

    4、ES6中箭头运算符this指向问题? (参考这篇文章:  ES6箭头函数--特性

    (1)箭头函数的 this 始终指向函数定义时的 this,而非执行时
    (2)还需要注意一点的就是这个this是不会改变指向对象的,我们知道call和apply可以改变this的指向,但是在箭头函数中是无效的。

    5、ES6箭头函数没有块级作用域。

    //ES6箭头函数
    var o = {
            x : 11,
            test : () => {console.log(this.x)}
        };
    
    o.test();
    
    输出:undefined
    

      

    //非箭头函数
    var o = {
            x : 11,
            test : function () {console.log(this.x)}
        };
    
    o.test();
    
    输出: 11
    

    6、=、浅拷贝、深拷贝三者区别?

      浅拷贝是和深拷贝比较的,深拷贝可以理解为递归进行浅拷贝。
      深拷贝为了解决对象中依旧含有对象,例如

    let a = {
      name: 'LiHua',
      habits:  ['a', 'b']
    }
    1. 普通的=赋值:b=a,b如果修改了b.name,那么a.name也会改变
    2. 浅拷贝,b,如果修改了b.name, a.name不会改变,但是修改b.habits数组中的值,a.habits的值也会改变。 如 Array的slice和    concat方法。
    3. 深拷贝,b的值改变,不会对a产生任何影响。 如 JSON.parse(JSON.stringify(testObj))【该方法对于正则表达式类型、函数类型等无法进行深拷贝(而且会直接丢失相应的值)。】和  lodash库的cloneDeep方法;

    7、position类型?

    • 定位元素(positioned element)是其计算后位置属性为 relativeabsolutefixed 或 sticky 的一个元素。
    • 相对定位元素(relatively positioned element计算后位置属性为 relative 的元素。
    • 绝对定位元素(absolutely positioned element)计算后位置属性为 absolute 或 fixed 的元素。  【绝对定位元素脱离文档流】
    • 粘性定位元素stickily positioned element计算后位置属性为 sticky 的元素

    8、函数声明和函数表达式

      变量声明提升,即所有声明变量或声明函数都会被提升到当前函数的顶部; 函数表达式最大的问题,在于将代码拆分为两行分别执行。

    var getName = function () { alert (4);};
    function getName() { alert (5);}
    
    getName(); //4
    

      变量提升后执行代码实际为:

    var getName;//只提升变量声明
    function getName() { alert (5);}//提升函数声明,覆盖var的声明
    getName = function () { alert (4);};//最终的赋值再次覆盖function getName声明
    
    getName();//最终输出4
    

      

  • 相关阅读:
    iuplua test failure
    lua C++ wrapper
    lua
    Redux系列01:从一个简单例子了解action、store、reducer
    Meteor入门介绍
    Express入门介绍vs实例讲解
    React半科普文
    Express模版引擎hbs备忘
    Gulp:插件编写入门
    gulp.src()内部实现探究
  • 原文地址:https://www.cnblogs.com/lulin1/p/9157212.html
Copyright © 2011-2022 走看看