Web前端开发——BAT面试题汇总及答案04(持续更新中)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44253336/article/details/101095334

一、前言

  1. 做这个的初心是希望巩固自己的基础知识,当然也希望能够帮助更多的开发者!
  2. 有些题目有多种答案,本文只给出了其中的一种,哪里有问题的话欢迎指出~
  3. 这个栏目将持续更新,前端的小伙伴欢迎关注噢~

二、JS 基础篇

26、要将页面的状态栏中显示“已经选中该文本框”,下列 JavaScript 语句正确的是( A )

A. window.status=”已经选中该文本框”
B. document.status=”已经选中该文本框”
C. window.screen=”已经选中该文本框”
D. document.screen=”已经选中该文本框”

27、以下哪条语句会产生运行错误:(A)

A.var obj = ();
B.var obj = [];
C.var obj = {};
D.var obj = //;

28、以下哪个单词不属于 javascript 保留字:(B)

A.with
B.parent
C.class
D.void

29、请选择结果为真的表达式:(C)

A.null instanceof Object
B.null === undefined
C.null == undefined
D.NaN == NaN

30、分析代码,得出正确的结果。

var a=10, b=20 , c=30;
++a;
a++;
e=++a+(++b)+(c++)+a++;
alert(e);

答案:弹出提示对话框:77
var a=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);

31、写出函数 DateDemo 的返回结果,系统时间假定为今天

function DateDemo(){
var d, s="今天日期是:";
d = new Date();
s += d.getMonth() + "/";
s += d.getDate() + "/";
s += d.getFullYear();
return s;}

结果:今天日期是:9/21/2019

32、 写出程序运行的结果

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=5 i=5
k = i + j;//k=10
}
//结果:10

33、截取字符串 abcdefg 的 efg

alert(‘abcdefg’.substring(4));

34、列举浏览器对象模型 BOM 里常用的至少 4 个对象,并列举 window 对象的常用方法至少 5 个

对象:Window document location screen history navigator
方法:Alert() confirm() prompt() open() close()

35、简述列举文档对象模型 DOM 里 document 的常用的查找访问节点的方法并做简单说明

Document.getElementById 根据元素 id 查找元素
Document.getElementByName 根据元素 name 查找元素
Document.getElementTagName 根据指定的元素名查找元素

36、JavaScript 的数据类型都有什么?

基本数据类型:String,Boolean,Number,Undefined,Null
引用数据类型:Object(Array,Date,RegExp,Function)

37、简述创建函数的几种方式

第一种(函数声明):
function sum1(num1,num2){
return num1+num2;
}
第二种(函数表达式):
var sum2 = function(num1,num2){
return num1+num2;
}
匿名函数:
function(){}:只能自己执行自己
第三种(函数对象方式):
var sum3 = new Function(“num1”,“num2”,“return num1+num2”);

38、Javascript 如何实现继承?

原型链继承,借用构造函数继承,组合继承,寄生式继承,寄生组合继承

39、Javascript 创建对象的几种方式?

工厂方式,构造函数方式,原型模式,混合构造函数原型模式,动态原型方式

40、把 Script 标签 放在页面的最底部的 body 封闭之前 和封闭之后有什么区别?浏览器会如何解析它们?

如果说放在 body 的封闭之前,将会阻塞其他资源的加载
如果放在 body 封闭之后,不会影响 body 内元素的加载

41、DOM 操作——怎样添加、移除、移动、复制、创建和查找节点。

1.创建新节点
createDocumentFragment() // 创建一个 DOM 片段
createElement() // 创建一个具体的元素
createTextNode() // 创建一个文本节点
2.添加、移除、替换、插入
appendChild()
removeChild()
replaceChild()
insertBefore() // 在已有的子节点前插入一个新的子节点
3.查找
getElementsByTagName() // 通过标签名称
getElementsByName() // 通过元素的 Name 属性的值(IE 容错能力较强,会得到一个数组,
其中包括 id 等于 name 值的)
getElementById() // 通过元素 Id,唯一性

42、js 延迟加载的方式有哪些?

1.defer 和 async
2.动态创建 DOM 方式(创建 script,插入到 DOM 中,加载完毕后 callBack)
3.按需异步载入 js

43、documen.write 和 innerHTML 的区别?

document.write 只能重绘整个页面
innerHTML 可以重绘页面的一部分

44、哪些操作会造成内存泄

内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用
数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的
内存即可回收。
1.setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
2.闭包
3.控制台日志
4.循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)

45、split() join() 的区别

答:前者是切割成数组的形式,后者是将数组转换成字符串


前端面试题系列将会持续更新,欢迎关注该博客~

相关文章推荐:
Web前端开发——BAT面试题汇总及答案01(持续更新中)
Web前端开发——BAT面试题汇总及答案02(持续更新中)
Web前端开发——BAT面试题汇总及答案03(持续更新中)

猜你喜欢

转载自blog.csdn.net/weixin_44253336/article/details/101095334