前端面试题(基础)
平时用的代码托管平台 以及基本指令?
初始化仓库 git init查看当前状态 status
克隆仓库ssh地址 Git clone “仓库连接”
拉取仓库数据 git pull
将代码上传到缓存 git add ./git add --all
添加上传代码的注释/提交信息 git commit -m “xxx”
查询修改和配置 Git config
查看本地所有分支 git branch
:wq回车确认合并
Get请求和post请求
都是http设定的八种请求方式中的两种常用的方式,
Get就是请求数据的时候用,当要获取重要数据时,常用post,但不是绝对安全的传输
他们还有的区别就是:
Get post
能被缓存 不能被缓存
只允许asc码 没有限制
数据在url中对所有人可见 数据不会显示在url中
垂直水平居中的方法:
1、display flex justcontent center alignitem center
2、父相子绝 margin auto
3、Margin 50% auto transform:translateY(-50%)
4、父相子绝(margin left、top:- 子/2)
5、(宽高未知)父相子绝(margin:auto)
6、父(设置display :table-cell)
vue组件传值
1、父组件向子组件传递数据:
2、在父组件中引用子组件上绑定一个自定义属性,并把数据绑定在自定义属性上,在子组件添加参数props接收
3、子组件向父组件传递数据:
子组件通过vue实例$emit进行触发携带参数,父组件监听使用v-on监听
4、非父子组件传值:
引入eventbus
在组件created中订阅方法 eventBus.$on(‘自定义事件’)
在另一个兄弟组件中的methods中写函数 eventBus.$emit
5、父访问子组件数据
子组件加上ref 通过this.$refs.ref
父组件通过 this,$children 访问子组件
6、多层组件传值向下传值—— this.$attrs,this.$.parents,
7、——this.$children this.$root
Vue的生命周期
2.0:
beforeCreate -created-beforeMount-mounted-beforeUptate-update-beforeDestory-desdory-activited(keep-alive)-deactivited
3.0:
onBeforeMount onMounted
onBeforeUpdate onUpdated
onBeforeUnmount onUnmounted
onErrorCaptured
onRenderTracked
onRenderTriggered
vue中操作DOM的三种方法:
1、原生js操作
Js原生DOM操作有哪些?
删除节点
var deleteNode = parentNode.removeChild(item);//删除指定的子节点,并返回 deleteNode只是在dom树中删除了,但在内存中还可以访问
修改节点:
node.appendChild(newNode);// 在指定元素后面新增子节点
parentNode.insertBefore(newNode,node); //在parentNode的子节点newNode前面插入newNode节点
parentNode.replaceChild(newNode,oldNode);//用oldNode节点替换parentNode的子节点newNode
查找节点:
var parentNode=document.getElementById("list");//返回第一个带有指定id的元素
var classList=document.getElementsByClassName("wrapper"); //返回所有带有指定class的元素的集合(返回数组形式)
var tagList=document.getElementsByTagName("li");//返回所有带有指定标签的元素的集合(返回数组形式) // *表示查找所有标签
var list=document.querySelector(".wrapper");//返回第一个带有指定id或class的元素
var allList=document.querySelectorAll(".wrapper");//返回所有带有指定id或class的元素
DOM之间的操作
element.parentNode //返回该节点的父节点,每个节点都会有一个父节点,Element的父节点可能是Element,Document或DocumentFragment;
element.parentElement //返回父节点,只有父节点为元素节点时返回,否则返回null
element.children //返回所有元素子节点的集合,仅包含元素节点
element.childNodes //返回当前元素所有的子节点,包含元素节点,文本节点,属性节点。(注释、空格、换行等也会被当作一个节点)
element.firstChild //返回当前元素的第一个子节点,该子节点可以是任意节点,如果没有则返回null
element.firstElementChild //返回当前元素的第一个子节点,该子节点只可以是元素节点,如果没有则返回null
element.lastChild //返回当前元素的最后一个子节点,该子节点可以是任意节点,如果没有则返回null
element.lastElementChild //返回当前元素的最后一个子节点,该子节点只可以是元素节点,如果没有则返回null
element.previousSibling //返回该节点的前一个兄弟节点
element.previousElementSibling //返回该节点的前一个元素兄弟节点
element.nextSibling //返回该节点的后一个兄弟节点
element.nextElementSibling //返回该节点的后一个元素兄弟节点
2、使用ref属性
vue中有一个$refs对象,默认为空。当我们在DOM元素中为其设置ref值后,相当于在vue的内置对象 $refs中添加了新的成员,我们如果需要操作DOM对象直接通过 $refs获取即可。
3、自定义的属性 directive
Let const var的区别?
作用域:块级 let 、const var没有作用域
变量提升:不提升 var存在变量提升
全局添加属性:var声明的是全局变量
重复声明:let const 不可以 var可以,后面覆盖前面的
暂时性死区:在let和const声明变量之前,该变量都是不可用的
初始值:const 必须设置初始值
指针指向:const不允许改变指针指向