21、js的基础对象有哪些?window和document的常用方法和属性列出来。
基础对象:Number、String、Boolean
window:
方法:setInterval、setTimeout、clearInterval、clearTimeout、alert、confirm、open
属性:name、parent、screenLeft、screenTop、self、top、status
document:
方法:createElement,getElementById、getElementsByClassName、getElementByTagName、write、writeln,execCommand
属性:cookie、doctype、domain、documentElement、readyState、URL
22、多浏览器检测通过什么?
(1)navigator,useAgent
(2)不同浏览器的特性,比如addEventListener
23、前端开发的优化问题
(1)减少http请求的次数:css sprites,data uri
(2)js,css源码压缩
(3)图片预载
(4)避免使用css Expression
(5)用hash-table来优化查找
(6)避免在页面布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢
(7)少用全局变量
(8)缓存DOM节点查找的结果
24、如何控制网页在网络传输中的数据量?
启用GZIP压缩
保持良好的编程习惯,避免重复的css javascript代码、多余的HTML标签和属性
25、flash、ajax各自的优缺点,在使用中如何取舍?
ajax优势:
可搜索型
开放性
费用
易用性
易于开发
flash优势:
多媒体处理
兼容性
矢量图形比SVG,canvas优势大很多
客户端资源调度,比如麦克风,摄像头
26、请给出异步加载js的方案,不少于两种
默认情况JavaScript是同步加载的,也就是说JavaScript的加载时阻塞的,后面的元素要等待JavaScript加载完毕后才能进行加载,对于一些意义不是很大的JavaScript,如果放在页头会导致加载很慢的话,是会严重影响用户体验的。
异步加载方式:
(1)defer,只支持ie
(2)async
(3)创建script,插入到DOM中,加载完毕后callback
function loadScript(url,callback){
var script =document.createElement(“script”);
scirpt.type=”text/javascript”;
if(script.readyState){//ie
script.onreadystatechange=function(){
scirpt.readyState=”loaded”||
script.readyState=”complete”){
scirpt.onreadystatechangee=null;
callback();
}
};
}else{
script.οnlοad=function(){
callback();
};
}
script.src=url;
document.body.appendChild(script);
}
27、ajax是什么?ajax的交互模型?同步和异步的区别?如何跨域解决问题?ajax是多种技术组合起来的一种浏览器和服务器交互技术,基本思想是允许一个互联网浏览器向一个远程页面/服务器做出异步的http调用,并且用收到的数据来更新一个当前web页面而不必刷新整个页面。该技术能够改进客户端体验。包含的技术:
XHTML
css
DOM
JavaScript
XML
xmlHttpRequest
同步:脚本会停留并等待服务器发送回复然后再继续
异步:脚本允许页面继续其进程并处理可能的回复
跨域问题简单的理解就是因为js的同源策略的限制,a.com域名下的js无法操作b.com或c.com下的对象
如果是端口或协议造成的跨域问题前端是无能为力的
在跨域问题上,域仅仅通过URL的首部来识别而不会尝试判断相同的IP地址对应的域或者两个域是否对应一个IP
前端对跨域的解决方法
(1)document.domain+iframe
(2)动态创建script标签
28、word-wrap、word-break、white-space总结
word-wrap:值break-word内容将在边界换行但是英文会按词断句换行
word-break:值break-all无论中英文都可以直接在单词内断句
值keep-all只能在半角空格或连字符处换行
white-space:值nowrap强制在同一行内显示所有文本,直到文本结束或遭遇br换行