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,以及上网说的大部 ...
随机推荐
- 【工具】- HttpClient篇
简介 对于httpclient,相信很多人或多或少接触过,对于httpclient的使用姿势,相信很多人会有疑问?下面这边会通过代码说明 package xxx; import org.apache. ...
- Monster Audio 使用教程(四)Wifi 远程遥控
Android端下载二维码:(链接指向的是apk包地址,所以微信可能打不开,请用自带浏览器扫描二维码) IOS下载二维码: 安装好上面的app,确保你的移动端设备和你电脑连接的是同一个路由器(也就是 ...
- Spring bean初始化
- 关于ajaxSubmit传递参数 后台接收为"参数,参数”的问题
问题: 用户名密码往后台提交的时候,发现接收到的参数变成了下图 解决办法: 去掉ajaxSubmit的data属性 如下图 解释:因为ajaxSubmit在封装的时候会自动的从被form包裹的表单控件 ...
- CSS3选择器用法小结
1.*通配符选择器 eg:*{margin:0;padding:0;} 2.#id选择符 ID选择器是CSS中效率最高的选择器,使用的时候要保证ID的唯一性 eg:#div{width:960px;m ...
- [难题题解] [BZOJ1875] [SDOI2009] HH去散步
题目H有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是个喜欢变化的人 ...
- PHP 数据库 ODBC创建 ODBC 连接
PHP 数据库 ODBC ODBC 是一种应用程序编程接口(Application Programming Interface,API),使我们有能力连接到某个数据源(比如一个 MS Access 数 ...
- Python time tzset()方法
描述 Python time tzset() 根据环境变量TZ重新初始化时间相关设置.高佣联盟 www.cgewang.com 标准TZ环境变量格式: std offset [dst [offset ...
- PHP frenchtojd() 函数
------------恢复内容开始------------ 实例 把法国共和历法的日期转换为儒略日计数,然后再转换回法国共和历法的日期: <?php$jd=frenchtojd(3,3,14) ...
- stm32f407 oled iic例程,成功点亮oled屏
写了好久好久,写好多好多代码,终于把oled给驱起来了.话不多说,直接上图,欲要例程的,可以加我微 lichenpoo