1、HTML 语义化标签
语义化标签,旨在让标签有自己的含义,优势是: (1) 使得在没有 CSS 的情况下,页面也能呈现出很好的内容结构、代码结构 (2) 有利于 SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息 (3) 方便其他设备(比如盲人阅读器来解析)来解析 HTML 内容,从而渲染出页面 (4) 方便团队的开发和维护,使得代码更具可读性 常见的语义化标签有:<p></p> <a></a> <header> <footer> <h1><h2><h3><h4><h5> <article><section> <strong><ol><li><ul>HTML 的 meta 属性 meta 用于定义页面的说明,关键字,最后修改日期,和其他的元数据。这些元数据将服务于 浏览器(如何布局或重载页面),搜索引擎和其他网络服务。 meta 标签共有两个属性,分别是 http-equiv 属性和 name 属性。 name 属性更为常用:name 属性主要用于描述网页,比如网页的关键词,叙述等。与之对应 的属性值为 content,content 中的内容是对 name 填入类型的具体描述,便于搜索引擎抓 取。meta 标签中 name 属性语法格式是:
<meta charset='utf-8'> <meta name='参数' content='具体的描述'> <meta name='viewport' content='width=device-width,initial scale=1'> <meta name='keywords' content='个性主页,学习,记录,成长'> <meta name='description' content='热爱前端与编程。目前大二,这是我的前 端博客'> <meta name='robots' content='none'> <meta name='author' content='xxx'> <meta name='copyright' content='xxxx'>// 代表该网站为 xxx 个人版权所有keywords 是网站的关键词 description 是网站的描述 上述两个属性都有助于搜索引擎读取网页。 robots 用来告诉爬虫哪些页面需要索引,哪些页面不需要索引。content 的参数有all,none,index,follow 等,默认是 all
2、CSS
w 100 b 10 p 20 m 30问怪异盒子和标准盒子下该盒子的宽度是多少
标准的盒子模型的大小是:content(区域内容大小)+padding(内边距)+border(边框)+margin(外边距); 怪异盒子(IE模型)宽高大小包含:content(区域内容大小)+padding、border大小在内,但不包含margin的大小。css的水平垂直居中的几种方式
1. 利用 flex 的 align-items:center 垂直居中,justify-content:center 水平居中 2. 利用相对定位和绝对定位的 margin:auto 父组件用相对定位,子组件用绝对定位,然后子组件内设置 top,right,bottom,left 都是 0,margin:auto 即可使子组件水平垂直居中 3. 利用相对定位和绝对定位,再加上外边距和平移的配合 父组件用相对定位,子组件用绝对定位,利用 margin 偏移外容器的 50%,再利用 translate 平移回补自身宽高的 50%即可4. 利用 textAlign 和 verticalAlign---使行内元素水平垂直居中 利用 textAlign:center 实现行内元素的水平居中,再利用 vertical-align:middle 实现行内 元素的垂直居中,前提是要先加上伪元素并给设置高度为 100%,用过 elementUI 的可以去 看看其消息弹窗居中实现方式就是如此。 5. 上面都是在未知外容器和自身宽高下实现水平垂直居中的,如果已知其宽高,可以有更多种 简单的方式实现居中,其原理无非是利用绝对定位的 top/left 偏移、margin 偏移、padding 填充,在此就不分析了。还有就是单纯文字的居中利用 lineHeight 和 textAlign 即可实现 (这个方法是在父元素中进行设置)3、虚拟地址和物理地址
物理地址:物理内存就是真实的内存,CPU的地址线可以直接进行寻址的内存空间大小。比如在32位平台下,寻址的范围是2^32也就是4G,并且这是固定的。
虚拟地址:操作系统会给每个进程分配一个虚拟地址空间,这个虚拟地址空间不同于其他进程。每个进程包含的栈、堆、代码段这些都会从这个地址空间中被分配一个地址。
很多的应用程序都比较大,计算机实际所配置的内存空间无法满足。所以出现了虚拟内存技术。经过不断有目的的换入和换出,处理器似乎是拥有了一个大于实际物理内存的内存空间。于是,这个存储空间叫做虚拟内存空间。
由于存在两个内存地址,因此一个应用程序从编写到被执行,需要进行两次映射。第一次是映射到虚拟内存空间,第二次时映射到物理内存空间。在计算机系统中,第两次映射的工作是由硬件和软件共同来完成的。承担这个任务的硬件部分叫做存储管理单元MMU,软件部分就是操作系统的内存管理模块了。
虚拟地址和物理地址的关系
分页就是把整个虚拟和物理内存切成一段段固定大小的空间,连续且尺寸固定的内存空间叫页,Linux下每一页大小4KB。
虚拟内存和物理内存之间通过页表来映射;虚拟地址分为:页号和页内偏移。
4、React 框架和 Vue 框架在设计理念上有哪些不同点和相同点
vue: vue是一种渐进式框架,采用自底向上增量开发的设计;
react: 采用函数式编程,推崇纯组件,数据不可变,单向数据流;
相同点:
1、两者都是用了Virtual DOM,Virtual DOM是一个映射真实DOM的JavaScript对象,如果需要改变任何元素的状态,那么是先在Virtual DOM上进项改变,而不是直接改变真实的DOM。当有变化产生时,一个新的Virtual DOM对象会被创建并计算新旧Virtual DOM之间的差别。之后这些差别会应用在真实的DOM上。
Tips:
VUE可以更快地计算出Virtual DOM的差异,这是由于它在渲染过程中,会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。
而对于REACT而言,每当应用的状态被改变时,会全部子组件会重新渲染。当然,这也可以通过shouldComponentUpdate这个生命周期方法来进行控制,但VUE将此视为默认的优化。
2、REACT与VUE都鼓励组件化应用。建议将应用拆成一个个功能明确的模块,每个模块之间可以通过合适的方式互相联系。
Tips:
在REACT中,这是必须的,它以来一个”单一数据源“作为它的”状态“
而在vue中,PROPS略有不同,它们一样是在组件中被定义,的vue依赖与模板语法,你可以通过模板的循环函数更高效地展示传入的数据。
3、REACT和vue都有PROPS的概念,properties的简写。props在组件中是一个特殊的属性,语序父组件往子组件传送数据。
在REACT中,是必须的,它以来一个”单一数据源“作为它的”状态“
而在vue中,PROPS略有不同,它们一样是在组件中被定义,的vue依赖与模板语法,你可以通过模板的循环函数更高效地展示传入的数据。
不同点:
1、REACT与vue最大的不同是模板的编写:模板 VS JSX
2、监听数据变化的实现原理不同;
Tips:
Vue通过getter,setter以及一些函数的劫持,能精确知道数据的变化。
React是通过比较引用方式(diff)进行的,当应用的状态改变时,全部组件都会重新渲染。
3、数据流不同;
Tips:
Vue实现双向绑定,在vue1.0中有两种方法可以实现双向绑定,父子组件之间的props以及组件与DOM直接的v-model。vue2去掉了第一种双向绑定方法,通过v-model实现数据双向绑定。
4、state处理不同;Tips:
React中,state对象需要用setState方法更新状态;
在Vue中,state对象不是必须的,数据由data属性在vue对象中管理。
5、定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
示例:
MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.min(); --> 返回 -2.代码如下:
class MinStack { stack1 : Array<number> stack2 : Array<number> constructor() { this.stack1 = [] this.stack2 = [Infinity] } push(x: number): void { this.stack1.push(x) let MinNumber = Math.min(this.stack2[this.stack2.length - 1], x) this.stack2.push(MinNumber) } pop(): void { this.stack1.pop() this.stack2.pop() } top(): number { return this.stack1[this.stack1.length - 1] } min(): number { return this.stack2[this.stack2.length - 1] } }
标签:居中,vue,minStack,DOM,stack2,面试,组件,第二篇,套题 From: https://www.cnblogs.com/cczlovexw/p/17091282.html