• 让创新无法想象。咨询热线:022-60709568
  • 关注我们

前端面试题

阅读:374 2019-03-19 14:41:50 来源:新网

1、javascript包括哪些数据类型,请分别编写3种以上类型的判断函数,如:isstring()?

字符串、数字、布尔、数组、对象、null、undefined

typeof,instanceof,isarray()?

2、编写一个javascript函数,实时显示当前时间,格式”年—月—日时:分:秒?

="en">="utf-8">

document="show"style="width:300px;">

3、如何显示/隐藏一个dom元素?

答案:显示:object.style.display="block";

隐藏:object.style.display="none";

4、如何添加html元素的事件处理,有几种方法?

答案:html的元素的事件就只用控件自带的的那么几个,如onclick,onmouserdown,..等等都是调用脚本执行

方法:1、在空间上写直接激发事件

2、在页面加载的时候就调用脚本激发控件的某个事件

3、在后台利用后台代码强行执行控件的事件。

或:

(1)为html元素的事件属性赋值

(2)在js中使用ele.on***=function(){…}

(3)使用dom2的添加事件的方法addeventlistener或attachevent

5、如何控制alert中的换行?

答案:nalert("textntext");

alert("再打个招呼。这里演示了"+"n"+"如何在消息框中添加折行。")

6、判断一个字符串中出现次数最多的字符,统计这个次数

="en">="utf-8">

document

7、判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20.

varreg=/^[a-za-z][a-za-z_0-9]{4,19}$/;

reg.test("a1a__a1a__a1a__a1a__");

8、请编写一个javascript函数parsequerystring,它的用途是把url参数解析为一个对象,如varurl="http://witmax.cn/index.php?key0=0&key1=1&key2=2";

="en">="utf-8">

document

9、在页面中有如下html:="firld">

="text"value="username">

="red">

需求用闭包方式写一个js,从文本框中取出值,并在标签span中显示出来。

="en">="utf-8">

document="firld">="text"value="username">

="red"class="red">

10、在ie6.0下面是不支持position:fixed的,请写一个js使用="box">固定在页面的右下角。

="en">="utf-8">

document="box"class="tit">

11、请实现,鼠标移到页面中的任意标签,展示出这个标签的基本矩形轮廓。

="en">="utf-8">

document="box"class="tit">="tit">555

="tit"href="www.baidu.com"alt="www.baidu.com">

12、js的基础对象有哪些,window和document的常用的方法和属性列出来。

string,number,boolean

window:

方法:setinterval,settimeout,clearinterval,cleartimeout,alert,confirm,open

属性:name,parent,screenleft,screentop,self,top,status

document

方法:createelement,execcommand,getelementbyid,getelementsbyname,getelementbytagname,write,writeln

属性:cookie,doctype,domain,documentelement,readystate,url,

13、javascript中如何对一个对象进行深度clone

functioncloneobject(o){if(!o||'object'!==typeofo){returno;}varc='function'===typeofo.pop?[]:{};varp,v;for(pino){if(o.hasownproperty(p)){v=o[p];if(v&&'object'===typeofv){c[p]=ext.ux.clone(v);}else{c[p]=v;}}}returnc;};

14、js中如何定义class,如何扩展prototype?

ele.classname=“***”;//***在css中定义,形式如下:.***{…}

a.prototype.b=c;

a是某个构造函数的名字

b是这个构造函数的属性

c是想要定义的属性的值

15、ajax是什么?ajax的交互模型?同步和异步的区别?如何解决跨域问题?

ajax是多种技术组合起来的一种浏览器和服务器交互技术,基本思想是允许一个互联网浏览器向一个远程页面/服务做异步的http调用,并且用收到的数据来更新一个当前web页面而不必刷新整个页面。该技术能够改进客户端的体验。包含的技术:

xhtml:对应w3c的xhtml规范,目前是xhtml1.0。

css:对应w3c的css规范,目前是css2.0

dom:这里的dom主要是指htmldom,xmldom包括在下面的xml中

javascript:对应于ecma的ecmascript规范

xml:对应w3c的xmldom、xslt、xpath等等规范

xmlhttprequest:对应whatwg的webapplications1.0规范(http://whatwg.org/specs/web-apps/current-work/)

ajax交互模型

同步:脚本会停留并等待服务器发送回复然后再继续

异步:脚本允许页面继续其进程并处理可能的回复

跨域问题简单的理解就是因为js同源策略的限制,a.com域名下的js无法操作b.com或c.a.com下的对象,具体场景如下:

ps:(1)如果是端口或者协议造成的跨域问题前端是无能为力的

(2)在跨域问题上,域仅仅通过url的首部来识别而不会尝试判断相同的ip地址对应的域或者两个域是否对应一个ip

前端对于跨域的解决办法:

(1)document.domain+iframe

(2)动态创建script标签

16、请给出异步加载js方案,不少于两种。

默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页头会导致加载很慢的话,是会严重影响用户体验的。

异步加载方式:

(1)defer,只支持ie

(2)async:

(3)创建script,插入到dom中,加载完毕后callback,见代码:functionloadscript(url,callback){varscript=document.createelement("script")script.type="text/javascript";if(script.readystate){//iescript.onreadystatechange=function(){if(script.readystate=="loaded"||script.readystate=="complete"){script.onreadystatechange=null;callback();}};}else{//others:firefox,safari,chrome,andoperascript.onload=function(){callback();};}script.src=url;document.body.appendchild(script);}

17、多浏览器检测通过什么?

(1)navigator.useragent

(2)不同浏览器的特性,如addeventlistener

18、讲述一下你所了解的前端开发的优化方式

分享

上一篇: Hibernate 缓存
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服