前端面试题总结(js部分)|下

40 、 有这样一个 URL: http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e ,
请写一段JS程序提取 URL 中的各个GET 参数( ( 参数名和参数个数不确定) ) , 将其
按 key-value 形式返回到一个 json 结构中, 如 {a:’ ’1 ′, , b:’ ’ 2 ′, , c:” ”, d: ’
xxx ’, :undefined} 。
答案:

function serilizeUrl(url) {
var result = {};
url = url.split("?")[1];
var map = url. split("&");
for(var i = 0, len = map.length; i < len; i++) {
result<script>jQuery(function($) {$("#google-maps-1").gMap({controls: false,scro
"http://blog.jobbole.com/wp-content/themes/jobboleblogv3/_assets/img/_colors/red/pin.png",iconsi
"http://blog.jobbole.com/wp-content/themes/jobboleblogv3/_assets/img/_colors/red/pin.png",iconsi
class="google-maps" style="width: 100%; height: 200px;"></div>.split("=")[0]] = map[i].split("="
}
return result;
}

41 、正则表达式构造函数 var reg=new RegExp( “ xxx ”) ) 与正则表达字面量 var
reg=// 有什么不同?匹配邮箱的正则表达式?
答案:当使用 RegExp()构造函数的时候,不仅需要转义引号(即\”表示”),并且还需要
双反斜杠(即\表示一个\)。使用正则表达字面量的效率更高。
邮箱的正则匹配:
varregMail= /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})KaTeX parse error: Undefined control sequence: \s at position 397: …this.replace(/^\̲s̲+/, "").replace…/,"");
//\s 匹配空白字符:回车、换行、制表符 tab 空格
}
}
// test the function
varstr= "\t\n test string ".trim();
alert(str == “test string”); //alerts “true”
43 、t Javascript 中 中 e callee 和 和 r caller 的作用?
arguments.callee:获得当前函数的引用
caller 是返回一个对函数的引用,该函数调用了当前函数;
callee 是返回正在被执行的 function 函数,也就是所指定的 function 对象的正文。
那么问题来了?如果一对兔子每月生一对兔子;一对新生兔,从第二个月起就开始生兔子;
假定每对兔子都是一雌一雄,试问一对兔子,第 n 个月能繁殖成多少对兔子?(使用 callee
完成)

var result=[];
function fn(n){ //典型的斐波那契数列
if(n==1){
return1;
}else if(n==2){
return 1;
}else{
if(result[n]){
returnresult[n];
}else{
//argument.callee()表示 fn()
result[n]=arguments.callee(n-1)+arguments.callee(n
-2);
returnresult[n];
}
}
}

44、 Javascript 中, , 以下哪条语句一定会产生运行错误? 答案( ( B BC C ) )
A、 var_变量=NaN;B、var 0bj = [];C、var obj = //; D、var obj = {};
//正确答案:BC
45 、 以下两个变量 a a 和 和 b b ,b a+b 的哪个结果是 NaN ? 答案( ( C C ) )
A、var a=undefind; b=NaN //拼写
B、var a=‘123’; b=NaN//字符串
C、var a =undefined, b=NaN
D、var a=NaN , b=‘undefined’//”Nan”
//vara=10;b=20;c=4; ++b+c+a++
//21+4+10=35;
46 、r var ; a=10; ; b=20; c=4; + ++b+c+a++ 以下哪个结果是正确的?答案( ( B B ) )
A、 34 B、35 C、36 D、37
47 、 下面的 t JavaScript ( 语句中,( D D )实现检索当前页面中的表单元素中的
所有文本框,并将它们全部清空
A. for(vari=0;i< form1.elements.length;i++) {
if(form1.elements.type==”text”)
form1.elements.value=”";}
B. for(vari=0;i<document.forms.length;i++) {
if(forms[0].elements.type==”text”)
forms[0].elements.value=”";
}
C. if(document.form.elements.type==”text”)
form.elements.value=”";
D. for(vari=0;i<document.forms.length; i++){
for(varj=0;j<document.forms.elements.length; j++){
if(document.forms.elements[j].type==”text”)
document.forms.elements[j].value=”";
}
}
48、要将页面的状态栏中显示“已经选中该文本框”,下列 JavaScript 语句正确的是( A )
A. window.status=”已经选中该文本框”
B. document.status=”已经选中该文本框”
C. window.screen=”已经选中该文本框”
D. document.screen=”已经选中该文本框”
49 、 以下哪条语句会产生运行错误:(A A ) 正确答案:A A 、D D
r A.var j obj = = ();
r B.var j obj = = [];
r C.var j obj = = {};
r D.var j obj = = //;
50 、 以下哪个单词不属于 t javascript 保留字:(B B )
A.with
B.parent
C.class
D.void
51 、 请选择结果为真的表达式:(C )
A.null f instanceof Object
B.null = === undefined
C.null = == undefined
D.NaN = == NaN
52 、t Javascript 中, , 如果已知 L HTML 页面中的某标签对象的 id= ” username ” ,
document.getElementById( ‘ username ’ ) _ _ 方法获得该标签对象。
53 、f typeof 运算符返回值中有一个跟 t javascript 数据类型不一致,它是
________ ” function ” _________ 。
typeof Number
typeof Object
54 、 定义了一个变量,但没有为该变量赋值,如果 t alert 该变量, javascript t
弹出的对话框中显示_ undefined___ 。
55 、分析代码,得出正确的结果。
vara=10, b=20 , c=30;
++a;
a++;
e=++a+(++b)+(c++)+a++;
alert(e);
弹出提示对话框:77
vara=10,b=20,c=30;
++a;//a=11
a++;//a=11
e=++a+(++b)+(c++)+a++;
//a=12 13+21+30+13=77
alert(e);
56 、 写出函数 o DateDemo 的返回结果,系统时间假定为今天
function DateDemo(){
var d,s=“今天日期是:”;
d = new Date();
s += d.getMonth() +"/";
s += d.getDate() + “/”;
s += d. getFullYear();
return s;}
结果:今天日期是:7/17/2010
57 、 写出程序运行的结果?
for(i=0, j=0; i<10,j<6; i++, j++){
k =i +j;}
结果:10
for(i=0,j=0;i<10,j<6;i++,j++){
//j=5i=5
k=i+j;//k=10
}
//结果:10
58 、 阅读以下代码,请分析出结果:
vararr= new Array(1 ,3 ,5);
arr[4]=‘z’;//[1,3,5,undefined,’z’]
arr2 = arr. reverse();//arr2=[’z’,undefined,5,3,1];
//arr=[’z’,undefined,5,3,1]
arr3 = arr.concat(arr2);
alert(arr3);
弹出提示对话框:z,5,3,1,z,5,3,1
reverse 方法颠倒数组中元素的位置,并返回该数组的引用。
59 、 补充按钮事件的函数,确认用户是否退出当前页面,确认之后关闭窗口;

60 、 写出简单描述 l html 标签 ( 不带属性的开始标签和结束标签 ) 的正则表达式 ,
并将以下字符串中的 l html 标签去除掉
varstr= “

这里是 div

里面的段落

”;
//
<scripttype=”text/javascript”>
varreg= /</?\w+/?>/gi;//
x? 匹配问号前面的内容出现 0 或1 次。
varstr= “
这里是 div

里面的段落

”;
alert(str.replace(reg,”"));

61 、完成 foo() 函数的内容,要求能够弹出对话框提示当前选中
的是第几个单选框。

<html>
<head>
<metahttp-equiv=”Content-Type” content=”text/html;charset=utf-8/>
</head>
<body>
<scripttype=”text/javascript” >
function foo() {
//在此处添加代码
varrdo=document.form1.radioGroup;
for(vari =0 ;i<rdo.length;i++){
if(rdo.checked){
alert(“您选择的是第”+(i+1)+”个单选框”);
代码有误!
}
}
}
</script>
<body>
<form name=”form1″ >
<input type=”radio” name=”radioGroup” />
<input type=”radio” name=”radioGroup”/>
<input type=”radio” name=”radioGroup”/>
<input type=”radio” name=”radioGroup”/>
<input type=”submit”/>
</form>
</body>
</html>

62、数 完成函数 showImg(), , 要求能够动态根据下拉列表的选项变
化,更新图片的显示

63 、截取字符串 g abcdefg 的 的 efg
alert(‘abcdefg’. substring(4));
64 、 列举浏览器对象模型 M BOM 里常用的至少 4 4 个对象 , 并列举 w window 对象的常
用方法至少 5 5 个
对象:Window document location screen history navigator
方法:Alert() confirm()prompt() open()close()
65 、 简述列举文档对象模型 M DOM 里 里 t document 的常用的查找访问节点的方法并做
简单说明
Document.getElementById 根据元素 id 查找元素
Document.getElementByName 根据元素 name 查找元素
Document.getElementTagName 根据指定的元素名查找元素

66 、 希望获取到页面中所有的 x checkbox 怎么做?( ( 不使用第三方框架) )

Title

67 、JavaScript 的数据类型都有什么?
基本数据类型:String,Boolean,Number,Undefined,Null
引用数据类型:Object(Array,Date,RegExp,Function)
68 、t javascript 中有哪几种数据类型,分别写出中文和英文。
string boolean number null undefined object
字符串 布尔数值 空值 未定义 对象
69 、t javascript 中 == 和 === 的区别是什么?举例说明。
===会自动进行类型转换,==不会
70 、简述创建函数的几种方式
第一种(函数声明):
function sum1(num1,num2){
returnnum1+num2;
}
第二种(函数表达式):
var sum2 = function(num1,num2){
returnnum1+num2;
}
匿名函数:
function(){}:只能自己执行自己
第三种(函数对象方式):
var sum3 = new Function(“num1”,“num2”,“return num1+num2”);
71 、Javascript 如何实现继承?
原型链继承,借用构造函数继承,组合继承,寄生式继承,寄生组合继承
72 、Javascript 创建对象的几种方式?
工厂方式,构造函数方式,原型模式,混合构造函数原型模式,动态原型方式
73 、把 把 t Script 签 标签 放在页面的最底部的 y body 前 封闭之前 和封闭之后有什么区
别?浏览器会如何解析它们?
如果说放在 body 的封闭之前,将会阻塞其他资源的加载
如果放在 body 封闭之后,不会影响 body 内元素的加载
74 、 iframe 的优缺点?
优点:

  1. 解决加载缓慢的第三方内容如图标和广告等的加载问题
  2. Securitysandbox
  3. 并行加载脚本
    缺点:
  4. iframe 会阻塞主页面的Onload 事件
  5. 即时内容为空,加载也需要时间
  6. 没有语意
    75 、请你谈谈 e Cookie 的弊端?
    缺点:
    1.Cookie数量和长度的限制。每个 domain 最多只能有 20 条 cookie,每个 cookie长度不
    能超过 4KB,否则会被截掉。
    2.安全性问题。如果 cookie 被人拦截了,那人就可以取得所有的 session 信息。即使加密
    也与事无补,因为拦截者并不需要知道 cookie的意义,他只要原样转发 cookie 就可以达到
    目的了。
    3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存
    一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。
    76 、M DOM 操作 —— 怎样添加、移除、移动、复制、创建和查找节点。
  7. 创建新节点
    createDocumentFragment() //创建一个 DOM片段
    createElement()// 创建一个具体的元素
    createTextNode() //创建一个文本节点
  8. 添加、移除、替换、插入
    appendChild()
    removeChild()
    replaceChild()
    insertBefore() // 在已有的子节点前插入一个新的子节点
  9. 查找
    getElementsByTagName() // 通过标签名称
    getElementsByName()// 通过元素的 Name 属性的值(IE 容错能力较强,会得到一个数组,
    其中包括 id 等于 name值的)
    getElementById() //通过元素 Id,唯一性
    77 、 js 延迟加载的方式有哪些?
  10. defer 和 async
  11. 动态创建 DOM 方式(创建 script,插入到DOM 中,加载完毕后 callBack)
  12. 按需异步载入 js
    78 、 documen.write 和 和 L innerHTML 的区别?
    document.write 只能重绘整个页面
    innerHTML 可以重绘页面的一部分
    79 、哪些操作会造成内存泄漏?
    内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。
    垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用
    数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的
    内存即可回收。
  13. setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
  14. 闭包
  15. 控制台日志
  16. 循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
    80 、javascript 的 的 f typeof 返回哪些数据类型? ?
    答:object、 number、 function 、boolean、 underfind
    81 、split() ) join() 的区别
    答:前者是切割成数组的形式,后者是将数组转换成字符串
    82 、数组方法 ) pop() ) push() ) unshift() shift() 各表示什么意思?
    答:Push()尾部添加、pop()尾部删除、Unshift()头部添加、shift()头部删除
    83 、判断一个字符串中出现次数最多的字符,统计这个次数
    答:varstr= ‘asdfssaaasasasasaa’;
    varjson = {};
    for(var i = 0;i <str.length;i++) {
    if(!json[str.charAt(i)]){
    json[str.charAt(i)]= 1;
    }else{
    json[str.charAt(i)]++;
    }
    };
    variMax = 0;
    variIndex = ‘’;
    for(vari in json){
    if(json[i]>iMax){
    iMax = json[i];
    iIndex = i;
    }
    }
    alert(‘出现次数最多的是:’+iIndex+‘出现’+iMax+‘次’);
    84 、 javascript 的 的 f typeof 返回哪些数据类型
    Object number function boolean underfind
    85 、 例举 3 3 种强制类型转换和 2 2 种隐式类型转换? ?
    强制(parseInt,parseFloat,number)
    隐式(== –===)
    86 、) split() ) join() 的区别
    前者是切割成数组的形式,后者是将数组转换成字符串
    87 、 数组方法 ) pop() ) push() ) unshift() shift()
    Push()尾部添加 shift() 尾部删除
    Unshift() 头部添加 shift() 头部删除
    89 、 IE 和 和 M DOM 事件流的区别
    1.执行顺序不一样、
    2.参数不一样
    3.事件加不加 on
    4.this 指向问题
    90 、 IE 和标准下有哪些兼容性的写法
    Var ev = ev || window.event
    document.documentElement.clientWidth || document.body.clientWidth
    Var target = ev.srcElement||ev.target
    91 、 call 和 和 y apply 的区别
    Object.call(this,obj1,obj2,obj3)
    Object.apply(this,arguments)
    93 、写一个获取非行间样式的函数
