zoukankan      html  css  js  c++  java
  • 前端知识小总结1

    前端工程师:最贴近用户的程序员,完成产品基本功能,并进一步优化,实现界面交互,提升用户体验,借助nodejs还可实现服务器端的一些事情。前端性能优化可以使产品从90分优化到100分。前端工程师参与项目,快速有效地完成效果图,与团队成员合作,与UI、产品经理等都需要沟通协作,做好页面结构、页面重构及用户体验,处理hack,兼容写出高效简洁的代码,针对服务器端优化,随时补充新技术,拥抱最新技术更新。

    1  对web标准的理解

    Web标准是一系列标准的组合,包含结构、表现、行为的标准,具体有:web标准要求书写标签必须闭合、标签小写、合理嵌套标签,提高搜索几率;建议使用外联js和css,实现结构、表现和行为的分离,提高页面渲染速度及页面加载速度;样式与标签的分离、更合理地语义化,使内容能被更多用户访问,降低后期维护成本;不需要变动页面内容即可打印版本而不需要复制内容,提高网站易用性。

    link和@import区别

    link:属于XHTML标签;加载页面时同时被加载;无兼容性问题;可以控制dom操作

    @import:属于CSS;页面加载完毕再加载;ie5以上可识别;不能控制dom操作

    3  html5新特性

    canvas、video、audio、article、footer、header、nav、section、date、webworker、websocket、

    4  标签语义化

       页面内容结构化,比较直观,便于对浏览器、搜索引擎解析,容易阅读。

       根据内容的结构化(内容语义化),选择合适的标签(代码语义化)

       在没有css的情况下也能表现很好的结构(内容结构和代码结构);有利于用户体验;有利于seo和搜索引擎建立良好的沟通;方便其他设备解析,以有意义的方式渲染页面;便于团队开发和维护,增加可读性。

    5  html5离线存储

       将一些源代码文件保存在本地,这样后续的页面重新加载将使用本地资源文件,在离线的情况下也可以访问web应用,同时通过一定的方法可以更新、删除离线存储等操作

    6  cookie、sessionStorage、localstorage区别

       Cookie:为持久保存客户端数据提供了方便,且分担了服务器存储负担,但也有不足,如存储空间小,每个域名下最多有20条cookie,每个cookie长度不超过4kB,否则会被截掉;安全性差,如果cookie被人拦截,将导致所有的session信息泄露,在浏览器和服务器之间来回传递。Cookie作用是与服务器进行交互,作为http规范的一部分存在。

       sessionStorage:会话级别的存储,数据在浏览器关闭之后消失,localStorage:持久化的本地存储,长期存储数据,浏览器关闭后数据不丢失;二者存储空间更大,有更多可用接口,有各自独立的存储空间。Web Storage(包括sessionStorage和localStorage)仅仅是为了在本地存储数据而生。

    7  display属性值

       None:此元素不会显示

       Inline:内联元素,前后没有换行符

       Inline-block:行内块元素

       Block:块级元素,前后有换行符

    8  position属性值

       Static:元素在正常流中

       Relative:相对定位,相对于其正常位置进行定位。还在文档流中。

       Absolute:绝对定位,相对于static定位以外的第一个父元素进行定位。Left、top、right、bottom。脱离文档流,不占据空间。

       Fixed:固定定位,相对于浏览器窗口进行定位。Left、top、right、bottom。脱离文档流。

    9  css3新特性

       Border-radius、box-shadow、text-shadow、gradient、transform:rotate() scale() translate() skew()

    10  css初始化

    不同浏览器对不同标签的默认属性值是有差距的,如果不对css初始化将导致不同浏览器上的显示效果不一致,因此考虑到浏览器的兼容性问题,需要css初始化。

    11  tcp、udp区别

       Tcp:面向连接、传输可靠、速度慢、开销大、用于传输大量数据

       Udp:面向非连接、传输不可靠、速度快、用于传输少量数据

    12  css样式优先级

       内联样式 》》 ID选择器 》》 类、伪类和属性选择器 》》 类型选择器和伪元素选择器 》》 通配符选择器(*)、子选择器(>)、相邻同胞选择器(+)

    13  浮动及清除浮动

      浮动:脱离文档流,不占据文档空间。浮动元素碰到包含它的边框或者浮动元素的边框则停留。

    浮动引起的问题:父元素的高度无法被撑开,影响与父元素同级的元素;与浮动元素同级的非浮动元素会紧跟其后;若非第一个元素浮动,该元素之前的元素也需要浮动,否则会影响页面显示的结构。

      清除浮动: 使用空标签,在所有浮动元素标签后面添加一个空标签,定义css为clear:both; 使用overflow,给包含浮动元素的父元素定义css为overflow:auto;zoom:1; 使用after伪对象,#layout:after{display:block;clear:both;content:” ”;visibility:hidden;height:0;}

       

    14  浏览器内核

       Trident内核:IE、360、搜狗浏览器

       Gecko内核:firefox、netscape6

       Presto内核:Opera7

       Webkit内核:Chrome

    15  盒子模型

    网页中的一个元素被描述成盒子模型,由元素内容、元素内边距、元素边框、元素外边界四部分组成。盒子模型分两种:IE盒子模型(border-box)、W3C盒子模型(content-box)。Css3中的box-sizing可以控制盒子的模型的解析模式,默认为content-box。其中,conten-box盒子模型,padding和border不被包含在定义的width和height之内,元素实际宽度为width+padding+border;而border-box盒子模型padding和border包含在定义的width之内,元素的实际宽度即为width。

    16  行内元素、块元素、空元素

       行内元素:a、b、span、img、input、strong、select、label、em、button、textarea

       块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote

       空元素:br、meta、hr、link、input、img

    17  src、href区别

      Src:指向外部链接的位置,指向的内容将会嵌入到文档中当前标签所在位置。在请求src资源时会将其指向的资源下载并应用到文档内,如js脚本,当浏览器解析到该元素时会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕。

      Href:指向网络资源所在位置,建立和当前元素或当前文档之间的链接,用于超链接。

    18  css hack

       针对不同浏览器写的不同的css,目的是为了浏览器的兼容

    19  px、em

       共同点:都是长度单位

       不同点:px是固定的,指定多少就是多少;em不是固定的,且em会继承父级元素的字体大小。

    Ps:浏览器的默认字体高为16px,未经调整的浏览器都符合1em=16px

    20 优雅降级、渐进增强

       优雅降级:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容

       渐进增强:针对低版本浏览器进行构建页面,保证基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

    21  i、em、b、strong标签,img的alt和title

       <i>标签将呈现斜体的文本;<em>把文本定义为斜体强调的内容。

       <b>标签定义粗体的文本;<strong>把文本定义为粗体语气更强的强调的内容。

       <em>表示强调,strong表示更强烈的强调;em用于局部强调,strong则全局强调;em是有顺序的、阅读到某处才会注意到,而strong强调是一种随意无序的、某个文字或界面突然凸显;

       Alt:在不能显示图片的时候,alt用来指定替换文字;title为设置该属性的元素提供建议性的信息。

    22 大量图片加载缓慢的处理方法

      图片懒加载,滚到相应位置才加载图片;图片预加载,将当前展示图片的前一张和后一张优先下载;使用css sprite;图片过大可以使用特殊的编码方式,加载时先加载一张压缩的特别厉害的缩略图。

    23  css中margin、padding

      Margin:外边界,元素之外,属于元素跟元素之间的距离,相邻元素的margin可以融合;

      Padding:内边距,元素之内,相邻元素的padding不可以融合。

    24  label

       Label标签定义表单控制间的关系,当用户选择该标签时,浏览器会自动聚焦到和标签相关的表单控件上。

    <label>Date:<input type=”text” /></label>

    25  css选择器

       ID选择器(#myid)、类选择器(.myclassname)、标签选择器(div、h1)、相邻选择器(h1-p)、子选择器(ul>li)、后代选择器(li a)、通配符选择器(*)、属性选择器(a[rel=”external”])、伪类选择器(a:hover,li:nth-child)、

    26  浮动、绝对定位、固定定位将导致脱离文档流。

    27  css层叠

       Css样式之间可能会有交叉的部分,这就会涉及到样式的优先级问题,样式的权重问题,内联样式》》内部样式》》外部样式》》浏览器用户自定义样式》》浏览器默认样式

       ID选择器》》class选择器》》元素选择器

    28  display:none; visibility:hidden;

    display:none;隐藏对应的元素,在文档布局中不再分配空间,它各边的元素会靠拢,就当它不存在;引发回流和重绘。其内的标签元素全部隐藏。

    visibility:hidden;隐藏对应的元素,但是在文档布局中仍然保留原有的空间;无回流和重绘。其元素若添加visibility:visible;则会显示出来。

    29  position的fixed和absolute

       共同点:改变行内元素的呈现方式,display设置为block;让元素脱离文档流,不再占据空间;默认会覆盖到非定位元素上。

       不同点:absolute的根元素是可以设置的,而fixed的根元素固定为浏览器窗口,当滚到页面时,fixed元素与浏览器窗口之间的距离是不变的。

    30  doctype文档类型

       HTML4.01规定三种:strict、Transitional、Frameset

       XHTML1.0规定三种:Strict、Transitional、Frameset

      

    31  h5文档头只需要写<!Doctype>原因

       H5不基于SGML(标准通用标记语言),因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(即让浏览器按照他们应该的方式来运行);而HTML4.01基于SGML,因此需要DTD进行引用,才能告知浏览器文档所使用的文档类型。

    32  css可以通过哪些属性定义使得一个dom元素不显示在浏览器可视范围内

      Display:none;visibility:hidden;

      设置宽高为0,设置透明度为0,设置z-index位置为-1000

    33  被点击访问过的hover样式不再出现的问题及解决方法

      被点击访问过的超链接样式不再具有hover和active。可以更改css属性的排列顺序:(L-V-H-A)

    34  居中

      Margin:0 auto;

      Position:absolute;left:50%;transfrom:translateX(-50%);

      Position:absolute;left:50%;width:200px;margin-left:-100px;

    Position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;

    Position:relative;left:50%;width:300px;margin-left:-150px;background-color:pink;

    35  cookie、session

      Cookie数据存放在客户的服务器上,session数据放在服务器上;cookie没有session安全;session会在一定时间内保存在服务器上,当访问增多时可能导致服务器性能下降,应当使用cookie;单个cookie保存的数据不能超过4k。

    36  性能优化问题

      代码层面:避免使用css表达式,避免使用高级选择器、通配符选择器

      缓存利用:缓存ajax,使用CDN,使用外部js和css以便缓存,添加expires头,服务端配置Etag,减少dns查找

      请求数量:合并样式和脚本,使用css精灵,图片懒加载。静态资源延迟加载

      请求带宽:压缩文件,开启GZIP

      面向内容的优化:减少http请求;减少DNS查找;避免重定向;使用ajax缓存;延迟载入组件;预先载入组件;减少DOM元素数量;切分组件到多个域;最小化iframe数量。

      面向servlet:缩小cookie;针对web组件使用域无关性。

      减少http请求优点:减少DNS请求所耗费的时间、减少服务器压力、减少http请求头

    减少http请求方法:图片映射;css精灵;合并样式和脚本;静态文件资源缓存

    37 栈、队列

      栈:插入和删除都在一端进行;栈先进后出;

      队列:插入删除在两端进行;队列先进先出;

    38 栈、堆

      栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值;一种先进后出的数据结构;

      堆区:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收;堆可以看成一棵树;

    39  闭包

      使用闭包目的:为了设计私有变量和方法。

      优点:可以避免全局变量的污染。

      缺点:闭包会常占内存,增大内存使用量,使用不当很容易造成内存泄露。

      特性:函数嵌套函数;函数内部可以引用外部的参数和变量;参数和变量不会被垃圾回收机制回收。

    40  JavaScript中每一个构造函数都有一个prototype属性,指向另一个对象,这个对象的所有属性和方法,都会被构造函数的实例继承。这意味着,我们可以把那些不变的属性和方法直接定义在prototype对象上。

    41  HTTPS、http

       http是超文本传输协议,用来在网络上传输超文本的传送协议,信息是明文传输;而HTTPS是具有安全性的ssl加密传输协议,安全超文本传输协议,对数据进行压缩和解压操作并返回网络上传回的结果。

      http端口号是80,而HTTPS端口号是443.

      http是面向无连接的,无状态的,不安全的;而HTTPS由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

      http是由http://开头,而HTTPS则以https://开头

      OSI模型中,http工作在应用层,HTTPS工作在传输层。

      http无需证书;而HTTPS需要CA机构颁发的ssl证书。

    42  GET、POST

       GET一般用于信息获取,使用URL传递参数,,对所发送信息的数量有限制,一般在2000个字符;而POST一般用于修改服务器上的资源,对所发送的信息没有限制。

      Get需要使用Request.QueryString获取变量的值,而POST方式通过Request.Form获取变量的值。即get通过地址栏来传值,而POST通过提交表单来传值。

      Ps:以下情况请使用POST》无法使用缓存文件;向服务器发送大量数据;发送包含未知字符的用户输入时候(POST比get更稳定可靠)

    43  事件

      可以被JavaScript侦测到的行为称为事件。

      事件处理机制:IE是时间冒泡;Firefox是事件捕获和事件冒泡。

      阻止冒泡:ev.stopPropagation(); 旧IE方法:ev.cancelBubble=true;||ev.stopPropagation();

    44  重构

       在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。即在不改变UI的前提下对网站进行优化,在扩展的同时保持一致的UI。

       重构方法:表格布局改为div+css;网站前端兼容于现代浏览器;对于移动平台的优化;针对SEO优化(搜索引擎优化);减少代码间的耦合;让代码保持弹性;规范编码;设计可扩展的API;压缩js、css、image等前端资源;使用cdn加速资源加载;http服务器的文件缓存;

    45  http状态码

       100  继续;200  ok; 201 请求成功且服务器创建了新的资源;202 服务器已接受请求但尚未处理;301 请求的网页永久移动到新的位置;302 临时重定向;303 临时重定向且总是使用get请求新的URI; 304 自从上次请求后,请求的网页未修改过;400 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求;401 请求未授权; 403 禁止访问; 404 找不到与URI匹配的资源; 500 最常见的服务器端错误; 503 服务器端暂时无法处理请求;

    46  删除一个cookie

      首先,将时间设为当前时间往前一点:

    Var  date=new Date();

    Date.setDate(date.getDate()-1);

    setDate()方法用于设置一个月的一天

    然后,expires的设置:

    Document.cookie=’user=’+encodeURIComponent(‘name’)+’;expires=’+new Date(0)

    47  document.write()

       document.write()方法可以用在两个方面:页面载入过程中用实时脚本创建页面内容,以及用延时脚本创建本窗口或新窗口的内容。

       document.write()只能重绘整个页面,而innerHTML可以重绘页面的一部分。

    48  git fetch、git pull

       git fetch:从远程获取最新版本到本地,不会自动merge

    git pull:从远程获取最新版本并merge到本地

    49  事件代理

       又名事件委托,是JavaScript中常用绑定事件的技巧,即把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。事件代理的原理是dom元素的事件冒泡。使用事件代理可以提高性能。

    50  attribute、property

    Attribute:dom元素在文档中作为html标签拥有的属性

    Property:dom元素在js中作为对象拥有的属性

    51  网络七层模型(从下到上)

    物理层:通过媒介传输比特,确定机械及电气规范;(比特Bit)

    数据链路层:将比特组装成帧和点到点的传递;(帧Frame)

    网络层:负责数据包从源到宿的传递和网际互联;(包Packet)

    传输层:提供端到端的可靠报文传递和错误恢复;(段Segment)

    会话层:建立、管理和终止会话;(会话协议数据单元SPDU)

    表示层:对数据进行翻译、加密和压缩;(表示协议数据单元PPDU)

    应用层:允许访问OSI环境的手段;(应用协议数据单元APDU)

    52  dom操作

      创建新节点:

    createDocumentFragment()//创建一个dom片段

      createElement()//创建一个具体的元素

      createTextNode()//创建一个文本节点

      添加、移除、替换、插入

      appendChild()、removeChild()、replaceChild()、insertBefore()

     查找

     getElementById()、getElementsByTagName()、getElementsByName()

    53  null、undefined

       Null表示无的对象,转化为数值时为0;undefined是一个表示无的原始值,转化为数值时为NaN。当声明的变量还未被初始化时,变量的默认值为undefined。Null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。Undefined表示缺少值,表示此处应该有一个值,只是还没有定义。(变量被声明了,但还没赋值;调用函数时应该提供的参数没有提供,该参数属于undefined;对象没有赋值的属性,则属性的值为undefined;函数没有返回值时,默认返回undefined。)null表示没有对象,即在此处不该有值。( 作为函数的参数表示该函数的参数不是对象;作为对象原型链的终点。)

    54  new操作符具体做了什么

       首先,创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型;然后属性和方法被加入到this引用的对象中;接着,新创建的对象由this所引用,且最后隐式地返回this。

    55  内存泄露

       内存泄漏:指任何对象在你不再拥有或需要它之后仍然存在。垃圾回收器会定期扫描对象,并计算引用了每个对象的其他对象的数量,如果一个对象的引用数量为0,或该对象的唯一引用是循环的,则该对象的内存即可回收。

       setTimeout的第一个参数使用字符串而非函数时会引发内存泄露;闭包、控制台日志、循环都可能引起内存泄露。

    56  JavaScript对象的创建方式

      工厂模式:

      构造函数模式:

      原型模式:

      混合构造函数和原型模式:

      动态原型模式:

      寄生构造函数模式:

      稳妥构造函数模式:

      

    57  JavaScript继承方法

      原型链继承:

      借用构造函数继承:

       

      组合继承(原型+构造函数):

      原型式继承:

      寄生式继承:

      寄生组合式继承:

    58  同源策略

         协议、域名、端口相同,是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。

    59  原型、原型链

    60

    未完待续。。。。。。

    宝剑锋从磨砺出,梅花香自苦寒来。
  • 相关阅读:
    发现了一个开源的sip软电话项目(C#)
    有没有.Net下的开源工作流框架推荐
    C#生成32位MD5加密
    web安全问题与Safe3 Web应用防火墙
    Safe3网页防篡改系统 v4.0
    C和C++混合编程问题
    Safe3 WEB安全网关linux 3.1版
    Dns信息收集工具集合
    lizamoon.com挂马解决办法
    Safe3网站安全网关 3.1发布
  • 原文地址:https://www.cnblogs.com/haimengqingyuan/p/6390216.html
Copyright © 2011-2022 走看看