前言
面好了要镇定,面不好要淡定。最后的最后,加油加油加油。
正文
HTML
-
< !DOCTYPE >的作用 首航标签,指示HTML使用哪个版本进行编写(DTD文件),HTML4是使用SGML,HTML5则不是使用SGML来规范的,所以不需要DTD的引入,H5之中直接使用
-
< meta >标签内容
标签主要的属性是http-equiv和name属性内容。name 所拥有的关键属性以及对应的content内容如下:
- keywords(关键字,告诉搜索引擎页面关键字)
- descriptions (描述,告诉搜索引擎网站的主要内容)
- robots(机器人向导,告诉搜索引擎那些页面需要索引那些页面不需要,分为all,none,index,unindex,follow,nofollow。默认是all)
- author(作者,网站作者),renderer(网站的渲染模式)
- viewport(视图模式,常用设置属性有height,width,initial-scale,maximum-scale,minimum-scale,user-scalable)
http-equiv 相当于http文件头的作用,其对应的常见设置有如下:
- X-UA-Compatible(浏览模式)设置浏览器版本
- Expires:网页过期时间,一旦网页过期,一定要到服务器重新传输。格式要GMT
- Pragma(cache模式)禁止浏览器从本地计算机的缓存之中访问内容。
- Refresh:页面自动刷新指向新页面 content之中格式为 Time;URL Time的单位是秒。
- Set-Cookie(设置cookie),如果网页过期,存盘的cookie将会被删除。
- content-Type:设定网页使用的字符集 一般都是 text/html;charset=utf-8
- Content-Language: 页面展示的语言内容。
- Cache-Control: 可以设置在content的属性有max-age:最大存在时间,public,private,no-cache,no-store
-
localStorage,sessionStorage,cookie
- localStorage:空间大(5-10M),保存持久。
- sessionStorage:空间大,保存单次会话。
- cookie:只有4kb,主要用途是保存登陆信息。
-
什么是cookie, cookie的优势是什么。
cookie又名会话跟踪机制,解决了http请求无状态的问题。如果控制好session对象的大小,我们可以将此对象内容放置在cookie之中。我们也可以在其中放置用户的相关登陆信息内容,等到下一次用户开启网站的时候,用户可以直接登陆。
cookie的优势,我觉的在于:
- 它可以很方便的记录http请求的状态和绘画状态,同时可以设置相关的过期控制,不用手动删除内容。
- Secure属性的设置,通过SSL或者https可以更为安全的传输。
- 简单轻量,可持久存储。
- 服务器可以进行操作。
-
unicode编码
为了统筹计算机对于多种语言对应表的混乱,所以提出了unicode编码,通抽所有的字符编码,统一传输数据内容。
-
utf-8字符集理解
utf-8的全称是(8-bit Unicode Transformation Format),是针对unicode的可变长度字符编码。其会自动的依据展示数据来调整所需的字节长度,一个到四个不等。节约了传输的空间。
CSS
-
CSS盒模型介绍,和切换。
主要的盒模型是content-box,border-box 盒模型内容相同。
两者主要区别:
content-box主体内容高度,和宽度由width和height设置padding还有border的修改不影响。
而border-box的长宽受到padding还有border影响。长宽是固定的,但是内容会由于padding或者border的改变而互斥改变。
切换盒模型使用box-sizing的作用
例:box-sizing: content-box 是W3C盒子模型
box-sizing: border-box 是IE盒子模型
-
样式优先等级怎么计算
样式表引入展示优先:行内样式(style属性)>内页样式(style标签)>外部样式(link引入)
样式表作用优先: 通用选择器(*) < 元素(类型)选择器 < 类选择器 < 属性选择器 < 伪类 < ID 选择器 < 内联样式
-
position之中的属性有几个。
static, absolute, relative, fixed, inherit
-
内容填充高度,元素需要水平垂直居中。
-
如何使用CSS3实现抛物线动画。
- animation 与 @keyframes的结合使用。
- transition来直接设置top和left的值。同时设置变动方式。
- js实现。
-
aimation和transition的不同。
transition:其关注的点是过渡,相对比较简单的那一种。其主要是两个关键帧,开始与结尾。简单方便,但是又局限性。
animation:为了弥补上面内容的特点,animation通过控制关键帧来控制动画的每一步,来实现相关的效果。
主要的不同在于 transition需要通过事件来进行内容的触发,但是animation的话就不同了,可以不通过事件的形式。
-
说一说对flex的理解。
弹性布局用来为盒模型提供最大的灵活性。当一个元素设置成为flex,则其中子元素自动成为容器的成员。容器主要是存在的是水平主轴和垂直的交叉轴。所以我们可以通过设置轴的方向的形式来控制展示基调,然后通过设置项目的权重,来控制最后的展示效果。
-
三角形的实现。
-
常用到的CSS单位有什么。
-
px:绝对单位,页面按精确像素展示
-
em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。
-
rem:相对单位,可理解为”root em”, 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持。
-
vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%。
-
vh:viewpoint height,视窗高度,1vh等于视窗高度的1%。
-
vmin:vw和vh中较小的那个。
-
vmax:vw和vh中较大的那个。
-
%:百分比
-
in:寸
-
cm:厘米
-
mm:毫米
-
pt:point,大约1/72寸
-
pc:pica,大约6pt,1/6寸
-
ex:取当前作用效果的字体的x的高度,在无法确定x高度的情况下以0.5em计算(IE11及以下均不支持,firefox/chrome/safari/opera/ios safari/android browser4.4+等均需属性加么有前缀)
-
ch:以节点所使用字体中的“0”字符为基准,找不到时为0.5em(ie10+,chrome31+,safair7.1+,opera26+,ios safari 7.1+,android browser4.4+支持)
-
JS
- console.log打印内容。
let a = 1;
let obj = {
a: 2,
b() {
console.log(this.a); // 2
},
c: () => {
console.log(this.a); // 1 或者undefined
//(此处主要是看运行环境,浏览器运行上下文windows是undefined)
}
}
console.log(obj.b()); // undefined
console.log(obj.c()); // undefined
-
new操作符的理解。
let newObj = Object.create(new Object(), Func.prototype); let newObj = Func.call(newObj);
-
数组遍历的方法
- for循环(for..of..)
- forEach(function(item, index, array))
- map(function(item, index, array))
- filter(function(item, index, array))
- every(function(item, index, array))检测是否所有的元素都符合体条件,是返回true,不是返回false。
- some(function(item, index, array))检测是否有的元素都符合体条件,是返回true,不是返回false。)
ES6之中的迭代器
- entries()返回键值对迭代器
- keys() 返回索引迭代器
- values() 返回数值迭代器
-
数组去重方法,如果数组之中有多个NaN如何去重。
工具类方法,或者使用ES6之中的Set对象也是十分方便的。不过这里我们需要注意的一件事情是,如果在数组之中拥有多个NaN的情况的时候。如果过使用Set的话不用担心,NaN重复插入的时候其也会进行判断。但是使用工具类的方法的时候我们需要特殊处理。
-
数组的排序方法,和数组倒叙。
- 方法有很多,这里我们需要说一下sort方法,它是在元素组之上进行排序的,他是按照字符编码进行排序的,所以我们将数字传递进去的时候会是按照收尾字符进行大的排序,然后按照第二位字符对首位字符相同的进行排序。
- 这里再说一下数组倒叙,字符串倒叙也是常常会问的。我们会使用reverse这个方法,它也是在原数组上面进行操作的,操作时需要注意啊。字符串的颠倒实际上也是可以使用这一方法的,通过split方法来进行拆解,最后通过join方法在合并。
-
时间复杂度和空间复杂度。
-
时间频度:一个算法的执行所需要消耗的时间。因为算法的时间复杂度和其中所需要执行的语句成正比。一个算法中的语句执行次数称为语句频度或时间频度,记为T(n)
-
时间复杂度:时间频度之中n称为问题的规模,当n变化,T(n)也会不断的变化,但是有的时候我们想要知道它变化的规律,为此引入时间复杂度的概念,如果存在某个辅助函数F(n)使得当n趋近于无穷大的时候
T(n)/F(n)的极限值为不等于零的常数,称f(n)是T(n)的同数量级函数。记做T(n) = O(F(n));称这为算法的渐进时间复杂度,也就是时间复杂度。 -
空间复杂度:空间复杂度实际上和时间复杂度概念类似,只是它是用来表示空间频度的变化复杂形势的。
-
-
addEventListener的第三个与之后参数内容。
第三个参数传递boolean表示的的是useCapture,表示事件在事件捕获阶段调用。
-
对于event-loop的理解。
Vue
-
v-show和v-if的差别
v-show: 样式修改展示情况。
v-if: 判别是否渲染。所以v-if修饰的组件除非需要渲染否则不走生命周期
问题:那么v-if修饰组件的话,如果不渲染组件那么组件的生命周期会执行吗?
- value变量深度观察,对象变量元素改变观察。
- directive
- 常用的生命周期函数有什么,用在项目之中承接什么逻辑。
- Vue如何添加和删除已有Vue实例之中的数据内容。