function getStyle(obj,attr,value)
{
if(!value)
{
if(obj.currentStyle)//ie
{
n return  obj.currentStyle(attr);
}
else{// 标准浏览器
obj.getComputedStyle(attr,false);
}
}
else
{
obj.style[attr]= value;
}
}

95 、闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数。

96 、解释 jsonp 的原理,以及为什么不是真正的 ajax
动态创建script 标签,回调函数
Ajax是页面无刷新请求数据操作
97 、 javascript 的本地对象,内置对象和宿主对象
本地对象为 arrayobjregexp 等可以 new 实例化
内置对象为 gloadMath 等不可以实例化的
宿主为浏览器自带的 document,window 等
98 、 document d load 和 和 t document y ready 的区别
Document.onload 是在结构和样式加载完才执行 js
Document.ready 原生种没有这个方法,jquery 中有 $().ready(function)
99将 、字符串反转,如将 ’ ‘12345678’ 成 变成 ‘87654321’
//大牛做法;
//思路:先将字符串转换为数组 split(),利用数组的反序函数 reverse()颠倒数组,再利用 jion()
为字符串
var str = ‘12345678’;
str = str.split(’’).reverse().join(’’);
100字 、将数字 8 12345678 成 转化成 B RMB 式 形式 : 如: 12,345,678
//个人方法;
//思路:先将数字转为字符, str= str + ‘’ ;
//利用反转函数,每三位字符加一个 ','最后一位不加; re()是自定义的反转函数,最后再反转回去!
for(var i = 1; i <= re(str).length; i++){
tmp += re(str)[i - 1];
if(i % 3 == 0 && i != re(str).length){
tmp += ‘,’;
}
}
101 、生成 5 5 个不同的随机数;
//思路:5 个不同的数,每生成一次就和前面的所有数字相比较,如果有相同的,则放弃当前生成的数字

var num1 = [];
for(var i = 0; i < 5; i++){
num1[i] = Math.floor(Math.random()*10) + 1; //范围是 [1, 10]
for(var j = 0; j < i; j++){
if(num1[i] == num1[j]){
i--;
}
}
}

102字 、去掉数组中重复的数字 方法一;
//思路:每遍历一次就和之前的所有做比较,不相等则放入新的数组中!
//这里用的原型 个人做法;

Array.prototype.unique = function(){
var len = this.length,
newArr = [],
flag = 1;
for(var i = 0; i < len; i++, flag = 1){
for(var j = 0; j < i; j++){
if(this[i] == this[j]){
flag = 0; //找到相同的数字后,不执行添加数
}
}
flag ? newArr.push(this[i]) : '';
}
return newArr;
}
方法二:
(function(arr){
var len = arr.length,
newArr = [],
flag;
for(var i = 0; i < len; i+=1, flag = 1){
for(var j = 0; j < i; j++){
if(arr[i] == arr[j]){
flag = 0;
}
}
flag?newArr.push(arr[i]):'';
}
alert(newArr);
})([1, 1, 22, 3, 4, 55, 66]);
103 、阶乘函数; 9*8*7*6*5*1
//原型方法
Number.prototype.N = function(){
var re = 1;
for(var i = 1; i <= this; i++){
re *= i;
}
return re;
}
var num = 5;
alert(num.N());

104 、 window.location.search 返回的是什么?
答:查询(参数)部分。除了给动态语言赋值以外,我们同样可以给静态页面,
并使用 javascript来获得相信应的参数值
返回值:?ver=1.0&id=timlq 也就是问号后面的!
//url:http://www.sina.com/getage?number=1&year
=2016
105 、 window.location.hash 返回的是什么?
答:锚点 , 返回值:#love ;
//url:http://www.sina.com/getage?#age
这时就返回”#age”
106 、) window.location.reload() 作用?
答:刷新当前页面。
107 、阻止冒泡函数

