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

    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

  • 相关阅读:
    [深度概念]·K-Fold 交叉验证 (Cross-Validation)的理解与应用
    [天池竞赛项目]2019菜鸟全球科技挑战赛 —智能体积测量(队员招募)
    [MXNet逐梦之旅]练习一·使用MXNet拟合直线手动实现
    [深度学习工具]·极简安装Dlib人脸识别库
    [数据科学从零到壹]·泰坦尼克号生存预测(数据读取、处理与建模)​​​​​​​
    Java 多线程
    javaAPI中的常用 类 以及接口
    QQ数据库管理
    java 对象和封装
    事务、视图、索引、备份、还原
  • 原文地址:https://www.cnblogs.com/SallyShan/p/11490282.html
Copyright © 2011-2022 走看看