js、jQuery、ajax面试题
1.javascript的typeof返回哪些数据类型.
答案:string,boolean,number,undefined,function,object
2.例举3种强制类型转换和2种隐式类型转换?
答案:强制(parseInt,parseFloat,number)
隐式(=====)
3.split()join()的区别
答案:前者是将字符串切割成数组的形式,后者是将数组转换成字符串
4.数组方法pop()push()unshift()shift()
答案:push()尾部添加pop()尾部删除
unshift()头部添加shift()头部删除
5.IE和标准下有哪些兼容性的写法
答案:
Var ev=ev||window.event
document.documentElement.clientWidth||document.body.clientWidth
Var target=ev.srcElement||ev.target
6.ajax请求的时候get和post方式的区别
答案:1、一个在url后面,一个放在虚拟载体里面
2、get有大小限制(只能提交少量参数)
3、安全问题
4、应用不同,请求数据和提交数据
7.call和apply的区别
答案:Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
8.ajax请求时,如何解析json数据
答案:使用JSON.parse
9.事件委托是什么
答案:利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
10.闭包是什么,有什么特性,对页面有什么影响
答案:闭包就是能够读取其他函数内部变量的函数,使得函数不被GC回收,如果过多使用闭包,容易导致内存泄露
11.如何阻止事件冒泡
答案:ie:阻止冒泡ev.cancelBubble=true;非IEev.stopPropagation();
12.如何阻止默认事件
答案:(1)return false;(2)ev.preventDefault();
13.添加删除替换插入到某个接点的方法
答案:
1)创建新节点
createElement()//创建一个具体的元素
createTextNode()//创建一个文本节点
2)添加、移除、替换、插入
appendChild()//添加
removeChild()//移除
replaceChild()//替换
insertBefore()//插入
3)查找
getElementsByTagName()//通过标签名称
getElementsByName()//通过元素的Name属性的值
getElementById()//通过元素Id,唯一性
14.解释jsonp的原理,以及为什么不是真正的ajax
答案:动态创建script标签,回调函数
Ajax是页面无刷新请求数据操作
15.document load和document ready的区别
答案:document.onload是在结构和样式,外部js以及图片加载完才执行js
document.ready是dom树创建完成就执行的方法,原生种没有这个方法,
jquery中有$().ready(function)
16.””和“=”的不同
答案:前者会自动转换类型,再判断是否相等
后者不会自动类型转换,直接去比较
17.函数声明与函数表达式的区别?
答案:在Javscript中,解析器在向执行环境中加载数据时,对函数声明和函数表达式并非是一视同仁的,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解析执行。
18.对作用域上下文和this的理解,看下列代码:
varUser={
count:1,
getCount:function(){
return this.count;
}
};
console.log(User.getCount());
var func=User.getCount;
console.log(func());
问两处console输出什么?为什么?
答案:是1和undefined。
func是在window的上下文中被执行的,所以不会访问到count属性。
19.看下面代码,给出输出结果。
for(vari=1;i<=3;i++){//建议使用let可正常输出i的值
setTimeout(function(){
console.log(i);
},0);
};
答案:4 4 4
原因:Javascript事件处理器在线程空闲之前不会运行。
20.当一个DOM节点被点击时候,我们希望能够执行一个函数,应该怎么做?
box.onlick=function(){}
box.addEventListener("click",function(){},false);
<buttononclick="xxx()"></button>
21.Javascript的事件流模型都有什么?
答案:1、“事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播
2、“事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的
3、“DOM事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡
22.看下列代码,输出什么?解释原因。
var a=null;
alert(typeof a);
答案:object
解释:null是一个只有一个值的数据类型,这个值就是null。表示一个空指针对象,所以用typeof检测会返回”object”。
23.判断字符串以字母开头,后面可以是数字,下划线,字母,长度为6-30
答案:Var reg=/^[a-zA-Z]\w{5,29}$/;
24.回答以下代码,alert的值分别是多少?
<script>
Var a=100;
functiontest(){
alert(a);
a=10;//去掉了var就变成定义了全局变量了
alert(a);
}
test();
alert(a);
</script>
正确答案:100,10,10
25.javaScript的2种变量范围有什么不同?
全局变量:当前页面内有效
局部变量:函数方法内有效
26.null和undefined的区别?
1、null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。
2、当声明的变量还未被初始化时,变量的默认值为undefined。null用来表示尚未存在的对象。
3、undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2)调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
null表示"没有对象",即该处不应该有值。典型用法是:
(1)作为函数的参数,表示该函数的参数不是对象。
(2)作为对象原型链的终点。
27.new操作符具体干了什么呢?
1、创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型。
2、属性和方法被加入到this引用的对象中。
3、新创建的对象由this所引用,并且最后隐式的返回this。
28.js延迟加载的方式有哪些?
defer和async、动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)、按需异步载入js
29.Flash、Ajax各自的优缺点,在使用中如何取舍?
Flashajax对比:
(1)Flash适合处理多媒体、矢量图形、访问机器;对CSS、处理文本上不足,不容易被搜索。
(2)ajax对CSS、文本支持很好,支持搜索;多媒体、矢量图形、机器访问不足。
共同点:与服务器的无刷新传递消息、用户离线和在线状态、操作DOM
30.写一个获取非行间样式的函数
functiongetStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}else{
getComputedStyle(obi,false)[attr];
}
}
js、jQuery、ajax面试题的更多相关文章
- JS jquery ajax 已看1 有用
4.form中的input可以设置为readonly和disable,请问2者有什么区别? readonly不可编辑,但可以选择和复制:值可以传递到后台 disabled不能编辑,不能复制,不能选择: ...
- 实现简单的PHP接口,以及使用js/jquery ajax技术调用此接口
主要介绍下如何编写简单的php接口,以及使用js/jquery的ajax技术调用此接口. Php接口文件(check.php): <?php $jsonp_supporter = $_GET[‘ ...
- NodeJ node.js Jquery Ajax 跨域请求
Jquery + Ajax 跨域请求 说白了就是前台请求ajax数据(JSON)但是请求的数据不在本地的绝对路径下,接口数据 是没有这个安全性的我对外公开的接口数据,只要你找到接口你就可以使用里面的数 ...
- jQuery.form.js jQuery ajax异步提交form
jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传. 官网下载地址:http://plugins.jquery.com/form/ API ajaxForm 增加所 ...
- Web基础 HTML CSS JS JQuery AJAX
1. Web基础 网页的骨骼HTML 什么是HTML超文本标记语言:Hyper Text Markup Language 这都不重要,重要的是:HTML是Web网页的基本组成部分HTML中定义的元素, ...
- 了解HTML/CSS/JS/JQuery/ajax等前端知识
什么是HTML 超文本标记语言 浏览器通过识别相应的标签来加载页面 通过HTTP协议传输,不是编程语言 HTML常用标签 title script style link meta link body ...
- JS JQuery Ajax 跨域 Post Soap webservice
呵呵 最近做一些HTML5的项目, 对于前段开发, 相信大家会碰到一个常见问题, 那就是Javascript跨域访问的问题. 话不多说 直接重点 当前网站和Webservice部署在同一个domain ...
- Jquery学习笔记 --ajax删除用户,使用了js原生ajax
主要复习了php的pdo数据库操作,和js的ajax,真麻烦,希望jquery的ajax简单点. index.php: 1 <!DOCTYPE html> 2 <html lang= ...
- JS原生ajax与Jquery插件ajax深入学习
序言: 近来随着项目的上线实施,稍微有点空闲,闲暇之时偶然发现之前写的关于javascript原生xmlHttpRequest ajax方法以及后来jquery插件ajax方法,于是就行了一些总结,因 ...
- prototype.js 和 jQuery.js中 ajax 的使用
这次还是prototype.js 和 jQuery.js冲突的问题,前面说到过解决办法http://www.cnblogs.com/Joanna-Yan/p/4836252.html,以及上网说的大部 ...
随机推荐
- WeChat 小程序开发
第一步 去微信公众号平台注册> 一个账号https://mp.weixin.qq.com/ 填写完后 会获得一个APPID 2. 点击工具下载微信开发者工具安装即可, 1 2 3 微信开发者工具 ...
- H5移动端,ios从后台返回到app,页面会白一下
visibilitychange事件可以检查从后台返回事件,然后通过添加div,强制浏览器刷新页面 var divEle = document.createElement("DIV" ...
- 本地ES集群数据通过_reindex方式迁移到腾讯云服务器(亲测有效)
本地ES集群数据通过_reindex方式迁移到腾讯云服务器(亲测有效) 随着业务量的增加,本地的ES集群服务器性能和磁盘空间有点不够使用,项目组考虑使用腾讯云服务器,以下是我测试的使用_reindex ...
- sqlite文件的建立和as的应用,
建立目录D:\android_projects\qrscan\app\src\main\assets把数据库文件d:\sqlite_files\device.db 拷贝到 D:\android_pro ...
- servlet执行
WEB编程阶段 在WEB编程中,我们可以通过浏览器访问WEB服务器上的资源.WEB服务器就是另一台计算机 浏览器的入口不同(访问路径),访问的资源也不同. 为了灵活实现的不同路径(/hello)执行不 ...
- 在CentOS 7 上为docker配置端口转发以兼容firewall
在CentOS 7上当我们以类似下列命令将主机端口与容器端口映射时可能遇到无法访问容器服务的问题 docker run --name web_a -p 192.168.1.250:803:80 -d ...
- 实现了__iter__和__next__的对象是迭代器
class MyList(object): """自定义的一个可迭代对象""" def __init__(self): self.items ...
- PHP date_offset_get() 函数
------------恢复内容开始------------ 实例 返回奥斯陆(在欧洲挪威)冬天和夏天相对于 UTC 的以秒计的时区偏移量: <?php$winter=date_create(& ...
- dsu on tree详解
这个算法还是挺人性化的,没有什么难度 就是可能看起来有点晕什么的. 大体 思想是 利用重链刨分来优化子树内部的查询. 考虑一个问题要对每个子树都要询问一次.我们暴力显然是\(n^2\)的. 考虑一下优 ...
- maven中的陌生单词
有个单词记不住啊: artifact:人工制品,手工艺品,加工品; 石器; 词根:fac,fact,fect,fic,fig=make,do,表示“做,制作” 因此 art i fact 意思很好 ...