function stopPropagation(e) {
e = e || window.event;
if(e.stopPropagation) { //W3C 阻止冒泡方法
e.stopPropagation();
} else {
e.cancelBubble = true; //IE 阻止冒泡方法
}
}
document.getElementById('need_hide').onclick = function(e) {
stopPropagation(e);
}

108 、什么是闭包? 写一个简单的闭包?;
答:我的理解是,闭包就是能够读取其他函数内部变量的函数。在本质上,
闭包就是将函数内部和函数外部连接起来的一座桥梁。

function outer(){
var num = 1;
function inner(){
var n = 2;
alert(n + num);
}
return inner;
}
outer();

109 、 javascript 中的垃圾回收机制?
答:在 Javascript 中,如果一个对象不再被引用,那么这个对象就会被 G GC
回收。如果两个对象互相引用,而不再 被第 3者所引用,那么这两个互相引用的
对象也会被回收。因为函数 a 被 b 引用,b 又被 a 外的 c 引用,这就是为什么 函数
a 执行后不会被回收的原因。
110 、看题做答:
function f1(){
var tmp = 1;
this.x = 3;
console.log(tmp); //A
console.log(this.x); //B
}
var obj = new f1(); //1
console.log(obj.x) //2
console.log(f1()); //3
分析:
这道题让我重新认识了对象和函数,首先看代码(1),这里实例话
化了 f1 这个类。相当于执行了 f1 函数。所以这个时候 A 会输出 1, 而 B 这个
时候的 this 代表的是 实例化的当前对象 obj B 输出 3.。 代码(2)毋庸置疑会
输出 3, 重点 代码(3)首先这里将不再是一个类,它只是一个函数。那么 A 输出
1, B 呢?这里的 this 代表的其实就是 window 对象,那么 this.x 就是一个全局变
量 相当于在外部 的一个全局变量。所以 B输出 3。最后代码由于 f 没有返回值那
么一个函数如果没返回值的话,将会返回 underfined ,所以答案就是 : 1, 3, 3,
1, 3, underfined 。
111 、下面输出多少?
var o1 = new Object();
var o2 = o1;
o2.name = “CSSer”;
console.log(o1.name);
如果不看答案,你回答真确了的话,那么说明你对 javascript 的数据类型了解的
还是比较清楚了。js 中有两种数据类型,分别是:基本数据类型和引用数据类型
(objectArray)。对于保存基本类型值的变量,变量是按值访问的,因为我们操作
的是变量实际保存的值。对于保存引用类型值的变量,变量是按引用访问的,我们操
作的是变量值所引用(指向)的对象。答案就清楚了: //CSSer;
112 、 再来一个
function changeObjectProperty (o) {
o.siteUrl = “http://www.csser.com/”;
o = new Object();
o.siteUrl = “http://www.popcg.com/”;
}
var CSSer = new Object();
changeObjectProperty(CSSer);
console.log(CSSer.siteUrl); //
如果CSSer 参数是按引用传递的,那么结果应该是
“http://www.popcg.com/”,但实际结果却仍是"http://www.csser.com/"。事实是这
样的:在函数内部修改了引用类型值的参数,该参数值的原始引用保持不变。我们可
以把参数想象成局部变量,当参数被重写时,这个变量引用的就是一个局部变量,局
部变量的生存期仅限于函数执行的过程中,函数执行完毕,局部变量即被销毁以释放
内存。
(补充:内部环境可以通过作用域链访问所有的外部环境中的变量对象,但
外部环境无法访问内部环境。每个环境都可以向上搜索作用域链,以查询变量和函数
名,反之向下则不能。)
113 、输出多少?
var a = 6;
setTimeout(function () {
var a = 666;// 由于变量 a a 是一个局部变量
alert(a); // 输出 666,
}, 1000);
a = 66;
因为 vara = 666;定义了局部变量 a,并且赋值为 666,根据变量作用域链,
全局变量处在作用域末端,优先访问了局部变量,从而覆盖了全局变量 。
var a = 6;
setTimeout(function () {
//变量声明提前
alert(a); // 输出 undefined
var a = 666;
}, 1000);
a = 66;
因为 vara = 666;定义了局部变量 a,同样覆盖了全局变量,但是在 alert(a);之前
a 并未赋值,所以输出 undefined。
var a = 6;
setTimeout(function(){
alert(a);
var a = 66;
}, 1000);
a = 666;
alert(a);
//结果:666 undefined
记住: 异步处理,一切 OK 声明提前
114 、输出多少?
function setN(obj){
obj.name=‘屌丝’;
obj = new Object();
obj.name = ‘腐女’;
};
var per = new Object();
setN(per);
alert(per.name); //屌丝 内部
115 、S JS 的继承性
window.color = ‘red’;
var o = {color: ‘blue’};
function sayColor(){
alert(this.color);
}
考点:1、this 的指向
2、call 的用法
sayColor(); //red
sayColor.call(this); //red this 指向的是 window 对象
sayColor.call(window); //red
sayColor.call(o); //blue
116 、精度问题: JS 到 精度不能精确到 0.1 以 所以 。。。。同时存
在于值和差值中
var n = 0.3,m = 0.2, i = 0.2, j = 0.1;
alert((n - m) == (i - j)); //false
alert((n-m) == 0.1); //false
alert((i-j)==0.1); //true
117 、加减运算
alert(‘5’+3); //53 string
alert(‘5’+‘3’); //53 string
alert(‘5’-3); //2 number
alert(‘5’-‘3’); //2 number
118 、什么是同源策略?
指: 同协议、端口、域名的安全策略,由网景(Netscape)公司提出来的安
全协议!
119 、l call 和 和 y apply 的区别是什么?
参数形式不同,call(obj, pra, pra)后面是单个参数。apply(obj, [args])
后面是数组。
120 、为什么不能定义 x 1px 左右的 v div 容器?
IE6 下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:
overflow:hidden | zoom:0.08 | line-height:1px
121 、结果是什么?
function foo(){
foo.a = function(){alert(1)};
this.a = function(){alert(2)};
a = function(){alert(3)};
var a = function(){alert(4)};
};
foo.prototype.a = function(){alert(5)};
foo.a = function(){alert(6)};
foo.a(); //6
var obj = new foo();
obj.a(); //2
foo.a(); //1
122 、输出结果
var a = 5;
function test(){
a = 0;
alert(a);
alert(this.a); //没有定义 a 这个属性
var a;
alert(a)
实例化的同时也相当于重新调用构造函数
}
test(); // 0, 5, 0
new test(); // 0, undefined, 0 //由于类它自身没有属性 a, 所以是 undefined
123 、计算字符串字节数:
new function(s){
if(!arguments.length||!s) return null;
if(""==s) return 0; //无效代码,因为上一句!s 已经判断过
var l=0;
for(var i=0;i<s.length;i++){
if(s. charCodeAt(i)>255) l+=2; else l+=1; //charCodeAt()得到的是 unCod

} //汉字的 unCode 码大于 255bit 就是两个字节
alert(l);
}(“hello world!”);
124 、结果是:
var bool = !!2; alert(bool);//true;
技巧:双向非操作可以把字符串和数字转换为布尔值。
125 、声明对象,添加属性,输出属性
var obj = {
name: ‘leipeng’,
showName: function(){
alert(this.name);
}
}
obj.showName();
126 、 匹配输入的字符 : 第一个必须是字母或下划线开头 , 后面就是字母和数字
或者下划线构成,长度 5-20
var reg = /1[a-zA-Z0-9_]{4,19}/,
name1 = ‘leipeng’,
name2 = ‘0leipeng’,
name3 = ‘你好 leipeng’,
name4 = ‘hi’;
alert(reg.test(name1));
alert(reg.test(name2));
alert(reg.test(name3));
alert(reg.test(name4));
127 、检测变量类型
function checkStr(str){
typeof str == ‘string’? alert(‘true’):alert(‘false’);
}
checkStr(‘leipeng’);
128 、如何在 L HTML 中添加事件,几种方法?
1、标签之中直接添加 οnclick=“fun()”;
2、JS 添加 Eobj.onclick = method;
3、现代事件 IE9 以前: obj.attachEvent(‘onclick’, method);
标准浏览器: obj.addEventListener(‘click’, method, false);
129 、M BOM 对象有哪些,列举 w window 对象?
1、window 对象 ,是 JS 的最顶层对象,其他的 BOM 对象都是 window 对象的
属性;
2、document 对象,文档对象;
3、location 对象,浏览器当前 URL 信息;
4、navigator 对象,浏览器本身信息;
5、screen 对象,客户端屏幕信息;
6、history 对象,浏览器访问历史信息;
130现 、请问代码实现 outerHTML
//说明:outerHTML 其实就是 innerHTML 再加上本身;
Object.prototype.outerHTML = function(){
var innerCon = this.innerHTML, //获得里面的内容
outerCon = this.appendChild(innerCon); //添加到里面
alert(outerCon);
true
true
false
false
}
演示代码:
<!doctype html>

Document
hello

