pakhozou
论坛版主
论坛版主
  • 最后登录2023-03-16
  • 发帖数21
  • 社区居民
  • 忠实会员
阅读:2779回复:0

前端面试题总结(一)

楼主#
更多 发布于:2020-06-27 22:32
常量与变量
javaScript中常量与变量的存储方式是一样的,只不过常量必须要有初始值,
而且值不允许被修改,而变量可以无初始值,且可以多次赋值。


形参与实参
形参就是函数声明时的变量,实参是我们调用该函数时传入的具体参数。


link和@import的区别
这两种方式都是为了加载css文件,但还是存在细微的差别。
1.从属关系区别
@import是 CSS 提供的语法规则,只有导入样式表的作用;
link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。
2.加载顺序区别
加载页面时,link标签引入的 CSS 被同时加载;
@import引入的 CSS 将在页面加载完毕后被加载。
3.兼容性区别
@import是 CSS2.1 才有的语法,故只可在 IE5+ 才能识别;
link标签作为 HTML 元素,不存在兼容性问题
4.DOM可控性区别
可以通过 JS 操作 DOM ,插入link标签来改变样式;
由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。


12. 简述一下src与href的区别
src用于替换当前元素;href用于在当前文档和引用资源之间确立联系。
src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置
href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接


previousElementSibling前一个元素节点


insertBefore(newNode,oldNode)-插入到指定位置

1. Doctype作用?标准模式与兼容模式各有什么区别?
DOCTYPE是document type(文档类型)的简写,用来告诉浏览器的解析器 使用哪种 HTML或XHTML规范解析页面。DOCTYPE不存在或格式不正确 会导致文档 以兼容 模式呈现。

2. HTML5 为什么只需要写 <!DOCTYPE HTML>
HTML5不基于SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为。其中,SGML是标准通用标记语言,简单的说,就是比XML,HTML更老的标准,这两者都是由SGML发展而来的

3. 介绍一下你对浏览器内核的理解?常见的浏览器内核有哪些?
主要分成两部分:渲染引擎、JS引擎。
渲染引擎:负责取得网页中的内容,整理讯息,计算网页显示方式,然后输出。
JS引擎:解析和执行javascript来实现网页的动态效果。
常见的浏览器内核:Trdent、Gecko、Presto、Webkit

4. 为什么要初始化CSS样式。
浏览器差异:不同浏览器对有些标签的默认值不同,
提高编码质量:减少CSS样式重复


5. BFC规范(块级格式化上下文:block formatting context)的理解?
BFC(Block Formatting Context),块级格式化上下文,一个创建了新的BFC的盒子是独 立布局的,盒子里面的子元素的样式不会影响到外面的元素。
BFC是Web页面中盒模型布局的一种CSS渲染模式。它的定位体系属于常规文档流
6描述一下什么是优雅降级,渐进增强
优雅降级(graceful degradation):一开始就构建完整的功能,然后再针对低版本 浏览器进行兼容。(Web站点在所有新式浏览器中都能正常工作,如果用户使用的是 老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问 题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加 候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效。)

渐进增强(progressive enhancement):针对低版本浏览器进行构建页面,保证最 基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户 体验。(从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持 的功能,向页面添加无害于基础浏览器的额外样式和功能。当浏览器支持时,它们会自 动地呈现出来并发挥作用。
7.Src和href的区别
      src用于替换当前元素;href用于在当前文档和引用资源之间确立联系。
src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所 在位置
href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点) 或当前文档(链接)之间的链接
8.H1标签在网页中都有什么作用
呈现内容结构,引起搜索引擎注意,会起到一种强调的作用,让蜘蛛了解当前网页 内容之间的层次关系,减少了搜索引擎蜘蛛的困扰,达到优化效果。


局部变量和全局变量有什么区别。
局部变量:在函数内申明得变量,即在一个函数内部定义得变量,只在本函数范围内有效。
全局变量:在函数外申明得变量,即从定义变量的位置到程序结束都有效
什么叫做作用域,作用域链
在一定的空间里可以对数据进行读写操作,这就是数据得作用域、
作用域分为全局作用域和局部作用域
全局作用域:最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的;
局部作用域: 局部作用域一般只在固定的代码片段内可访问到,而对于函数外部是无法访问的,最常见的例如函数内部。


===========vue==============


1.SPA 单页面应用优缺点
优点:数据驱动、组件化、简介、轻量
缺点:不利于SEO、
          兼容性差、
          首次加载时间会比较长、
          不能实现浏览器的前进后退


2.vue 两大核心
数据驱动、组件化


3.vue双向数据绑定
通过Object.defineProperty()实现数据劫持,可以控制一些对象属性的一些特有操作,
get: 在读取对象属性的时候触发的函数
set: 设置时触发的函数


MVVM:
M     Model 数据层模型
V      View 视图层模型
VM   ViewModel 同步视图层和数据层对象


4.解决跨域的三种方法
vue,config.js  api代理
jsonp(只支持get请求)
xhr2(XMLHttpRequest)


5.Vuex是什么,怎么使用
状态管理模式
大型开发单页面应用时使用


6.v-if和v-show区别、使用场景
v-if是通过控制dom节点的存在与否来控制元素的显隐;
v-show是通过设置DOM元素的display样式,block为显示,none为隐藏;


基于以上区别,因此,如果需要非常频繁地切换,则使用 v-show 较好;
如果在运行时条件很少改变,则使用 v-if 较好。


7.原型和原型链 他们之间的关系
每个函数都有一个prototype属性,这个属性指向函数的原型对象


__proto__:任何对象都可以找到,IE不支持
prototype:函数才有prototype, typeof返回的是function,那么她就有prototype属性


8.组件传值
父传子:子组件定义props来接收
子传父:利用vue中$emit事件传值 子组件定义this.$emit
兄弟传值:通过vue中bus事件传值 第一个兄弟组件定义this.bus.$emit
第二个兄弟组件需要在beforeCreate生命周期获取传过来的值,用this.bus.$on接收


9.computed和watch的区别和使用
computed 计算属性,依赖其他属性值,并且computed的值有缓存,依赖的属性值发生改变,下一次获取computed的值才会重新计算computed的值
watch 更多的是观察,类似于某些数据的监听回调,数据发生变化是回执行回调


10.keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,避免重新渲染  有两个属性include和exclude


11.key 是为 Vue 中 vnode 的唯一标记,通过这个 key,我们的 diff 操作可以更准确、更快速

游客


返回顶部

公众号

公众号