200px;margin-right:
200px;background-color:
green;">22
第三种方法负margin值
maincontent
leftcontent
right
#main{
float:
left;
width:
100%;
}
#mainContainer{
margin:
0230px;
height:
200px;
background:
green;
}
#left{
float:
left;
margin-left:
-100%;
width:
230px}
#right{
float:
left;
margin-left:
-230px;
width:
230px;
}
#left.inner,
#right.inner{
background:
orange;
margin:
010px;
height:
200px;
}
20,js有几种数据类型?
其中基本数据类型有哪些?
基本数据类型有Boolean,undefined,null,number,string
应用类型有object,array,function
21,undefined和null的区别
Null代表空值,代表一个空对象指针,一个特殊的对象值
Undefined是未定义,类型也是undefined
22,http和https有什么区别?
如何灵活运用?
Http是http运行在TCP之上,传输内容是明文,客户端和服务器无法验证对方身份。
HTTPS是http运行在SSL/tls之上,SSL/tls运行在TCP上,所有内容都是经过加密。
加密采用对称加密,但是秘钥用服务器证书进行非对称加密。
服务器和客户端都是可以互相验证身份。
23,常见的Http状态码
2开头,请求成功,表示成功处理了请求的状态代码
3开头,请求重定向,表示完成请求,需要进一步操作,一般是重定向
4开头,请求错误,表示请求出错,妨碍了服务器的处理
5开头,这些状态码表示服务器在尝试处理请求时发生内部错误,服务器本身出错而不是请求出错
24,如何进行网站性能的优化
原因:
用户角度加载速度提高,更好的交互体验
服务商角度减少页面请求,降低带宽,节省资源
方法:
1,JavaScript优化和打包
2,按需加载资源
3,在使用DOM操作库时用上array-ids
4,缓存
5,启用HTTP/2
6,应用性能分析
7,使用负载均衡方案
8,同构
9,使用索引加快数据库查询
10,使用更快的转译方案
11,避免因JavaScript和css的使用而阻塞渲染
12,图片编码优化
25,react和vue有哪些不同,说说你对这两个框架的看法
相同点:
都支持服务器渲染
都有virtualDOM,组件化开发,通过props参数进行父子组件数据的传递,都实现了webComponent规范
数据驱动视图
都支持native方案,react的reactnative和vue的weex
不同点:
react严格上只针对MVC的view层,vue则是mvvm模式
VirtualDOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树,而对于react来说,每次应用状态被改变,全部组件都会被重新渲染,所以react需要shouldComponentUPdate这个生命周期函数来进行控制。
组件的写法不一样。
。
。
数据绑定,vue是双向的,react是单向的
State对象在react应用中不可变的,需要使用setstate方法更新状态,在vue中state对象对象不是必须的,数据由data属性在vue对象中管理
26,什么是mvvmmvc有什么区别,原理?
1,MVC(model-view-controller)
MVC是比较直观的架构模式,用户模式->view(负责接收用户的操作输入)->controller(业务逻辑处理)->view(将结果反馈给view)
2,MVVM(model-view-viewmodel)
将”数据模型数据双向绑定”的思想作为核心,因此model和view没有什么关系,之后痛过viewmodel进行交互,而model和viewmodel之间的交互是双向的,因此数据的视图的变化会同时修改数据源,而数据源的数据变化也会立刻反应view。
27,px和em的区别
Px表示像素,是一个绝对单位,不会因为其他元素而改变
Em表示相对于父元素的字体大小,em是相对单位,会受到其他元素的影响
28,优雅降级和渐进增强
渐进增强(向上兼容):
一开始就针对低版本浏览器进行构筑界面,完成基本功能,然后在针对高级浏览器进行效果,交互,追加功能达到更好的体验
优雅降级(向下兼容):
一开始就构建站点的完整功能,然后针对浏览器测试和修复。
29,eval()的作用
把字符串参数解析成JS代码并运行,并返回执行的结果;
例如:
eval(“2+3”);//执行加运算并返回执行的结果。
Eval(“varage=10”);//声明一个变量age
Eval()的作用域
Function(){
Eval(“varx=1”);//等效于varx=1;
Console.log(x);//输出1
}
a();
console.log(x);//错误,没有定义x
30,js哪些操作会泄露内存
1,意外的全局变量引起的内存泄漏
2,闭包引起的
3,没有清理DOM元素的应用
4,被遗忘的定时器或者回调
5,子元素存在引起的
31,浏览器缓存有哪些?
通常的缓存有哪几种?
1,HTTP缓存
2,Websql
3,Cookies
4,Localstorage
5,Sessionstorage
6,Flash缓存
32,bootstrap响应式原理
百分比布局+媒体查询
33,关于js事件冒泡与js时间代理(事件委托)
1,事件冒泡:
当一个子元素被触发时(如onclick),该事件会从事件源(被触发的子元素)开始逐级向上传播,出发父级元素的点击事件。
2,事件委托:
将子元素的事件通过冒泡的形式交由父元素来执行
例如:
1. var ul = document.getElementById('parentUl');
2. ul.onclick=function (event) {
3. var e = event||window.event,
4. source = e.target || e.srcElement;//target表示在事件冒泡中触发事件的源元素,在IE中是srcElement
5. if(source.nodeName.toLowerCase() == "li"){ //判断只有li触发的才会输出内容
6. alert(source.innerHTML);
7. }
8. stopPropagation(e); //阻止继续冒泡
9. };
10. function addElement() {
11. var li = document.createElement('li');
12. li.innerHTML="我是新孩子";
13. ul.appendChild(li);
14. }
34,css样式覆盖规则
规则一:
由于继承而发生样式冲突时,最近祖先获胜(就近原则);
规则二:
继承样式和直接指定的样式冲突时,直接指定的样式获胜
规则三:
直接指定样式发生冲突时,样式权值高的获胜;
规则四:
样式权值相等时,后者获胜。
规则五:
!
important的样式不被覆盖。
35,请简要描述margin重合问题以及解决方式
1,同向margin重叠
这时候重叠之后的margin值由发生重叠两片的最大值决定;如果其中一个出现负值,则由最大的正边距减去绝对值最大的负边距,如果没有最大正边距,则由0减去绝对值最大的负边距。
解决方法:
(1)在最外层的div中加入overflow:
hidden;zoom:
1;(zoom这个属性是ie专有属性,除了设置或者检索对象的缩放比例之外,它还有可以触发ie的haslayout属性,清除浮动,清除margin重叠等作用。
)
(2)在最外层加入padding:
1px;
(3)在最外层加入:
border:
1pxsolid#000000;
2,异向重叠问题:
Float:
left(ie6专属,或解决ie8+等浏览器的同向重叠问题)
36,position的值,relative\absolute\fixed分别相对于进行谁定位?
Absolute:
绝对定位相对于最近一级
Fixed:
绝对定位相对于浏览器窗口或frame进行定位
Relative:
相对定位相对于其在普通流的位置
Static:
默认值没有定位
Sticky:
粘性定位文档位置根据正常文档流计算得出
37,什么是闭包,如何使用,为什么使用?
闭包就是在函数内定义一个函数。
优点:
可以读取函数内部的变量这些变量的值始终保存在内存中
缺点:
内存消耗大且容易造成内存泄漏闭包会在父函数外部,改变父函数内部变量的值
38,请解释一下jsonp的工作原理,以及它为什么不是真正的ajax。
Jsonp是一个简单的跨域方式;HTML中的script标签可以加载并执行其他域的javascript,于是我们可以通过script标记来动态加载其他域的资源
JSONP易于实现,但是也会存在一些安全隐患,如果第三方的脚本随意地执行,那么它就可以篡改页面内容,截获敏感数据。
但是在受信任的双方传递数据,JSONP是非常合适的选择。
AJAX是不跨域的,而JSONP是一个是跨域的,还有就是二者接收参数形式不一样
39,请解释一下JavaScript的同源政策。
同源政策规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。
当两个域具有相同的协议,相同的端口,相同的host,那么我们就可以认为是相同的域。
40,怎样添加,移除,移动,复制,创建和查找节点?
1,创建新节点
Createdocumentfragment()//创建一个DOM片段
CreateElement()//创建一个具体的元素
CreateTextNode()//创建一个文本节点
2,添加,移除,替换,插入
Appendchild()//添加
Removechild()//移除
Replacechild()//替换
InsertBefo
展开阅读全文
相关搜索