CSS选择器有哪些?php
http://www.runoob.com/cssref/css-selectors.htmlcss
CSS中px、em、rem的区别?html
px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册)前端
PX特色html5
1. IE没法调整那些使用px做为单位的字体大小;web
2. 国外的大部分网站可以调整的缘由在于其使用了em或rem做为字体单位;ajax
3. Firefox可以调整px和em,rem,可是96%以上的中国网民使用IE浏览器(或内核)。算法
em是相对长度单位,相对于当前对象内文本的字体尺寸,如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册)数据库
(任意浏览器的默认字体高都是16px。全部未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,须要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只须要将你的原来的px数值除以10,而后换上em做为单位就好了。)api
EM特色
1. em的值并非固定的;
2. em会继承父级元素的字体大小
因此咱们在写CSS的时候,须要注意两点:
1. body选择器中声明Font-size=62.5%;
2. 将你的原来的px数值除以10,而后换上em做为单位;
3. 从新计算那些被放大的字体的em数值。避免字体大小的重复声明。
rem是CSS3新增的一个相对单位(root em,根em),这个单位引发了普遍关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优势于一身,经过它既能够作到只修改根元素就成比例地调整全部字体大小,又能够避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,全部浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。
.addClass(“className”)方法是用来给指定元素增长类名,也就是说给指定的元素追加样式;
.removeClass(“className”)方法是用来给指定的元素移除类名,也就是说给指定元素移除样式;
.toggleClass(“className”)方法是用来给脂定的元素增长或移除类名(若是元素的类名存在就移除,若是不存在就增长),也就是说用来给指定的元素进行样式切换(若是元素存在样式则去掉,若是不存在则加上样式)。
JS有哪些数据类型?
1,基本类型:字符串类型(string),数字类型(number),布尔类型(boolean)
2,复杂类型:数组类型(array),对象类型(object),函数类型(function),正则类型(regexp)
3,空类型:undefine 和 null
字符串转数字类型方法:1,加减乘除取余 接字符串 隐士转换
2,parseInt(字符串) 转为整数
3,parseFloat(字符串) 转为浮点数类型
4,number (字符串)
数字转字符串类型方法:1,.toString()
2.string() 通常用于转换NAN和 undefine
3.链接符+号
字符串或数字转boolean类型: boolean(字符串) 除false NaN 空字符串 数字0 和undefine 其他转换后都是true
最基本的区别:
1.执行时间
window.onload必须等到页面内包括图片的全部元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,没必要等到加载完毕。
2.编写个数不一样
window.onload不能同时编写多个,若是有多个window.onload方法,只会执行一个
$(document).ready()能够同时编写多个,而且均可以获得执行
3.简化写法
window.onload没有简化写法
$(document).ready(function(){})能够简写成$(function(){});
http://www.javashuo.com/article/p-ratdfbyc-bn.html
setTimeout与setInterval的主要区别?
setTimeout()方法只运行一次,也就是说当达到设定的时间后就出发运行指定的代码,运行完后就结束了,若是还想再次执行一样的函数,能够在函数体内再次调用setTimeout(),能够达到循环调用的效果。
setInterval()是循环执行的,即每达到指定的时间间隔就执行相应的函数或者表达式,是真正的定时器。
get和post的区别?
get把请求的数据放在url上,即HTTP协议头上,其格式为: 以?分割URL和传输数据,参数之间以&相连。 数据若是是英文字母/数字,原样发送, 若是是空格,转换为+, 若是是中文/其余字符,则直接把字符串用BASE64加密,及“%”加上“字符串的16进制ASCII码”。
post把数据放在HTTP的包体内(requrest body)。
get提交的数据最大是2k(原则上url长度无限制,那么get提交的数据也没有限制咯?限制实际上取决于浏览器,(大多数)浏览器一般都会限制url长度在2K个字节,即便(大多数)服务器最多处理64K大小的url。也没有卵用。)。
post理论上没有限制。实际上IIS4中最大量为80KB,IIS5中为100KB。
GET产生一个TCP数据包,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
GET在浏览器回退时是无害的,POST会再次提交请求。
GET产生的URL地址能够被Bookmark,而POST不能够。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
GET只接受ASCII字符的参数的数据类型,而POST没有限制
那么,post那么好为何还用get?get效率高!。
如何实现浏览器内多个标签页之间的通讯?
方法一:localstorge在一个标签页里被添加、修改或删除时,都会触发一个storage事件,经过在另外一个标签页里监听storage事件,便可获得localstorge存储的值,实现不一样标签页之间的通讯。
方法二:使用cookie+setInterval,将要传递的信息存储在cookie中,每隔必定时间读取cookie信息,便可随时获取要传递的信息。
token、session的区别?
session:session 从字面上讲,就是会话。这个就相似于你和一我的交谈,你怎么知道当前和你交谈的是张三而不是李四呢?对方确定有某种特征(长相等)代表他就是张三。
session 也是相似的道理,服务器要知道当前发请求给本身的是谁。为了作这种区分,服务器就要给每一个客户端分配不一样的“身份标识”,而后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。至于客户端怎么保存这个“身份标识”,能够有不少种方式,对于浏览器客户端,你们都默认采用 cookie 的方式。
服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来讲更安全,但是session有一个缺陷:若是web服务器作了负载均衡,那么下一个操做请求到了另外一台服务器的时候session会丢失。
token:
Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并做出相应提示,在这样的背景下,Token便应运而生。
Token的定义:Token是服务端生成的一串字符串,以做客户端进行请求的一个令牌,当第一次登陆后,服务器生成一个Token便将此Token返回给客户端,之后客户端只需带上这个Token前来请求数据便可,无需再次带上用户名和密码。最简单的token组成:uid(用户惟一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成必定长的十六进制字符串,能够防止恶意第三方拼接token请求服务器)。
使用Token的目的:Token的目的是为了减轻服务器的压力,减小频繁的查询数据库,使服务器更加健壮。
cookie,localStorage和sessionStorage的区别?
共同点:都是保存在浏览器端、且同源的
区别:
一、cookie数据始终在同源的http请求中携带(即便不须要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,能够限制cookie只属于某个路径下
二、存储大小限制也不一样,cookie数据不能超过4K,同时由于每次http请求都会携带cookie、因此cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,能够达到5M或更大
三、数据有效期不一样,sessionStorage:仅在当前浏览器窗口关闭以前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,所以用做持久数据;cookie:只在设置的cookie过时时间以前有效,即便窗口关闭或浏览器关闭
四、做用域不一样,sessionStorage不在不一样的浏览器窗口中共享,即便是同一个页面;localstorage在全部同源窗口中都是共享的;cookie也是在全部同源窗口中都是共享的
五、web Storage支持事件通知机制,能够将数据更新的通知发送给监听者
六、web Storage的api接口使用更方便
HTTP1.0、HTTP1.1 和 HTTP2.0 的区别?
一、HTTP的历史
早在 HTTP 创建之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。也是说对于前端来讲,咱们所写的HTML页面将要放在咱们的 web 服务器上,用户端经过浏览器访问url地址来获取网页的显示内容,可是到了 WEB2.0 以来,咱们的页面变得复杂,不只仅单纯的是一些简单的文字和图片,同时咱们的 HTML 页面有了 CSS,Javascript,来丰富咱们的页面展现,当 ajax 的出现,咱们又多了一种向服务器端获取数据的方法,这些其实都是基于 HTTP 协议的。一样到了移动互联网时代,咱们页面能够跑在手机端浏览器里面,可是和 PC 相比,手机端的网络状况更加复杂,这使得咱们开始了不起不对 HTTP 进行深刻理解并不断优化过程当中
详细介绍:https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A
http和https的区别?https的原理?
http://www.javashuo.com/article/p-vcsaiego-be.html
http://www.javashuo.com/article/p-uezhapqn-bb.html
ES7在ES6的基础上主要添加了两项内容:
ES8特性:
主要新功能:
次要新功能:
对HTML5 websocket的了解?
WebSocket 是 HTML5 开始提供的一种在单个 TCP 链接上进行全双工通信的协议。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,容许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只须要完成一次握手,二者之间就直接能够建立持久性的链接,并进行双向数据传输。
在 WebSocket API 中,浏览器和服务器只须要作一个握手的动做,而后,浏览器和服务器之间就造成了一条快速通道。二者之间就直接能够数据互相传送。
如今,不少网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,而后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器须要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费不少的带宽等资源。
HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,而且可以更实时地进行通信。
浏览器经过 JavaScript 向服务器发出创建 WebSocket 链接的请求,链接创建之后,客户端和服务器端就能够经过 TCP 链接直接交换数据。
当你获取 Web Socket 链接后,你能够经过 send() 方法来向服务器发送数据,并经过 onmessage 事件来接收服务器返回的数据。
http://www.runoob.com/html/html5-websocket.html
React_Flux入门