Why can't I change

1、如何理解CSS的盒子模型?
标准盒子模型:宽度=内容的宽度(content)+ border + padding

低版本IE盒子模型:宽度=内容宽度(content+border+padding)


2、 BFC?
  • 什么是 BFC

    BFC(Block Formatting Context)格式化上下文,是 Web 页面中盒模型布局的 CSS 渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。

  • 形成 BFC 的条件

    • 浮动元素,float 除 none 以外的值
    • 定位元素,position(absolute,fixed)
    • display 为以下其中之一的值 inline-block,table-cell,table-caption
    • overflow 除了 visible 以外的值(hidden,auto,scroll)
  • BFC 的特性

    • 内部的 Box 会在垂直方向上一个接一个的放置。
    • 垂直方向上的距离由 margin 决定
    • bfc 的区域不会与 float 的元素区域重叠。
    • 计算 bfc 的高度时,浮动元素也参与计算
    • bfc 就是页面上的一个独立容器,容器里面的子元素不会影响外面元素。


3、如何清除浮动

不清楚浮动会发生高度塌陷:浮动元素父元素高度自适应(父元素不写高度时,子元素写了浮动后,父元素会发生高度塌陷)

  • clear清除浮动(添加空div法)在浮动元素下方添加空div,并给该元素写css样式: {clear:both;height:0;overflow:hidden;}
  • 给浮动元素父级设置高度
  • 父级同时浮动(需要给父级同级元素添加浮动)
  • 父级设置成inline-block,其margin: 0 auto居中方式失效
  • 给父级添加overflow:hidden 清除浮动方法
  • 万能清除法 after伪类 清浮动(现在主流方法,推荐使用)
.float_div:after{
    content:".";
    clear:both;
    display:block;
    height:0;
    overflow:hidden;
    visibility:hidden;
}
.float_div{
    zoom:1
} 


4、 用纯CSS创建一个三角形的原理是什么?


5、 css3实现0.5px的细线


6、css实现三栏布局 (左右固定,中间自适应)



    
    
    
    Document
    


    


6、让一个div垂直居中

宽度高度已知的     宽度和高度未知     flex布局

7、谈一谈css的伪类和伪元素



1、闭包


2、js中函数执行


3、new一个对象的过程中发生了什么嘛


4、宏任务跟微任务


5、防抖和节流


6、数组的常用方法


7、立即执行函数


8、js原型和原型链


9、js中call,apply,bind方法


10、Promise


11、async/await


12、深拷贝、浅拷贝


13、跨域


14、for in 和 for of


15、如何阻止冒泡?


16、如何阻止默认事件?


17、var,let,const


18、Class


19、Set


20、Map




1、实现一个new操作符


2、实现一个call或 apply


3、实现一个Function.bind


4、实现一个继承


5、手写一个Promise(中高级必考)


6、手写防抖(Debouncing)和节流(Throttling)


7、手写一个JS深拷贝

function deepCopy(obj) {
    //判断是否是简单数据类型,
    if (typeof obj == "object") {
        //复杂数据类型
        var result = obj.constructor == Array ? [] : {};
        for (let i in obj) {
            result[i] = typeof obj[i] == "object" ? deepCopy(obj[i]) : obj[i];
        }
    } else {
        //简单数据类型 直接 == 赋值
        var result = obj;
    }
    return result;
}




1、Vue的双向数据绑定原理是什么?


2、请详细说下你对vue生命周期的理解?


  • beforeCreate 创建前执行(vue实例的挂载元素$el和数据对象data都为undefined,还未初始化)

  • created 完成创建 (完成了data数据初始化,el还未初始化)

  • beforeMount 载入前(vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。)

  • mounted 载入后html已经渲染(vue实例挂载完成,data.message成功渲染。)

  • beforeUpdate 更新前状态(view层的数据变化前,不是data中的数据改变前)

  • updated 更新状态后

  • beforeDestroy 销毁前

  • destroyed 销毁后 (在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在)

说一下每一个阶段可以做的事情

  • beforeCreate:可以在这里加一个loading事件,在加载实例时触发。

  • created:初始化完成时的事件写这里,如果这里结束了loading事件,异步请求也在这里调用。

  • mounted:挂在元素,获取到DOM节点

  • updated:对数据进行处理的函数写这里。

  • beforeDestroy:可以写一个确认停止事件的确认框。


3、动态路由定义和获取

在 router 目录下的 index.js 文件中,对 path 属性加上 /:id。

使用 router 对象的 params.id 获取

4、vue-router 有哪几种导航钩子?

三种

  1. 全局导航钩子(跳转前进行判断拦截)
  • router.beforeEach(to, from, next),
  • router.beforeResolve(to, from, next),
  • router.afterEach(to, from ,next)

2.组件内钩子

  • beforeRouteEnter
  • beforeRouteUpdate
  • beforeRouteLeave

3.单独路由独享组件

  • beforeEnter


5、组件之间的传值通信?

父组件向子组件传值:

子组件在props中创建一个属性,用来接收父组件传过来的值;
在父组件中注册子组件;
在子组件标签中添加子组件props中创建的属性;
把需要传给子组件的值赋给该属性

子组件向父组件传值:

子组件中需要以某种方式(如点击事件)的方法来触发一个自定义的事件;
将需要传的值作为$emit的第二个参数,该值将作为实参传给响应事件的方法;
在父组件中注册子组件并在子组件标签上绑定自定义事件的监听。


6、vuex

你可能感兴趣的:(Why can't I change)