3.有语句“varx=0;while(____)x+=2;”,要使while循环体执行10次,空白处的循环判定式应写为:C
1
2A.x<10 B.x<=10 C.x<20 D.x<=20
4.JS语句() vara1=10;vara2=20; alert(“a1+a2=”+a1+a2) 将显示()结果。B
1
2
3
4A.a1+a2=30 B.a1+a2=1020 C. a1+a2=a1+a2
10.对于前端人员,经常听到的:结构,表现,行为三者分离中的结构指什么( )B
1
2A: css B: html C: javascript D: document
- var a = false; var x=a?’A’:’B’; X的值是()B
1
2
3
4
5A. A B.B C.TRUE D.FALSE
- 执行以下程序后,x的值是()
var x=0;
switch(++x){
case 0: ++x;
case 1: ++x;
case 2: ++x;
}
1
2A. 1 B. 2 C. 3 D. 4
- Number(null);此代码将返回()
1
2
3
4
5A.Null B.1 C.undefined D.0
17.结束本次循环,进入下一次循环的关键词是()
1
2A. continue B. break C. return D. end
填空题
1
2
3
4
5
6
7
82)<script> var x,y=null; alert(x);//undefined alert(y);//null alert(x=y);//null alert(x==y);//null </script>
4)当单击button按钮时,出现什么结果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<title>UntitledDocument</title> <script language=’javaScript”> function add(){ var first=document.getElementById(‘first’).value; ‘40’ 字符串 var second=parseInt(document.getElementById(‘second).value); 30 数字类型 var third=parseInt(document.getElementById(‘third).value); 70 数字类型 alert(first+second+third); //‘40’+30+70;403070 } </script> <body> <form name="myForm"> <input type="text" id="first" value="40"> <input type="text" id="second" value="30"> <input type="text" id="third" value="70"> <input type="button" value="add" οnclick="add()"> </form> </body>
1
2
3
4
56)function fn(a,b,c){ alert(arguments.length); } fn();//获取实参,结果为0;
1.js的数据类型有哪些//
1
2string,object,number,null,undefined,array,boolean,
3.js的三种输出方式分别是什么 //
1
2console.log() document.write() alert()
小总结:
1
2
3
4
5
6
7
8var a1=10; var a2=20; alert(a1+a2+'='+a1+a2);//30=1020; //'+'放在算式前面代表拼接,如+a1+a2为1020; //'+'放在算式后面,不影响计算,如a1+a2为30; //结构指的是HTML,布局或表现指的是CSS,行为指的是js
//7月15日小更
- 下面代码的执行结果是()
var a=123;
fn(a);
function fn(){a=456}
document.write(a);A
1
2A.456 B.122 C.报错 D.undefined
5.下面代码的执行结果是()
var i=12;
var sum=i++ + ++i + ++i*2 + i-- + i–
document.write(sum+’ ’+i); A
1
2
3
4A.85 13 B.84 12 C.83 11 D.85 14
15.New Date(2012,12,8).getMonth()的结果是什么//C
1
2
3
4A.12 B. 11 C.0 D.13
19.var n=’liang zi ju zhen’.indexOf(‘zi’,7); n的值为A
1
2A.-1 B.5 C.报错 D.-10
20.0.1+0.7==0.8该表达式返回B
1
2A.true B.false C.infinity D.NaN
1) 两次的弹出结果分别是什么
1
2
3
4
5
6
7
8
9var uname = 'jack' function change() { alert(uname) // ?undefined var uname = 'lily' alert(uname) //?lily } change()
2)计算
1
27+’3’等于多少?7-‘3’等于多少? 7*‘3’等于多少//73 4 21
3)求结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16var f = function(s) { if (!arguments.length || !s) { return null; }else if ("" == s) { return 0; }else{ var m = 0; for (var i = 0; i < s.length; i++) { m++ } alert(m);//3 } }; f("你好a")
substring和substr的区别?
1
2
3
4
5
6
7/* substr("找的开始字符串的下标","查找字符串长度"); substring("查找的开始字符串的下标","查找的结束字符串下标"); */ var str = 'xiua baby ning zhen bang you'; console.log(str.substr(5, 4));//baby console.log(str.substring(10,14));//ning //注意:截取位置不包括结束的位置,意味着前闭后开,和random类似
浮点数
1
2
3// js浮点数运算会出现多位小数,如0.1+0.2 = 0.30000000000000004, 这是由于在运算的时候先把浮点数转化成二进制后进行运算,但是有的小数在二进制编码后出现无限循环,因而导致计算出现了误差 alert(0.1+0.2==0.3)//false
日期
1
2
3
4/* console.log(new Date(2012,12,8).getMonth());//0 console.log(new Date("2012-12-8").getMonth());//11 */
indexOf(‘str’[,num]);//字符串中某个字符串的位置
1
2
3
4
5
6
7[]内可写可不写,若写的话,此num尽量往小了写,若是写的过大,超过要查询的字符串的下标,则查不到,会返回-1 var n = 'liang zi ju zhen'; n.indexOf('zi', 7); console.log(n.indexOf('zi', 7))// -1 console.log(n.indexOf('zi'));//6 console.log(n.indexOf('zi', 3));//6
1
2........................................................
7.29 小更新
3.下面对象或数组的创建方式错误的是()B
1
2
3
4
5A.var obj={}; B.Var obj={[]}; C.Var obk=[{}]; D.Var obj={age:123};
1
2
3
4
5
6
7
8
9
10
11var a={ c:'张三', "b":'刘邓', } console.log(a); var a=[{b:12},{name:'jack'},{'p':'dd'}] console.log(a); //json对象里面的格式为键值对,键的加不加双引号都可,值若为数字,双引号加不加都可以,若不是数字的双引号加 //对象的格式为 {},[{},{}],
7.下面描述错误的是()C
1
2
3
4
5
6
7A.document.head //返回head元素 B.document.body //返回body元素 C.document.html //错的,没有这种语法! D.document.documentElement //返回html元素
8.以下返回结果为类数组对象的语句为(多选)BD
1
2
3
4
5A.document.getElementById() B.document.getElementsByClassName() C.document.querySelector() D.document.querySelectorAll()
10.下面代码的输出是什么?( )C
1
2
3
4
5
6
7
8
9
10
11for (var i = 0; i < 3; i++) { setTimeout(function () { console.log(i); }, 1); } for (let i = 0; i < 3; i++) { setTimeout(function () { console.log(i); }, 1); }
1
2
3
4
5A: 0 1 2 and 0 1 2 B: 0 1 2 and 3 3 3 C: 3 3 3 and 0 1 2 D: 2 1 0 and 0 1 2
18.javascript中的操作符不包括( ) A //加减乘除
1
2
3
4
5A. $ B. && C. ?: D. %
二、根据程序写结果
1)代码执行结果是什么
1
2
3
4
5
6
7
8
9
10
11
12
13console.log(a) //undefined var a = 1; var getNum = function() { a = 2; } function getNum() { a = 3; } console.log(a)//1 getNum() console.log(a)//2
2)根据代码写结果
1
2
3
4
5
6
7
8
9
10
11var a = {} var b = { key: "a" } var c = { key: "c" } a[b] = "123"; a[c] = "456"; console.log(a[b])//456
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15var a = {} var b = { key: "a" } var c = { key: "c" } a[b] = "123";//赋值 console.log(a);//{[object Object]:"123"}; a[c] = "456"; console.log(a[b]);//456; // 替换掉了 console.log(a);//{[object Object]:"456"}; console.log(a[c]);//456
1
2
3
4
5
6
7
8
9
10
113)let str4='get-element-by-id' let arr5=[] let arr4=str4.split('-') console.log(arr4) for(let s in arr4){ var str= arr4[s].replace(arr4[s][0],arr4[s][0].toUpperCase()) arr5.push(str) } let str4s=arr5.join('') console.log(str4s)
1
2
3
4
5
6
7
8
9
10
11
12let str4 = 'get-element-by-id' let arr5 = [] let arr4 = str4.split('-') console.log(arr4)//['get','element','by','id'] for (let s in arr4) {//for in循环,通过下标循环数组 var str = arr4[s].replace(arr4[s][0], arr4[s][0].toUpperCase()) arr5.push(str) } let str4s = arr5.join('') console.log(str4s)//['Get','Element','By','Id']
小总结:细节,一定要注重细节!高手过招,细节决定成败,不做眼高手低!加油啊baby!!!
…
8.13小更
2.JS变量定义的语法是什么?
1
2答:var 变量名 = 初始值;
3.JS变量命名规则是什么?
1
2
3
4
5
6
7
8答: 变量名命名规则: 1, 由数字, 字母, 下划线 以及 $符号 组成, 数字不能开头 2, 不能与系统关键字重名; 3, 见名知意 4, 使用驼峰命名法 5, 不要与其他变量名重名
4.JS有几种基本数据类型,分别是什么?
答:
1
2
3
4
5
6
7JS 中五中基本类型: number ------ 数值类型 string ------ 字符串类型 boolean ----- 布尔类型 null -------- 空类型 输出Object undefined --- 未定义类型
5.分支有哪两种?
1
2答:if分支、switch分支
7.循环的执行流程是什么?
1
2
3
4
5
6答: for (①循环变量初始化; ②循环条件; ③循环变量增量) { ④循环语句(循环体); } 循环执行的流程:① - ② - ④ - ③ - ② - ④ - ③ ... ②
8.21小更
3.函数的所有参数会被保存在哪个数组中?
1
2答:arguments
4.什么是闭包函数?使用闭包函数会对局部变量产生什么影响?
1
2
3
4答: 闭包函数:定义的函数内部的函数称为闭包函数。 影响: 如果在闭包函数中使用了局部变量, 该变量将在闭包函数调用结束之后被系统回收
5.当我们通过JS获取页面元素的left、top等属性值时需要注意什么问题?
1
2答:获取的是行间样式的属性值,因此需要我们在行间设置对应的属性值。
6.tween.js的使用步骤?
1
2
3
4
5
6答:Tween.js的使用: 1.引入js 2.语法 Tween.缓动函数名.缓动效果(t, b, c, d) 返回值: 第几步的属性值
7.tween.js使用中四个量t,b,c,d分别代表什么?
1
2
3
4
5
6答: t: 初始的步数(第几步) b: 初始的属性值 c: 属性值的改变量 d: 总共的步数
12.定义函数实现以下功能:清除页面所有计时器。
1
2
3
4
5
6
7
8function clearAllTimer(){ var timer=setInterval(function(){},100){ } for(var i=0;i<timer.length;i++){ clearInterval(i); } }
8.27小更
1.为元素关联事件的方法有哪些?
1
2
3
4
5
61)在DOM元素中直接绑定;为元素添加事件属性 2)在JavaScript代码中绑定;on+事件名称 3)绑定事件监听函数 addEventListener; IE8.0及其以下版本不支持该方法,它使用attachEvent()来绑定事件监听函数
2.JS中有哪几种类型的事件?
1
2鼠标事件、键盘事件、表单事件、触屏事件;
3.mousedown、mouseup、click三种类型事件的触发顺序是什么?
1
2mousedown、mouseup、click
4.在触发dbclick事件时,同时也会触发click事件.怎么避免在触发双击事件时触发单击事件(代码实现)?
1
2
3
4
5
6
7
8
9
10
11
12var timeoutID = null; oneDiv.onclick = function() { clearTimeout(timeoutID); timeoutID = setTimeout(function() { console.log("单击"); }, 200); } oneDiv.ondblclick = function() { clearTimeout(timeoutID); console.log("双击"); }
5.失去焦点和得到焦点会触发的事件是什么?
1
2blur focus
6.写出你知道的能够通过事件对象获取到的位置信息?
1
2
3screenX、screenY;clientX、clientY; offsetX、offsetY; pageX、pageY;
7.谈谈你对事件冒泡与事件捕获的理解?
1
2
3事件冒泡: 事件从最明确的标签开始逐渐向他的父级标签扩散; 事件捕获: 事件从最不明确的标签开始逐渐扩散到最明确的标签;
8.面向对象与面向过程的区别?
1
2
3面向过程: 以事件为中心, 将事件的完成分成若干步, 按照具体步骤实施. 面向对象: 以事物为中心, 考虑的是完成某件事儿, 都有哪些事物参加了, 然后逐个完善这些事物. 最后, 事件的完成是这些事物的相互结合.
9.写出两种JS中创建对象的方法(对象名自己定)。
1
2
3var car = new Object(); var stu = {};
10.使用简单写法定义一个car对象,要求:拥有品牌、价格、颜色特征;拥有跑、刹车行为(属性值自定,行为中输出一句话即可)?
1
2
3
4
5
6
7
8
9
10
11
12var car = { brand:"奔驰", price:600, color:"black", run:function() { console.log("嗖嗖的"); }, stop:function() { console.log("刹车,吱吱的"); } }
11.快速枚举上述car对象,逐一输出各个键值对儿?
1
2
3
4for (var k in car) { console.log(k + ":" + car[k]); }
12.有批量创建敌机对象的需求,敌机有速度、血量、得分、坐标位置(x和y两个)属性,另外每个敌机对象都有移动的行为(使用log输出一句话即可)。使用代码处理这个需求。
1
2
3
4
5
6
7
8
9
10
11
12
13function Enemy(x, y, speed, hp, score) { // 属性 this.x = x; this.y = y; this.speed = speed;// 速度 this.hp = hp;// 血量 this.score = score;// 分数 } // 移动 Enemy.prototype.move = function() { console.log(“你会飞吗?”); }
9.3小更
2.写出两种向父元素中添加子元素的方法?
1
2答: appendChild()、insertBefore(new,old)
3.替换指定标签、移除指定标签方法分别是什么?
1
2
3答: 替换:replaceChild(new,old) 移除:removeChild()
4.设置标签属性、获取标签属性、获取指定节点的父节点、获取指定节点的所有子节点,分别对应的属性和方法是什么?
1
2答: setAttribute()、getAttribute()、parentNode、childNodes
5.想要获取某一元素包含边框和内边距的宽度应该使用哪个属性?
1
2答: offsetWidth
6.现有一id名为toTop的div怎么设置能够实现以下效果:点击该div,使页面返回顶部(CSS样式和JS都要写出来)?
1
2
3
4
5
6
7
8
9
10答: #toTop { position: fixed; right: 15px; bottom: 15px; } document.getElementById(“toTop”).onClick = function() { document.body.scrollTop = 0; }
window有哪些子对象?
1
2
3
4
5
6
71, document 对象 2, history 对象 3, location 对象 4, navigator 对象 5, screen 对象 6, frames 对象
8.想要获取或者处理窗口的URL信息,需要对哪个对象进行操作?
1
2答: location 对象
谈谈你对取消默认行为与阻止事件传播的认识。
1
2
3
4
5
6
7取消默认行为是取消系统的相关默认事件,取消默认行为的方式根据事件绑定方式的不同,分为两种: 1, on + 事件类型、attachEvent()使用return false;阻止默认行为; 2, addEventListener 系列使用even.preventDefault();阻止默认行为; 阻止事件传播是阻止事件的传递,根据不同类型的事件,阻止事件传播可以使用不同的方法: 1,冒泡类型的事件可以通过even.cancelBubble = true;阻止事件传播; 2,捕获类型的事件可以通过even.stopPropagation(); 阻止事件传播;
怎么让有一段代码只在Chrome浏览其中运行(代码实现)?
1
2
3
4if (navigator.userAgent.indexOf("Chrome") != -1) { alert("人生要想过得去..."); };
谈谈你对键盘事件的认识?
1
2
3
41,常用的键盘事件keydown(键盘按下)、keyup(键盘抬起)、keypress(键盘一直被按压) 2,如果给元素关联了keydown事件同时又一直按压键盘不抬起,会一直触发keydown事件(类似于keypress的效果 3,可以通过事件对象的keyCode值的不同,区别按的是键盘的哪个按键,从而做出不同的响应;
2021.2.26小更
1.style标签写在body前与写body后有什么区别,会造成什么后果
1
2
3
4
5写在body标签前利于浏览器逐步渲染: 写在body标签后:由于浏览器以逐行方式对html文档进行解析,当解析到写在尾部的样式表(外联或写在 style标签)会导致浏览器停止之前的渲染,等待加载且解析样式表完成之后重新渲染; 在windows的IE下可能会出现FOUC现象(即样式失效导致的页面闪烁问题);
2.jQuery中的" . e x t e n d ( ) " 和 " .extend()"和" .extend()"和".fn.extend()"的区别:
1
2
2021年4月份找工作时碰到的一些面试题总结
1.原型链
2.promise
3.vuex值页面刷新消失
4.localStorage、session、cookie
5.内存泄漏
6.闭包
7.GC
8.垃圾回收机制
9.父子间传值 props、父子间通信 即改变值互相影响 $parent 和 $children、refs
10.事件监听
11.mixin
2021.9.13 小更
微任务 和宏任务
1
2
3
4
5
6
7
8
9
10
11
12setTimeout(function(){ console.log('1') }); new Promise(function(resolve){ console.log('2'); resolve(); }).then(function(){ console.log('3') }); console.log('4');
正确的执行顺序是 2 4 3 1
有兴趣的可以看下大佬对宏任务和微任务的详细介绍,举的例子很形象有趣,犹如醍醐灌顶,受益颇多啊,这是博客链接 https://www.cnblogs.com/jiasm/p/9482443.html
闭包
MDN链接,里面有对闭包进行详细的讲解 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures
最后
以上就是淡定手链最近收集整理的关于前端笔试题js(容易翻车的小坑)(不定时更新)的全部内容,更多相关前端笔试题js(容易翻车内容请搜索靠谱客的其他文章。
发表评论 取消回复