• 面试问题


    Q1 .  link标签和import标签的区别有什么?

    外部引用CSS有两种方法,link标签和import

    1.加载顺序区别

    link和页面一同加载,import在页面加载完之后再加载

    2.兼容性区别

    link的兼容性比import好

    @import是 CSS2.1 才有的语法,故只可在 IE5+ 才能识别;

    link标签作为 HTML 元素,不存在兼容性问题。

    3.DOM可控性区别

    可以通过 JS 操作 DOM ,插入link标签来改变样式;

    由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。

    4.从属关系区别
    @import是 CSS 提供的语法规则,只有导入样式表的作用;

    link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。

    5.权重区别(该项有争议,下文将详解)
    link引入的样式权重大于@import引入的样式。

    Q2 .如何让事件先冒泡后捕获

    首先,如果是目标元素自身的事件想要先冒泡后捕获,就把添加冒泡事件代码放在添加捕获事件前面。
    但是,对于非目标元素的事件,作为父元素,想不到有特别好的办法能实现先冒泡后捕获。能想到的就是:
    设置一个用于判断是否冒泡的外部变量,在事件捕获的时候先判断变量是否已经冒泡,没有的话process.nextTick(fn),在冒泡中把变量修改了,同步代码执行完成,异步代码执行之前就执行process的回调函数中再判断执行。

    但是感觉这样并不完美,中间还会经过很多同步代码。

    或者setTimeout(fn,0)或者setImmediate(fn),但是这两个方法又要等到所有异步代码执行完才行。

    根据w3c标准,应先捕获再冒泡。若要实现先冒泡后捕获,给一个元素绑定两个addEventListener,其中一个第三个参数设置为false(即冒泡),另一个第三个参数设置为true(即捕获),调整它们的代码顺序,将设置为false的监听事件放在设置为true的监听事件前面即可。

     

    Q3 . 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。

    思路:

        //当前结点为根结点时:

        //1)若根结点无右子树,返回NULL

        //2)若根结点有右子树,返回右子树中最左端的结点

        

        //当前结点为左叶子结点:

        //直接返回其父结点

       

        //当前结点为右叶子结点

        //1)若其祖父结点存在且其父结点是其祖父结点的左结点,返回其祖父结点

        //2)否则,返回NULL

       

        //当前结点为非叶子结点

        //1)若无右子树,返回其父结点

        //2)若有右子树,返回其右子树中最左端的结点

    https://www.nowcoder.com/interview/ai/97084

  • 相关阅读:
    使用mui框架后,input标签失焦后,会滚到顶部的解决方案
    接口处理请求时间过长,前台响应“服务器超时”的解决办法
    正则匹配手机号码
    使用hexo+github免费搭建个人博客网站超详细教程
    微信小程序获取当前位置 地图定位导航-详细代码
    小程序 获取当前所在地理位置 城市 信息
    溯源:Cesium.Appearance 中的顶点着色器
    【Cesium 颜狗初步】fabric 材质定义与自定义着色器实践
    VM创建虚拟机报错
    zxing.net生成二维码的000026问题
  • 原文地址:https://www.cnblogs.com/SallyShan/p/11490282.html
Copyright © 2020-2023  润新知