this指向
this的概念
this是JavaScript的一个关键字,他是指函数执行过程中,自动生成的一个内部对象,是指当前的对象,只在当前函数内部使用。
this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this指向的是window;当函数被作为某个对象的方法调用时,this就等于那个对象。
在全局环境中(非函数体内),无论是否在严格模式,this都指向window。
12'use strict' //使用严格模式 console.log(this) //window
在普通函数中,this指向window。
123function fn() { console.log(this) //window}
函数在严格模式下,this指向undefined。
123456function fn() { 'use strict' //使用严格模式 console.log(this) //undefined console.log(this === window) //false ...
vue综合知识
MVVM的优势
双向绑定,Model变化时,View也会自动变化,view发生更新,model也跟着更新。
减少了dom操作,因为我们只需要关注数据就可以。
mvvm设计思想降低了代码的耦合性,方便维护。
单向数据流在父向子传值的时候,如果改变父组件的值,子组件会跟着同步更新,反之则不会。
双向数据绑定v-model,数据发生变化会同步到视图,视图发生变化会同步数据。
watch和computed哪个可以异步watch是监听一个值的变化,然后执行对应的回调,watch支持异步。
计算属性(computed)不能进行异步操作,因为计算属性(computed)是通过return返回值传递参数 异步操作的时候return是没有意义的,异步函数的返回值都不是用return返回的,所以vue中的计算属性(computed)不能使用异步函数。
$route和$router的区别区别
this.$router是全局路由器对象
0this.$route是当前激活的路由对象,包含了当前的路由信息。
$route route是路由信息对象,里面主要包含路由的一些基本信息,包括name、meta、pat ...
什么是BFC?它的作用是什么以及怎么创建BFC区域
啥是BFC看不明白的定义:BFC (Block formatting context)直译为”块级格式化上下文”。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。
官方文档到中是这么介绍的:
一个BFC区域包含创建该上下文元素的所有子元素,但是不包括创建了新的BFC的子元素的内部元素,BFC是一块块独立的渲染区域,可以将BFC看成是元素的一种属性,拥有了这种属性的元素就会使他的子元素与世隔绝,不会影响到外部其他元素。
代码理解还不是很清楚什么意思?上代码!
123456789101112<body> <div class="father" id="father"> <div class="1"></div> <div class="1"></div> <div class="1&qu ...
什么是浮动以及清除浮动的方法
什么是浮动浮动(float):
浮动会让元素脱离文档流,不占空间。
假如A元素浮动了,原本排在A元素之后的元素发现A元素不在这个文档流了,就会往上接,替代A元素的位置。但是文字并不会无视它,还会环绕A元素,也就是A元素没有脱离文字流,而如果使用position的绝对定位会连文字流也脱离文档流。
文档流的概念:
HTML中的的元素按照 从左往右、从上到下的顺序进行排列的。
浮动的特性:
浮动元素会脱离标准流(脱标),即浮动的盒子不再保留原先的位置。
浮动的元素会在一行内显示并且元素顶部对齐(除非宽度不够在一行才会换行)。
浮动的元素会具有行内块元素的特性。
设置了一样属性的浮动元素是紧挨着的,不会有缝隙。
浮动元素设置margin_top不会发生塌陷现象
给标准流元素设置margin-top时会发生margin塌陷
清除浮动的方法方法1:固定宽高
给浮动的元素添加父级div盒子,再给父级盒子设置高度
缺点:高度固定死了,无法做到自适应,不宜维护,不灵活
应用场景:基本不变的导航栏,固定栏;
方法2:一起浮动
父元素也添加浮动,这样父元素也脱离文档流
...
js数据类型和数据类型检测
js数据类型和数据类型检测js数据类型
简单(基本)类型:String、Number、Boolean、Undefined、Null、Symbol
引用(复杂)类型:Object、Array、Function
检测数据类型方法typeof
一般用于检测基本数据类型,因为它检测引用(复杂)数据类型都会返回Objcet
123456789console.log(typeof 1) // numberconsole.log(typeof '1') // stringconsole.log(typeof undefined) // undefinedconsole.log(typeof true) // booleanconsole.log(typeof null) // objectfunction fun(){}console.log(typeof fun) // functionvar arr=[1,2,3,5]console.log(typeof arr)// object
了解一下:typeof null返回值是object,因为j ...
前端面试题--css篇
css权重优先级权重优先级从高到低:
!important
id选择器
类选择器、属性选择器、伪类选择器
标签选择器、伪元素选择器
通配符选择器
继承
css3有哪些新特性0.flex布局
1.颜色:新增RGBA,HSLA模式
2.文字阴影(text-shadow)
3.边框:圆角(border-radius)、 边框阴影(box-shadow)
4.盒子模型:box-sizing
5.背景:background-size设置背景图片的尺寸、background-origin设置背景图片的原点、background-clip设置背景图片的裁切区域,以“,”分割可以设置多背景,用于自适应布局。
6.渐变:linear-gradient、radial-gradient
7.过渡:transition可实现动画
8.自定义动画
9.在css3中唯一引入的伪元素:selection
10.媒体查询、多栏布局
11.border-image
12.2D转换:transform
13.3D转换
两栏布局右边固定左边自适应两个div盒子
第一种方式:flex布局
先给父盒子设置dis ...
前端面试题--html篇
html5有哪些新特性?答:html5新增和移除了一些元素
新增了以下几大类元素:
内容元素:article、footer、header、nav、section。表单控件:calendar、date、time、email、url、search。控件元素:webworker, websockt, Geolocation。
移除的元素有下列这些:
显现层元素:basefont,big,center,font, s,strike,tt,u。性能较差元素:frame,frameset,noframes。
HTML5已形成了最终的标准,概括来讲,它主要是关于图像,位置,存储,多任务等功能的增加。新增的元素有绘画 canvas ,用于媒介回放的 video 和 audio 元素,本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失,而sessionStorage的数据在浏览器关闭后自动删除。新的技术:canvas,svg,webworker, websocket, Geolocation
对HTML语义化的理解答:
(1)HTML语义化让页面的内容结构化,结构更清晰,便于对 ...
element-ui知识
好记性不如烂笔头整理一下 element-ui 中常用的功能写法。
布局布局如果都写100%没意义,父级要有高度或宽度才行,可以给父级(最外层)设置100vh或者100vw最好。
作用域插槽新版写法:v-slot=”scope”
表单验证最外层 要写:model和:rules
item层 要写prop
input层 要写v-model
注意:(prop和v-model)表单v-model写的名字和rule名字必须一样
重置表单在 加上ref=”loginFormRef”;给重置按钮加上reset点击事件;在methods里面设置reset方法。
1234567methods:{ reset(){ //获取表单组件实现对象 //对整个表单进行重置,将所有字段重置为初始值并移除校验结果 this.$refs.loginFormRef.resetFields() }}
validator(自定义校验规则)validator是一个函数,其中有三个参数(rule(当前规则),value(当前值),callba ...
项目知识
vue.config.js不是在src中写的代码,所以不能用import,export,default语法,只能用node.js的语法,因为脚手架cli是基于node开发的。
normalize
我们在开发的时候会发现很多样式都自带了各自特有的默认样式,而这样样式通常会被遗忘,导致样式调整起来很繁琐。为了让样式统一,我们在开发的时候通常会对一些元素进行样式重置,已避免默认样式影响开发。Normalize.css就是一个这样的CSS样式文件,它的作用就是让HTML元素更好的实现跨浏览器一致性。
一句话总结就是:normalize可以让样式在所有浏览器中都保持一致。
scss定义变量用 $
&父级选择器和less没有区别
混入mixin
样式穿透
/deep/ 在vue3之前可用
::v-deep 在vue3开始使用
deep() 具体不太清楚
mixin其实Mixin不是Vue专属的,可以说它是一种思想,也可以说它就是混入的意思,在很多开发框架中都实现了Mixin(混入)。
官方定义:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue ...