1.几种基本数据类型复杂数据类型值类型和引用数据类型堆栈数据结构
3.判断数据类型
4.异步编程?
5.事件流事件捕获?事件冒泡?
6.如何清除一个定时器
7.如何添加一个dom对象到body中innerHTML和innerText区别
8.数据持久化技术(ajax)简述ajax流程
9.回调函数
10.什么是闭包*堆栈溢出有什么区别?内存泄漏那些操作会造成内存泄漏?怎么样防止内存泄漏?
11.平时工作中怎么样进行数据交互如果后台没有提供数据怎么样进行开发mock数据与后台返回的格式不同意怎么办
12简述ajax执行流程
1
2
3
4
5
6
7
基本步骤:varxhr=null;//创建对象
if(window.XMLHttpRequest){
xhr=newXMLHttpRequest();}else{
xhr=newActiveXObject("Microsoft.XMLHTTP");}xhr.open(“方式”,”地址”,”标志位”);//初始化请求
xhr.onreadystatechange=function(){}//指定回调函数
xhr.send();//发送请求
13.自执行函数用于什么场景?好处
14.html和xhtml有什么区别
15.什么是构造函数?与普通函数有什么区别
16.通过new创建一个对象的时候,函数内部有哪些改变
functionPerson(){}Person.prototype.friend=[];Person.prototype.name='';//vara=newPerson();//a.friend[0]='王琦';//a.name='程娇';//varb=newPerson();//b.friend?//b.name
17.事件委托?有什么好处
18.window.onload==DOMContentLoaded
19.节点类型判断当前节点类型
20.如何合并两个数组?数组删除一个元素
8
9
10
11
12
13
14
//三种方法。(1)vararr1=[1,2,3];
vararr2=[4,5,6];
arr1=arr1.concat(arr2);
console.log(arr1);
(2)vararr1=[1,2,3];
Array.prototype.push.apply(arr1,arr2);
(3)vararr1=[1,2,3];
for(vari=0;i arr1.push(arr2[i]); } 21.强制转换显式转换隐式转换 //强制类型转换: Boolean(0)//=>false-零 Boolean(newobject())//=>true-对象 Number(undefined)//=>NaN Number(null)//=>0 String(null)//=>"null" parseInt() parseFloat() JSON.parse() JSON.stringify() 22.Jq中如何实现多库并存 23.Jq中get和eq有什么区别? 24.如何通过原生js判断一个元素当前是显示还是隐藏状态 if(document.getElementById("div").css("display")==='none') if(document.getElementById("div").css("display")==='block') $("#div").is(":hidden");//判断是否隐藏 $("#div").is(":visible") 25.Jq如何判断元素显示隐藏? 15 16 17 18 19 //第一种:使用CSS属性 vardisplay=$('#id').css('display'); if(display=='none'){alert("我是隐藏的!");} //第二种:使用jquery内置选择器 仅仅是测试所用
if($("#test").is(":hidden")){
$("#test").show();
//如果元素为隐藏,则将它显现
}else{
$("#test").hide();
//如果元素为显现,则将其隐藏
//第三种:jQuery判断元素是否显示是否隐藏
varnode=$('#id');
if(node.is(':hidden')){//如果node是隐藏的则显示node元素,否则隐藏
node.show();
node.hide();
26.移动端上什么是点击穿透
27.Jq绑定事件的几种方式?onbind
28.Jq中如何将一个jq对象转化为dom对象?
29.Jq中有几种选择器分别是什么
30.Jq中怎么样编写插件
20
21
22
23
24
25
26
27
28
29
//第一种是类级别的插件开发://1.1添加一个新的全局函数添加一个全局函数,我们只需如下定义:
jQuery.foo=function(){
alert('Thisisatest.Thisisonlyatest.');};//1.2增加多个全局函数添加多个全局函数,可采用如下定义:
alert('Thisisatest.Thisisonlyatest.');};jQuery.bar=function(param){
alert('Thisfunctiontakesaparameter,whichis"'+param+'".');};调用时和一个函数的一样的:jQuery.foo();jQuery.bar();或者$.foo();$.bar('bar');//1.3使用jQuery.extend(object);
jQuery.extend({
foo:function(){
alert('Thisisatest.Thisisonlyatest.');
},
bar:function(param){
alert('Thisfunctiontakesaparameter,whichis"'+param+'".');
});//1.4使用命名空间//虽然在jQuery命名空间中,我们禁止使用了大量的javaScript函数名和变量名。//但是仍然不可避免某些函数或变量名将于其他jQuery插件冲突,因此我们习惯将一些方法//封装到另一个自定义的命名空间。jQuery.myPlugin={foo:function(){
}};//采用命名空间的函数仍然是全局函数,调用时采用的方法:
$.myPlugin.foo();$.myPlugin.bar('baz');//通过这个技巧(使用独立的插件名),我们可以避免命名空间内函数的冲突。//第二种是对象级别的插件开发//形式1:
(function($){
$.fn.extend({
pluginName:function(opt,callback){
//Ourpluginimplementationcodegoeshere.
})})(jQuery);//形式2:(function($){
$.fn.pluginName=function(){
};})(jQuery);//形参是$,函数定义完成之后,把jQuery这个实参传递进去.立即调用执行。//这样的好处是,我们在写jQuery插件时,也可以使用$这个别名,而不会与prototype引起冲突
31.$('p+.ab')和$('.ab+p')哪个效率高?
32.$.map和$.each有什么区别
33.编写一个getElementsByClassName封装函数
30
31
32
33
34
35
36
37
38
39
40
41
42
34.简述下工作流程
35.一般使用什么版本控制工具svn如何对文件加锁
36.git和svn的区别
37.jquery和zepto有什么区别
38.$(function(){})和window.onload和$(document).ready(function(){})
39.Jq中attr和prop有什么区别
40.简述下this和定义属性和方法的时候有什么区别Prototype?
41.什么是预编译语音|预编译处理器
42.ajax和jsonp?
43.ajax执行流程?
44.xhr对象statusreadystate
45.readystate0~4
47.上一个项目是什么?主要负责哪些?购物车流程支付功能
48.sessionStorage和localstroage与cookie之间有什么关联,cookie最大存放多少字节
49.ajax中get和post有什么区别
50.Gc机制是什么?为什么闭包不会被回收变量和函数?
51.简述下你理解的面向对象?
52.this是什么在不同场景中分别代表什么
53.你对数据校验是怎么样处理的?jquery.validate?
55.在jq中mouseovermouseentermouseoutmouseleave和hover有什么关联
56.jsonp原理?缺点
57.除了jsonp还有什么跨域方式
58.如何使用storage对js文件进行缓存
59.如何确保ajax或连接不走缓存路径
60.split()join()
61.slice()splice()
62.typeof?typeof[]返回数据类型是?
//判断基本数据类型;vara=[];typeofa输出object;//本来判断一个对象类型用typeof是最好的,不过对于Array类型是不适用的,//可以使用instanceof操作符:vararrayStr=newArray("1","2","3","4","5");
alert(arrayStrinstanceofArray);//当然以上在一个简单的页面布局里面是没有问题的,如果是复杂页面情况,//入获取的是frame内部的Array对象,可以用这个函数判断:functionisArray(obj){
returnObject.prototype.toString.call(obj)==='[objectArray]';
63.disabledreadyonly
64.同步异步
65.promise
66.函数fn1函数fn2函数fn3,如果想在三个函数都执行完成后执行某一个事件应该如何实现
//1、设置事件监听。//2、回调函数:functionfn1(){
console.log("执行fn1");
fn2();}functionfn2(){
console.log("执行fn2");
fn3();}functionfn3(){
console.log("执行fn3");
mou();}functionmou(){
console.log("执行某个函数");}fn1();
67.JavaScript提供了哪几种“异步模式”?
68.什么是移动端的300ms延迟?什么是点击穿透?解决方案
69.变量作用域
varc="";
d="";
e="";}functiongo(){
console.info(this);//windowreturnfunction(){
console.info(this);//windowreturn{
b:function(){
console.info(this);//b的父对象}
}}go()().b();
70.call&apply两者之间的区别
71.call和apply有什么好处?
72.谁是c的构造函数
functionab(){
this.say="";}ab.constructor={}ab.name='';varc=newab();//构造函数默认指向函数本身,ab是一个类,它的构造函数是它本身,//然后ab.constructor={};ab的构造函数就指向{}了,c是ab的实例化对象,c的构造函数就是{}//通过使用new的时候,创建对象发生了那些改变当使用new操作时,会马上开辟一个块内存,//创建一个空对象,并将this指向这个对象。接着,执行构造函数ab(),对这个空对象进行构造//(构造函数里有什么属性和方法都一一给这个空白对象装配上去,这就是为何它叫构造函数了)。
73.sass和less有什么区别
74.bootstrap好处?
75.开发时如何对项目进行管理gulp
77.ajax请求方式有几种(8种)?
78.如何copy一个dom元素?
79.数组的排序方法(sort)?排序?汉字排序?
80.简述一下你理解的面向对象?
81.如何创建一个对象?
82.commonjsrequirejsAMD|CMD|UMD
83.js的几种继承方式?
84.JavaScript原型,原型链有什么特点?
85.eval是做什么的?
86.null,undefined的区别?
87.JSON的了解?
88.js延迟加载的方式有哪些?
89.ajax是什么
90.同步和异步的区别
91.如何解决跨域问题
92.异步加载的方式有哪些?
93.jQuery与jQueryUI有啥区别?
94.你有哪些性能优化的方法?
95.一个页面从输入URL到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好)