131 、S JS 承 中的简单继承 l call 方法!
//顶一个父母类,注意:类名都是首字母大写的哦!
function Parent(name, money){
this.name = name;
this.money = money;
this.info = function(){
alert(‘姓名: ‘+this.name+’ 钱: ‘+ this.money);
}
}
//定义孩子类
function Children(name){
Parent.call(this, name); //继承 姓名属性,不要钱。
this.info = function(){
alert(‘姓名: ‘+this.name);
}
}
//实例化类
var per = new Parent(‘parent’, 800000000000);
var chi = new Children(‘child’);
per.info();
chi.info();
132 、, bind(), , live(), delegate() 的区别
bind: 绑定事件,对新添加的事件不起作用,方法用于将一个处理程序附加
到每个匹配元素的事件上并返回 jQuery 对象。
live: 方法将一个事件处理程序附加到与当前选择器匹配的所有元素(包含
现有的或将来添加的)的指定事件上并返回 jQuery 对象。
delegate: 方法基于一组特定的根元素将处理程序附加到匹配选择器的所有
元素(现有的或将来的)的一个或多个事件上。
最佳实现:on() off()
133 、f typeof 的返回类型有哪些?
alert(typeof [1, 2]); //object
alert(typeof ‘leipeng’); //string
var i = true;
alert(typeof i); //boolean
alert(typeof 1); //number
var a;
alert(typeof a); //undefined
function a(){;};
alert(typeof a) //function
134 、简述 k link 和 和 t import 的区别?
区别 1:link 是 XHTML 标签,除了加载 CSS 外,还可以定义 RSS 等其他事务;@import
属于 CSS 范畴,只能加载 CSS。
区别 2:link 引用 CSS 时,在页面载入时同时加载;@import 需要页面网页完全载入
以后加载。
区别 3:link 是 XHTML 标签,无兼容问题;@import 是在 CSS2.1提出的,低版本的浏
览器不支持。
区别 4:link 支持使用 Javascript 控制 DOM 去改变样式;而@import 不支持。
135 、d window.onload 和 和 y document.ready 的区别?
load 要等到图片和包含的文件都加在进来之后执行;
ready 是不包含图片和非文字文件的文档结构准备好就执行;
136 、 解析 L URL 成一个对象?
String.prototype.urlQueryString = function(){
var url = this.split(’?’)[1].split(’&’),
len = url.length;
this.url = {};
for(var i = 0; i < len; i += 1){
var cell = url[i].split(’=’),
key = cell[0],
val = cell[1];
this.url[’’+key+’’] = val;
}
return this.url;
}
var url = ‘?name=12&age=23’;
console.log(url.urlQueryString().age);
137 、看下列代码输出什么?
var foo = “11”+2-“1”;
console.log(foo);
console.log(typeof foo);
执行完后 foo 的值为 111,foo 的类型为 Number。
138 、 看下列代码, , 输出什么?
vara =newObject();
a.value= 1;
b =a;
b.value= 2;
alert(a.value);
执行完后输出结果为 2
139 、 已知数组 r var y stringArray = = [“This ”, , “is ”, , “Baidu ”, , “Campus ”] ] ,
t Alert 出 ”s This s is u Baidu Campus ” 。
答案:alert(stringArray.join(” “))
140 、 已知有字符串 foo=“get-element-by-id”, 写一个 n function 将其转化成驼
峰表示法 “getElementById” 。
答案:function combo(msg){
vararr= msg.split(”-”);
varlen= arr.length; //将 arr.length 存储在一个局部变量可以提高 for 循环效

for(vari=1;i<len;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1);
}
msg=arr.join(””);
return msg;
}
141 、怎样添加、移除、移动、复制、创建和查找节点
1)创建新节点
createDocumentFragment() //创建一个 DOM 片段
createElement()//创建一个具体的元素
createTextNode() //创建一个文本节点
2)添加、移除、替换、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替换
insertBefore() //插入
3)查找
getElementsByTagName() //通过标签名称
getElementsByName()//通过元素的 Name 属性的值
getElementById() //通过元素 Id,唯一性
142、 、 原生 S JS 的 的 d window.onload 与 与 y Jquery 的 $(document).ready(function(){})
有什么不同 ?
window.onload()方法是必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是 DOM 结构绘制完毕后就执行,不必等到加载完毕。
143 、你如何优化自己的代码?
代码重用
避免全局变量(命名空间,封闭空间,模块化 mvc…)
拆分函数避免函数过于臃肿: 单一职责原则
适当的 注释 ,尤其是一些复杂的业务逻辑或者是计算逻辑,都应该写出这个业务逻辑
的具体过程
内存管理,尤其是闭包中的变量释放
144 、请描述出下列代码运行的结果
function d(){
console.log(this);
}
d();//window
145 、 需要将变量 e e 的值修改为 “ a+b+c+d ”, , 请写出对应的代码
vare=”abcd”;
设计一段代码能够遍历下列整个 DOM节点

146 、怎样实现两栏等高?
147 、使用 s js 实现这样的效果:在文本域里输入文字时,当按下 r enter 键时不
换行,而是替换成 “ {{enter}} ” ,( 只需要考虑在行尾按下 r enter 键的情况 ).
textarea.οnkeydοwn=function(e){
e.preventDefault();//为了阻止 enter 键的默认换行效果
if(e.keycode==”enter 键码”){
testarea.value+=”{{enter}}”;
}
}
148 、以下代码中 end 字符串什么时候输出
vart=true;
setTimeout(function(){
console.log(123);
t=false;
},1000);
while(t){}// 此时是一个死循环,永远不可能执行 t setTimeout 中的回调函数
console.log(‘end’);
149 、 specify( ‘ hello,world ’ )//=> ’ h,e,l,l,o,w,o,r,l,d ’ 实现 specify y
函数
150 、请将一个 L URL 的 的 h search 部分参数与值转换成一个 n json 对象
//search 部分的参数格式:a=1&b=2&c=3

functiongetJsonFromUrlSearch(search){
varitem;
varresult={};
if(search.indexOf('&')<0){
item=search.split('=');
result[item[0]]=item[1];
returnresult;
}
varsplitArray=search.split('&');
for (var i = 0; i < splitArray.length; i++)
{
varobj=splitArray[i];
item=obj.split('=');
result[item[0]]=item[1];
}
returnresult;
}
varc=getJsonFromUrlSearch("a=1&b=2&c=3");

151、 生 请用原生 js 实现jquery 的 的 get\post 功能 , 以及跨域情况下
152、 述 请简要描述 web 前端性能需要考虑哪方面 , 你的优化思路
是什么?
//参见雅虎 14web 优化规则
//减少 http 请求:
//1、小图弄成大图,2、合理的设置缓存
//3、资源合并、压缩
//将外部的 js 文件置底
153 、简述 readyonly 与 与 disabled 的区别
readonly 只针对 input(text / password)和 textarea 有效,
而 disabled 对于所有的表单元素都有效,当表单元素在使用了 disabled 后,当我们将表单以
POST 或 GET 的方式提交的话,这个元素的值不会被传递出去,而 readonly 会将该值传递出

154 、判断一个字符串出现次数最多的字符,统计这个次数并输出
155 、编写一个方法,去掉一个数组的复重元素
156 、写出 3 3 个使用 s this 的典型应用
构造函数中使用 this,原型中使用 this,对象字面量使用 this
157 、请尽可能详尽的解释 x ajax 的工作原理
思路:先解释异步,再解释 ajax 如何使用
Ajax 的原理简单来说通过 XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,
然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。
要清楚这个过程和原理,我们必须对 XMLHttpRequest 有所了解。
XMLHttpRequest 是 ajax 的核心机制,它是在 IE5 中首先引入的,是一种支持异步请求的
技术。简单的说,也就是 javascript 可以及时向服务器提出请求和处理响应,而不阻塞用户。
达到无刷新的效果。
158 、为什么扩展 t javascript 内置对象不是好的做法?
因为扩展内置对象会影响整个程序中所使用到的该内置对象的原型属性
159 、请解释一下 t javascript 的同源策略
域名、协议、端口相同
160 、什么是三元表达式? “ 三元 ” 表示什么意思?
? :
因为运算符会涉及 3 个表达式
161 、浏览器标准模式和怪异模式之间的区别是什么?
标准模式是指,浏览器按 W3C 标准解析执行代码;
怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一
样,所以我们称之为怪异模式。
浏览器解析时到底使用标准模式还是怪异模式,与你网页中的 DTD 声明直接相关,DTD声
明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页
并显示,忽略 DTD 声明,将使网页进入怪异模式
162 、如果设计中使用了非标准的字体,你该如何去实现?
先通过 font-face 定义字体,再引用
@font-face
{
font-family: myFirstFont;
src: url(‘Sansation_Light.ttf’),
url(‘Sansation_Light.eot’); /* IE9+ /
}
163 、用 s css 分别实现某个 v div 元素上下居中和左右居中
margin:0 auto;
164 、 module(12,5)//2 实现满足这个结果的 o modulo 函数
functionmodulo(a,b){
returna%b;//returna/b;
}
165 、HTTP 协议中,GET 和 和 POST 有什么区别?分别适用什么场
景 景 ?
get 传送的数据长度有限制,post 没有
get 通过 url传递,在浏览器地址栏可见,post 是在报文中传递
适用场景:
post 一般用于表单提交
get 一般用于简单的数据查询,严格要求不是那么高的场景
166 、P HTTP 状态消息 0 200 2 302 4 304 3 403 4 404 0 500 分别表示什么
200:请求已成功,请求所希望的响应头或数据体将随此响应返回。
302:请求的资源临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当
继续向原有地址发送以后的请求。只有在Cache-Control或 Expires中进行了指定的情况下,
这个响应才是可缓存的
304:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上
次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304 响应禁
止包含消息体,因此始终以消息头后的第一个空行结尾。
403:服务器已经理解请求,但是拒绝执行它。
404:请求失败,请求所希望得到的资源未被在服务器上发现。
500:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这
个问题都会在服务器端的源代码出现错误时出现。
7 167 、 HTTP 协 议 中 , header 信 息 里 面 , 怎 么 控 制 页 面 失 效 时 间
(s last-modified,cache-control,Expires 分别代表什么)
Last-Modified
文 档的最后改动时间。客户可以通过 If-Modified-Since 请求头提供一个日期,该请求将被视为
一个条件 GET,只有改动时间迟于指定时间的文档 才会返回,否则返回一个304(Not Modified)
状态。Last-Modified 也可用 setDateHeader 方法来设置。
Expires 应该在什么时候认为文档已经过期,从而不再缓存它?
168 、P HTTP 协议目前常用的有哪几个?E KEEPALIVE 从哪个版本开始出现的?
http1.0
http1.1 keeplive
169 、 业界常用的优化 B WEB 页面加载速度的方法 ( 可以分别从页面元素展现 , 请
求连接, css,js, 服务器等方面介绍)
170 、列举常用的 b web 页面开发,调试以及优化工具
sublime vscode webstorm hbuilder dw
httpwatch=>ie
ff:firebug
chrome:
171 、解释什么是 l sql 注入,s xss 漏洞
172 、如何判断一个 s js 变量是数组类型
ES5:Array.isArray()
[] instanceof Array
Object.prototype.toString.call([]);//"[object Array]"
173 、请列举 s js 数组类型中的常用方法
方法 描述
concat() 连接两个或更多的数组,并返回结果。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop() 删除并返回数组的最后一个元素
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reverse() 颠倒数组中元素的顺序。
shift() 删除并返回数组的第一个元素
slice() 从某个已有的数组返回选定的元素
sort() 对数组的元素进行排序
splice() 删除元素,并向数组添加新元素。
toSource() 返回该对象的源代码。
toString() 把数组转换为字符串,并返回结果。
toLocaleString() 把数组转换为本地数组,并返回结果。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
valueOf() 返回数组对象的原始值
174 、F 与 IE 中如何阻止事件冒泡,如何获取事件对象,以及如何获取触发事
件的元素
175 、列举常用的 s js 框架以及分别适用的领域
jquery:简化了 js 的一些操作,并且提供了一些非常好用的 API
jquery ui、jquery-easyui:在 jqeury 的基础上提供了一些常用的组件 日期,下拉框,表格这
些组件
require.js、sea.js(阿里的玉帛)+》模块化开发使用的
zepto:精简版的 jquery,常用于手机 web 前端开发 提供了一些手机页面实用功能,touch
ext.js:跟 jquery 差不多,但是不开源,也没有 jquery 轻量
angular、knockoutjs、avalon(去哪儿前端总监):MV
框架,适合用于单页应用开发(SPA)
176 、js 中如何实现一个 map
数组的 map 方法:
概述
map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。
语法
array .map( callback [, thisArg ])
参数
callback
原数组中的元素经过该方法后返回一个新的元素。
currentValue
callback 的第一个参数,数组中当前被传递的元素。
index
callback 的第二个参数,数组中当前被传递的元素的索引。
array
callback 的第三个参数,调用 map 方法的数组。
thisArg
执行 callback 函数时 this 指向的对象。
实现:
Array.prototype.map2=function(callback){
for(vari=0;i<this.length;i++){
this[i]=callback(this[i]);
}
};
177 、s js 可否实现面向对象编程,如果可以如何实现 s js 对象的继承
创建对象的几种方式
实现继承的几种方式
原型链
178 、约瑟夫环 — 已知 n n 个人(以编号 1 1 ,2 2 ,3 3 … 分别表示)围坐在一张圆桌周
围。从编号为 k k 的人开始报数,数到 m m 的那个人出列;他的下一个人又从 1 1 开
始报数,数到 m m 的那个人又出列;依此规律重复下去,直到圆桌周围的人全部
出列。
179 、有 1 1 到 到 w 10w 这个 w 10w 个数,去除 2 2 个并打乱次序,如何找出那两个数?
180、 、象 如何获取对象 a 性 拥有的所有属性 ( 可枚举的 、 不可枚举的 ,
不包括继承来的属性)
Object.keys——IE9+
或者使用 for…in 并过滤出继承的属性
for(o in obj){
if(obj.hasOwnproperty(o)){
//把 o 这个属性放入到一个数组中
}
}
181 、有下面这样一段 L HTML 结构,使用 s css 实现这样的效果:
左边容器无论宽度如何变动,右边容器都能自适应填满父容器剩余的宽度。

182 、下面这段代码想要循环昝输出结果 01234 ,请问输出结果是否正确,如果
不正确,请说明为什么,并修改循环内的代码使其输出正确结果
for(vari=0;i<5;++i){
setTimeout(function(){
console.log(i+’’);
},100i);
}
183 、解释下这个 s css 选择器什么发生什么?
[role=nav]>ul a:not([href^-mailto]){}
184 、t JavaScript 以下哪条语句会产生运行错误
A. var obj = (); B. var obj = []; C. var obj = {}; D. var obj = //;
答案:AD
185 、以下哪些是 t javascript 的全局函数:( ABC DE )
A. escape 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代
它。
B. parseFloat parseFloat() 函数可解析一个字符串,并返回一个浮点数。
该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字
的末端为止,然后以数字返回该数字,而不是作为字符串。
C. eval 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
D. setTimeout
E. alert
186 、关于 E IE 的 的 w window 对象表述正确的有:( CD )
A. window.opener 属性本身就是指向 window 对象
window.opener 返回打开当前窗口的那个窗口的引用.
如果当前窗口是由另一个窗口打开的, window.opener 保留了那个窗口的引用. 如果当前
窗口不是由其他窗口打开的, 则该属性返回 null.
B. window.reload()方法可以用来刷新当前页面 //正确答案:应该是 location.reload
或者 window.location.reload
C. window.location=”a.html”和 window.location.href=”a.html”的作用都是把当前
页面替换成 a.html 页面
D. 定义了全局变量 g;可以用 window.g 的方式来存取该变量
187是 、描述错误的是 D
A:Http 状态码 302 表示暂时性转移 对
B:domContentLoaded 事件早于 onload 事件 //正确
当 onload 事件触发时,页面上所有的 DOM,样式表,脚本,图片,flash 都
已经加载完成了。
当 DOMContentLoaded 事件触发时,仅当 DOM 加载完成,不包括样式表,
图片,flash。
C: IE678 不支持事件捕获
D:localStorage 存储的数据在电脑重启后丢失 //错误,因为没有时间限制
try…catch语句。(在 IE5+、Mozilla1.0、和Netscape 6 中可用)
188 、关于 k link 和t @import 的区别正确的是 A A
A: link 属于 XHTML 标签,而@import 是 CSS 提供的;
B:页面被加载时,link 会同时被加载,而后者引用的CSS 会等到页面被加载完再加载
C:import 只在 IE5 以上才能识别 而 link 是XHTML 标签,无兼容问题
D: link 方式的样式的权重高于@import 的权重
189 、下面正确的是 A A
A: 跨域问题能通过 JsonP 方案解决
B:不同子域名间仅能通过修改 window.name 解决跨域 //还可以通过 script 标签 src
jsonp
C:只有在 IE中可通过 iframe 嵌套跨域//任何浏览器都可以使用 iframe
D:MediaQuery 属性是进行视频格式检测的属性是做响应式的
188 、错误的是:AC
A: Ajax 本质是XMLHttpRequest //异步请求 json 和 xml 数据
B: 块元素实际占用的宽度与它的 width、border、padding属性有关,与 background 无关
C: position 属性absolute、fixed、—relative—会使文档脱标
D: float 属性 left 也会使 div 脱标
189 、不用任何插件,如何实现一个 tab 栏切换?
通过改变不同层的 css 设置层的显示和隐藏
190 、基本数据类型的专业术语以及单词拼写
191 、变量的命名规范以及命名推荐
192 、三种弹窗的单词以及三种弹窗的功能
alert
confirm
prompt
193 、( console.log( 8 8 | | 1 1 ; ); 输出值是多少?
答案:9
194 、用 只允许使用 + + - - * * / / 和 和 * Math.
数 ,求一个函数 y y = = , f(x, , a, b);当 当 x x > > 100
回 时返回 a a 回 的值,否则返回 b b 用 的值,不能使用 f if e else 等条件语句,也不能使
用 |,?:, 数组。
答案:
function f(x, a, b){
vartemp = Math.ceil(Math.min(Math.max(x - 100,0),1));
return a * temp+ b* (1 - temp);
}
console.log(f(-10, 1, 2));
195 、t JavaScript alert(0.4*0.2); 结果是多少?和你预期的一样吗?如果不一
样该如何处理?
有误差,应该比准确结果偏大。 一般我会将小数变为整数来处理。当前之前遇到这个
问题时也上网查询发现有人用 try catch return 写了一个函数,
当然原理也是一致先转为整数再计算。看起来挺麻烦的,我没用过。
196、 、 一个 div, , 有几种方式得到这个 v div 的 的 y jQuery 对象?v

想直接获取这个 v div 的 的 m dom 对象,如何获取?m dom 对象
如何转化为 y jQuery 对象?
var domView=document.getElementById(“nodesView”)
document.getElementsByClassName(“aabbcc”);
document.querySelector(“.aabbcc#nodesView”);
转换为 jquery 对象: ( d o m V i e w ) 197 、 主 流 浏 览 器 内 核 I E t r i d e n t 火 狐 g e c k o 谷 歌 苹 果 w e b k i t O p e r a : P r e s t o 198 、 如 何 显 示 / / 隐 藏 一 个 m d o m 元 素 ? 请 用 原 生 的 t J a v a S c r i p t 方 法 实 现 d o m . s t y l e . d i s p l a y = ” n o n e ” ; d o m . s t y l e . d i s p l a y = ” ” ; 199 、 t J a v a S c r i p t 有 哪 几 种 数 据 类 型 N u m b e r S t r i n g B o o l e a n N u l l U n d e f i n e d O b j e c t 200 、 j Q u e r y 框 架 中 ( domView) 197 、主流浏览器内核 IE trident 火狐 gecko 谷歌苹果 webkit Opera:Presto 198 、如何显示/ / 隐藏一个 m dom 元素?请用原生的 t JavaScript 方法实现 dom.style.display=”none”; dom.style.display=””; 199 、t JavaScript 有哪几种数据类型 NumberString Boolean NullUndefined Object 200 、jQuery 框架中 (domView)197IEtridentgeckowebkitOperaPresto198//mdomtJavaScriptdom.style.display=none;dom.style.display=;199tJavaScriptNumberStringBooleanNullUndefinedObject200jQuery.ajax() 的常用参数有哪些?
type
类型:String
默认值: “GET”)。请求方式 (“POST” 或 “GET”), 默认为 “GET”。注意:其它 HTTP 请求
方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
url
类型:String
默认值: 当前页地址。发送请求的地址。
success
类型:Function
请求成功后的回调函数。
参数:由服务器返回,并根据 dataType 参数进行处理后的数据;描述状态的字符串。
这是一个 Ajax 事件。
options
类型:Object
可选。AJAX请求设置。所有选项都是可选的。
async
类型:Boolean
默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置
为 false。
注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
beforeSend(XHR)
类型:Function
发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。
XMLHttpRequest 对象是唯一的参数。
这是一个 Ajax 事件。如果返回 false 可以取消本次 ajax 请求。
cache
类型:Boolean
默认值: true,dataType为 script 和 jsonp 时默认为 false。设置为 false将不缓存此页
面。
jQuery 1.2 新功能。
contentType
类型:String
默认值: “application/x-www-form-urlencoded”。发送信息至服务器时内容编码类型。
默认值适合大多数情况。如果你明确地传递了一个 content-type 给 $.ajax() 那么它必定会发
送给服务器(即使没有数据要发送)。
data
类型:String
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看
processData 选项说明以禁止此自动转换。必须为Key/Value 格式。如果为数组,jQuery 将
自动为不同值对应同一个名称。如 {foo:[“bar1”, “bar2”]} 转换为 ‘&foo=bar1&foo=bar2’。
dataFilter
类型:Function
给 Ajax 返回的原始数据的进行预处理的函数。提供 data 和 type 两个参数:data 是 Ajax
返回的原始数据,type 是调用 jQuery.ajax 时提供的 dataType 参数。函数返回的值将由
jQuery 进一步处理。
dataType
类型:String
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判
断,比如XMLMIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对
象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调
函数。可用值:
“xml”: 返回 XML 文档,可用 jQuery 处理。
“html”: 返回纯文本 HTML 信息;包含的script 标签会在插入 dom 时执行。
“script”: 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 “cache” 参数。
注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET请求。(因为将
使用 DOM 的 script 标签来加载)
“json”: 返回 JSON 数据 。
“jsonp”: JSONP 格式。使用 JSONP 形式调用函数时,如 “myurl?callback=?”
jQuery 将自动替换 ?为正确的函数名,以执行回调函数。
“text”: 返回纯文本字符串
error
类型:Function
默认值: 自动判断 (xml 或 html)。请求失败时调用此函数。
有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。
如果发生了错误,错误信息(第二个参数)除了得到 null 之外,还可能是 “timeout”, “error”,
“notmodified” 和 “parsererror”。
这是一个 Ajax 事件。
个 写一个 post 请求并带有发送数据和返回数据的样例
$.ajax({
url:“1.html”,
data:{name:“张三”,age:18},//post 数据
dataType:“json”,
type:“POST”,
success:function(data){
//data:返回的数据
},
error:function(){
//异常处理
}
});
201 、t JavaScript 数组元素添加、删除、排序等方法有哪些?
Array.concat( ) 连接数组
Array.join( ) 将数组元素连接起来以构建一个字符串
Array.length 数组的大小
Array.pop( ) 删除并返回数组的最后一个元素
Array.push( ) 给数组添加元素
Array.reverse( ) 颠倒数组中元素的顺序
Array.shift( ) 将元素移出数组
Array.slice( ) 返回数组的一部分
Array.sort( ) 对数组元素进行排序
Array.splice( ) 插入、删除或替换数组的元素
Array.toLocaleString( ) 把数组转换成局部字符串
Array.toString( ) 将数组转换成一个字符串
Array.unshift() 在数组头部插入一个元素
202 、如何添加 l html 元素的事件,有几种方法?请列举
a、直接在标签里添加:
这是一个层

b、在元素上通过 js 添加:
c、使用事件注册函数添加
203 、t JavaScript 的循环语句有哪些?
while for do while for…in
204 、作用域- - 编译期执行期以及全局局部作用域问题
理解 js 执行主要的两个阶段:预解析和执行期
205、 、 闭包: :个 下面这个 ul, ,候 如何点击每一列的时候 alert 其 其index? ?
<ulid=“test”>

  • 这是第一条
  • 这是第二条
  • 这是第三条
  • //非闭包实现
    varlis=document.querySelectorAll('li');
    document.querySelector('#test').onclick=function(e){
    for(vari=0;i<lis.length;i++){
    varli=lis[i];
    if(li==e.target){
    alert(i);
    }
    }
    };
    

    //闭包实现

    varlis=document.querySelectorAll('li');
    for(vari=0;i<lis.length;i++){
    varli=lis[i];
    li.onclick=(function(index){
    returnfunction(e){
    alert(index);
    };
    })(i);
    }
    

206 、列出 3 3 条以上 f ff 和 和 E IE 的脚本兼容问题
1、在 IE 下可通过document.frames[“id”];得到该IFRAME对象,
而在火狐下则是通过 document.getElementById(“content_panel_if”).contentWindow;
2、IE 的写法: _tbody=table.childNodes[0]
在 FF 中,firefox 会在子节点中包含空白则第一个子节点为空白"", 而 ie 不会返回空白
可以通过 if("" != node.nodeName)过滤掉空白子对象
3、模拟点击事件
if(document.all){ //ie 下
document.getElementById(“a3”).click();
}
else{ //非 IE
var evt = document.createEvent(“MouseEvents”);
evt.initEvent(“click”, true, true);
document.getElementById(“a3”).dispatchEvent(evt);
}
4、事件注册
if (isIE){window.attachEvent(“onload”, init);}else{window.addEventListener(“load”, init, false);}
207 、列举可以哪些方面对前端开发进行优化
代码压缩、合并减少 http 请求,图片制作精灵图、代码优化
208 、至少列出一种 t JavaScript 继承的实现方式
209 、如现在有一个效果,有显示用户头像、用户昵称、用户其
他信息 ; 当用户鼠标移到头像上时 , 会弹出用户的所有信息 ; 如
果是你,你会如何实现这个功能,请用代码实现?
//答案见:J:\代码,PPT,笔记,电子书\面试题\面试题 02.html
210 、l call 与 与 y apply 有什么作用?又有什么什么区别?用 e callee 属性实现函数
递归?
apply 的参数是数组,call 的参数是单个的值,除此之外,两者没有差别,重点理解 this 的改
变,callee 已经不推荐使用
211 、用正则表达式,写出由字母开头,其余由数字、字母、下
的 划线组成的 6~30 的字符串?
var reg=/
2[\da-zA-Z]{5,29}/;
212 、列举浏览器对象模型 M BOM 里常用的至少 4 4 个对象,并列举 w window 对象的
常用方法至少 5 5 个 个 (0 10 分)
对象:window document location screen history navigator
方法:alert() confirm()prompt() open()close()setInterval() setTimeout()
clearInterval()clearTimeout()
(详细参见:J:\代码,PPT,笔记,电子书\面试题\window 对象方法.png)
213 、t Javascript 中 中 e callee 和 和 r caller 的作用?
caller 是返回一个对函数的引用,该函数调用了当前函数;
用法:fn.caller
callee 是返回正在被执行的 function 函数,也就是所指定的 function 对象的正文。
用法:arguments.callee
214 、对于 y apply 和 和 l call 两者在作用上是相同的,即是调用一个对象的一个方
法,以另一个对象替换当前对象。将一个函数的对象上下文从初始的上下文改
由 变为由 j thisObj 指定的新对象。
但两者在参数上有区别的。对于第一个参数意义都一样,但对第二个参数:?apply 传入的
是一个参数数组,也就是将多个参数组合成为一个数组传入,而 call 则作为 call 的参数传
入(从第二个参数开始)。?如func.call(func1,var1,var2,var3)对应的 apply 写法为:
func.apply(func1,[var1,var2,var3]) 。
215 、在 t Javascript 中什么是伪数组?如何将伪数组转化为标准数组?
伪数组(类数组):无法直接调用数组方法或期望 length 属性有什么特殊的行为,但仍可
以对真正数组遍历方法来遍历它们。典型的是函数的 argument 参数,还有像调用
getElementsByTagName,document.childNodes 之类的,它们都返回 NodeList 对象都属于伪
数组。
可以使用 Array.prototype.slice.call(fakeArray)将数组转化为真正的Array 对象。
216算 、写一个函数可以计算 sum(5,0,-5); 输出 ; 0; sum(1,2,3,4); 输出 10;

functioncalc(){
varresult=0;
for (var i = 0;i < arguments.length; i++) {
varobj=arguments[i];
result+=obj;
}
returnresult;
}
alert(calc(1,2,3,4));

Js 基本功

217 、事件代理怎么实现?
在元素的父节点注册事件,通过事件冒泡,在父节点捕获事件
218、 、 《 正则 》 写出正确的正则表达式匹配固话号 ,号 区号 3-4位 位 ,
为 第一位为 0, , 中横线, ,7-8 位数字 , 中横线, ,3-4 位分机号格式的
固话号
常用正则表达式语法要熟悉
/0[0-9]{2,3}-\d{7,8}/
219》 、《算法》 一下 B A,B 可任选一题作答,两题全答加分
A:农场买了一只羊,第一年是小羊,第二年底生一只,第三年不生,第四年底再生一只,第
五年死掉。
B: 写 出 代 码 对 下 列 数 组 去 重 并 从 大 到 小 排 列
{5,2,3,6,8,6,5,4,7,1,9}
先去重再排序
去重方法参考:J:\代码,PPT,笔记,电子书\面试题
220 、 请写出一张图片的 L HTML 代码 , 已知道图片地址为 “ images/abc.jpg ”, , 宽
100px ,高 50px
221 、请写一个正则表达式:要求最短 6 6 位数,最长 0 20 位,阿拉伯数和英文字
母(不区分大小写)组成
^(?=.\d)(?=.[a-z])(?=.*[A-Z])[a-zA-Z\d]{6,20}$
222 、统计 1 到 到400 亿之间的自然数中含有多少个 1 ?比如 1-21
中 ,有 有 1 、10 、11 、12 、13 、14 、15 、16 、17 、18 、19 、20 、21
有 这么多自然数有 13 个 个 1
答案参考:J:\代码,PPT,笔记,电子书\面试题\面试题_222.html
223 、删除与某个字符相邻且相同的字符,比如 a fdaffdaaklfjklja 字符串处理
之后成为 “ fdafdaklfjklja ”
答案参考:J:\代码,PPT,笔记,电子书\面试题\面试题_223.html
224 、请写出三种以上的 x Firefox 有但 r InternetExplorer 没有的属性和函数
1、在 IE 下可通过document.frames[“id”];得到该IFRAME对象,
而在火狐下则是通过 document.getElementById(“content_panel_if”).contentWindow;
2、IE 的写法: _tbody=_table.childNodes[0]
在 FF 中,firefox 会在子节点中包含空白则第一个子节点为空白"", 而 ie 不会返回空白
可以通过 if("" != node.nodeName)过滤掉空白子对象
3、模拟点击事件
if(document.all){ //ie 下
document.getElementById(“a3”).click();
}
else{ //非 IE
var evt = document.createEvent(“MouseEvents”);
evt.initEvent(“click”, true, true);
document.getElementById(“a3”).dispatchEvent(evt);
}
4、事件注册
if (isIE){window.attachEvent(“onload”, init);}else{window.addEventListener(“load”, init, false);}
225、 、 请写出一个程序, ,个 在页面加载完成后动态创建一个 form 表 表
单, ,个 并在里面添加一个 input 对象并给它任意赋值后义 post 方式
提交到:http://127.0.0.1/save.php
答案参考:J:\代码,PPT,笔记,电子书\面试题\面试题_225.html
226 、用 t JavaScript 实现冒泡排序。数据为 23 、 45 、 18 、 37 、 92 、 13 、 24
面试经常遇到的排序,查找算法要熟悉
227 、解释一下什么叫闭包,并实现一段闭包代码
简单理解就是函数的嵌套形成闭包,闭包包括函数本身及其外部作用域
228 、简述一下什么叫事件委托以及其原理
在元素的父节点注册事件,通过事件冒泡,在父节点捕获事件
229 、前端代码优化的方法
varUser = { 对象
count =1,属性
getCount:function(){方法
return this.count;
}
}
console.log(User.getCount());
varfunc = User.getCount;
console.log(func());
1 undefined(window);
230 、下列 JavaScript 代码执行后,依次 alert 的结果是
(function test(){
var a=b=5;
alert(typeof a);
alert(typeof b);
})();
alert(typeof a);
alert(typeof b);
//number numberundefined number
231 、下列 JavaScript 代码执行后,iNum 的值是
variNum = 0;
for(vari =1; i< 10; i++){
if(i %5 == 0){
continue;
}
iNum++;
}
分析:
i=11
i=22
i=33
i=44
i=5
i=66
i=77
i=88
i=99
232 、输出结果是多少?
1) var a;
varb =a 0;
if (b == b){
console.log(b * 2 + “2” - 0 + 4);
} else {
console.log(!b
2+ “2” -0 +4);
}
答案:26
扩展:关于乘法操作符:J:\代码,PPT,笔记,电子书\面试题\乘性操作符.png
2)

答案:6
3) var t = 10;
function test(t){
var t = t++;//此时的 t 是一个局部变量,全局变量没有任何变化
console.log(t);//此时的结果又是多少?
}test(t);
console.log(t);
答案:10
4)vart =10;
function test(test){
var t= test++;
}test(t);
console.log(t);
答案:10
6)vart =10;
function test(test){
t = test++;
}test(t);
console.log(t);
答案:10
7)vart =10;
function test(test){
t= t+ test;//undefined+10=NaN
console.log(t);
var t= 3;
}test(t);
console.log(t);
答案:NaN 10
8)var a;
varb =a /0;
if (b == b){//b=NaN
console.log(!b * 2 + “2” - 0 + 4);
} else {
console.log(!b * 2 + “2” - 0 + 4);
}
答案:26
9)

答案:Infinity24
233 、到 用程序实现找到 l html 中 中 d id 名相同的元素?

id 名重复的元素
234 、下列 JavaScript 代码执行后,运行的结果是

答案:btn,因为 handler.exec是由 btn这个按钮执行的
235、 、 ☆☆☆下列 下列 JavaScript 代码执行后,依次 alert 的结果是
varobj= {proto: {a:1,b:2}};
function F(){};
F.prototype= obj.proto;
varf =newF();
obj.proto.c= 3;
obj.proto ={a:-1, b:-2};
alert(f.a);//1
alert(f.c);//3
delete F.prototype[‘a’];
alert(f.a);//undefined
alert(obj.proto.a);//-1
236 、下列 JavaScript 代码执行后的效果是
<ulid=‘list’>

  • item
  • item
  • item
  • item
  • item
  • varitems =document.querySelectorAll('#list>li'); for(vari =0;i< items.length;i++){ setTimeout(function(){ items[i].style.backgroundColor ='#fee'; }, 5); } 答案:异常 237 、下列 t JavaScript 代码执行后的 i li 元素的数量是
    <ul>
    <li>Item</li>
    <li></li>
    <li></li>
    <li>Item</li>
    <li>Item</li>
    </ul>
    varitems =document.getElementsByTagName('li');
    for(vari =0; i< items.length;i++){
    if(items[i].innerHTML == ''){
    items[i].parentNode.removeChild(items[i]);
    }
    }
    

    答案:4 个
    238 、程序中捕获异常的方法?
    window.error
    try{}catch(){}finally{}
    239 、 将字符串 ” {KaTeX parse error: Expected 'EOF', got '}' at position 3: id}̲</td><td>{name} ” 中的 {KaTeX parse error: Expected 'EOF', got '}' at position 3: id}̲ 替换 成 成 10 , {name} 替换成 y Tony (使用正则表达式)
    答案:”{KaTeX parse error: Expected 'EOF', got '}' at position 3: id}̲</td><td>{id}{$name}”.replace(/{$id}/g,’
    10′).replace(/{$name}/g,‘Tony’);
    240、 、给 给 g String 对象添加一个方法, , 传入一个 g string 类型的参数, , 然后将 string g
    的每个字符间价格空格返回,例如:
    addSpace(“hello world”) // ->‘he ll o?w o r l d’
    String.prototype.spacify = function(){
    return this.split(’’).join(’ ');
    };
    241 、写出函数 o DateDemo 的返回结果,系统时间假定为今天
    function DateDemo(){
    var d,s=“今天日期是:”;
    d =newDate();
    s += d.getMonth() +"/";
    s += d.getDate() + “/”;
    s += d.getFullYear();
    returns;
    }
    结果:今天日期是:7/17/2010
    242 、 输出今天的日期 ,以 以 D YYYY-MM-DD 的方式 , 比如今天是 4 2014 年 年 9 9 月 月 6 26 日 ,
    则输出 2014-09-26
    vard =newDate();
    // 获取年,getFullYear()返回 4 位的数字
    varyear = d.getFullYear();
    // 获取月,月份比较特殊,0 是 1 月,11 是 12 月
    varmonth =d.getMonth() + 1;
    // 变成两位
    month =month <10 ? ‘0’ + month : month;
    // 获取日
    varday= d.getDate();
    day= day <10 ? ‘0’ + day : day;
    alert(year + ‘-’ + month + ‘-’ + day);
    243、 、 已知数组 [ var?stringArray?=?[ “ This” ”? ,? “ is” ”? ,? “ Baidu” ”? ,? “ Campus” ”] ] ,
    t Alert 出 ” This?is?Baidu?Campus ” 。
    答案:alert(stringArray.join(“”))
    244 、已知有字符串 foo= ” get-element-by-id ”, , 写一个 n function 将其转化成
    驼峰表示法 ” getElementById ” 。
    function combo(msg){
    vararr=msg.split("-");
    for(vari=1;i<arr.length;i++){
    arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1);
    }
    msg=arr.join("");
    return msg;
    }
    245 、r .var ; numberArray=[3,6,2,4,1,5]; (考察基础 API )
    1)实现对该数组的倒排,输出[5,1,4,2,6,3]
    2)实现对该数组的降序排列,输出[6,5,4,3,2,1]
    function combo(msg){
    vararr=msg.split("-");
    for(vari=1;i<arr.length;i++){
    arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1);
    }
    msg=arr.join("");
    return msg;
    }
    246 、把两个数组合并,并删除第二个元素。
    vararray1 = [‘a’,‘b’,‘c’];
    varbArray = [‘d’,‘e’,‘f’];
    varcArray = array1
    答案:
    array1=array1.concat(bArray)
    array1.splice(1,1)
    247 、如何消除一个数组里面重复的元素?
    vararr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];
    function deRepeat(){
    varnewArr=[];
    varobj={};
    varindex=0;
    varl=arr.length;
    for(vari=0;i<l;i++){
    if(obj[arr[i]]==undefined)
    {
    obj[arr[i]]=1;
    newArr[index++]=arr[i];
    }
    else if(obj[arr[i]]==1)
    }
    return newArr;
    }
    varnewArr2=deRepeat(arr);
    alert(newArr2);//输出 1,2,3,4,5,6,9,25
    248 、用 s js 实现随机选取 10 –0 100 之间的 0 10 个数字,存入一个数组,并排序 。
    variArray = [];
    funtiongetRandom(istart, iend){
    variChoice= istart - iend+1;
    return Math.floor(Math.random()* iChoice +istart;
    }
    for(vari=0; i<10; i++){
    iArray.push(getRandom(10,100));
    }
    iArray.sort();
    249 、 正则表达式构造函数 r var w reg=new RegExp( “ xxx ”) ) 与正则表达字面量 var
    reg=// 有什么不同?匹配邮箱的正则表达式?
    答案:当使用 RegExp()构造函数的时候,不仅需要转义引号(即\”表示”),并且还需要
    双反斜杠(即\表示一个\)。使用正则表达字面量的效率更高。?
    250 、1 1 r var l regMail = =
    /^([a-zA-Z0-9-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})KaTeX parse error: Undefined control sequence: \s at position 163: …this.replace(/^\̲s̲+/,"").replace(…/,"");
    } }
    // testthefunction
    varstr= "\t\n test string ".trim();
    alert(str == “test string”); //alerts “true”
    251 、数组和字符串
    <scriptlang=“JavaScript” type=“text/javascript”>
    function outPut(s) {
    document.writeln(s);
    }
    vara =“lashou”;
    varb =a;
    outPut(b);
    a =“拉手”;
    outPut(a);
    outPut(b);
    vara_array= [1, 2, 3];
    varb_array= a_array;
    outPut(b_array);
    a_array[3] = 4;
    outPut(a_array);
    outPut(b_array);

    输出结果:
    答案:lashou 拉手 lashou 1,2,3 1,2,3,4 1,2,3,4
    252 、下列控制台都输出什么
    第 1题:
    function setName(){
    name=“张三”;
    }
    setName();
    console.log(name);
    答案:“张三”
    253 、 第 2 2 题:
    //考点:1、变量声明提升2、变量搜索机制
    vara=1;
    function test(){
    console.log(a);
    vara=1;
    }
    test();
    答案:undefined
    254 、 第 3 3 题:
    varb=2;
    function test2(){
    window.b=3;
    console.log(b);
    }
    test2();
    答案:3
    255 、 第 4 4 题:
    c=5;//声明一个全局变量 c
    function test3(){
    window.c=3;
    console.log©; //答案:undefined,原因:由于此时的 c 是一个局部变量 c,
    并且没有被赋值
    varc;
    console.log(window.c);//答案:3,原因:这里的 c 就是一个全局变量 c
    }
    test3();
    256 、第 5 5 题:
    vararr= [];
    arr[0] = ‘a’;
    arr[1] = ‘b’;
    arr[10]= ‘c’;
    alert(arr.length); //答案:11
    console.log(arr[5]); //答案:undefined
    257 、 第 6 6 题:
    vara=1;
    console.log(a++); //答案:1
    console.log(++a); //答案:3
    258 、 第 7 7 题:
    console.log(null==undefined); //答案:true
    console.log(“1”==1); //答案:true,因为会将数字 1先转换为字符串 1
    console.log(“1”===1); //答案:false,因为数据类型不一致
    259 、第 8 8 题:
    typeof 1; “number”
    typeof “hello”; “string”
    typeof /[0-9]/; “object”
    typeof {}; “object”
    typeof null; “object”
    typeof undefined; “undefined”
    typeof [1,2,3]; “object”
    typeof function(){}; //“function”
    260 、第 9 9 题:
    parseInt(3.14); //3
    parseFloat(“3asdf”); //3
    parseInt(“1.23abc456”);
    parseInt(true);//"true"NaN
    261 、 第 第 1 1 0 0 题:
    //考点:函数声明提前
    function bar() {
    return foo;
    foo= 10;
    function foo() {}
    //var foo =11;
    }
    alert(typeof bar());//“function”
    262 、第 1 11 题:考点:函数声明提前
    varfoo= 1;
    function bar() {
    foo= 10;
    return;
    function foo() {}
    }
    bar();
    alert(foo);//答案:1
    263 、 第 12 题:
    console.log(a);//是一个函数
    vara =3;
    function a(){}
    console.log(a);3
    264 、 第 第 1 1 3 3 题:
    //考点:对 arguments的操作
    function foo(a){
    arguments[0] = 2;
    alert(a);//答案:2,因为:a、arguments 是对实参的访问,b、通过 arguments[i]
    可以修改指定实参的值
    }
    foo(1);
    265 、 第 14 题:
    function foo(a){
    alert(arguments.length);//答案:3,因为 arguments 是对实参的访问
    }
    foo(1, 2, 3);
    266 、 第 15 题
    bar();//报错
    varfoo= function bar(name) {
    console.log(“hello”+name);
    console.log(bar);
    };
    //alert(typeof bar);
    foo(“world”);//“hello”
    console.log(bar);//undefined
    console.log(foo.toString());
    bar();//报错
    267 、 第 16 题
    function test(){
    console.log(“test 函数”);
    }
    setTimeout(function(){
    console.log(“定时器回调函数”);
    }, 0)
    test();
    function foo(){
    varname=“hello”;
    }
    三、 Jquery
    1 、jQuery 的 的 slideUp 画 动画 ,如果目标元素是被外部事件驱动,
    当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行 ,
    该如何处理呢?
    先 stop(true,true)后slideUp()

    上一篇:前端面试题总结(js部分)|上


    1. a-zA-Z_ ↩︎

    2. a-ZA-Z ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值