web前端 第一阶段面试题(2),50家大厂面试万字精华总结

简介: web前端 第一阶段面试题(2),50家大厂面试万字精华总结

正文

continue跳过本次循环,执行下一次循环。

2. i++和++i的区别?

答案:

i++ :先用i值后加1,

++i :先加1后用i值,

计算:var n=5; 求 var num=n++ + ++n + n++ + ++n+n;  //37

3. JavaScript都有哪些数据类型?

答案:

原始类型:数值型/字符串型/布尔型/undefined/null

引用类型:对象

**4. 自调用函数是什么?**用于什么地方?

答案:立即执行的函数。 (function(){ //函数体 })();

用于创建一个局部作用域。

5. slice和splice有什么区别?

答案:

slice截取子数组 ,从指定的数组中,截取几个连续的元素组成一个新数组

splice允许从指定数组中,删除一部分元素,同时再添加另一部分元素

6. typeof返回的类型有哪些?

答案:

number、string 、boolean 、undefined 、object 、function
ex:
var arr=[1,2,3,4,5];
console.log(typeof(arr)); //object
function myDemo(){
return function test(){};
}
console.log(typeof(myDemo())); //function

7. 取 1~11之间的随机数 (即包括1不包括11)?

答案:

Math.floor(Math.random()*10+1)
parseInt (Math.random()*10+1)

8. 什么是变量声明提前?

答案:

使用var关键字声明的变量,会将声明提升到所在作用域的最前边。。

9. push、pop、shift和unshift 区别?

答案:

这两组同为对数组的操作,并且会改变数组的本身的长度及内容。

不同的是push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。。

10. 例举4种强制类型转换和3种隐式类型转换?

答案:

强制转换:parseInt/parseFloat/Number/toString

隐式转换:

字符串+数值   数值转字符串

数值+布尔型   布尔型中true转为1,false转为0

字符串+布尔型  布尔型转为字符串。

11. 函数声明与函数表达式的区别?

答案:

相同点:两者都可以创建函数。

不同点:函数声明可以存在函数提升(前),函数表达式不存在函数提升(前)。

//函数声明
function myFunction(){
function innerFunction() {}
}
//以下为函数表达式
var myFunc = function(){};
myFunc(function(){
return function(){};
} );

12. 请指出JavaScript宿主对象和原生对象的区别?

答案:

宿主对象:指JavaScript解释器提供的对象,由解释器厂家自定义并提供实现,不同的解释器提供的扩展对象存在较大的差异(DOM和BOM对象)。

原生对象:JavaScript语言本身预定义的对象,在ECMAScript标准中定义,由所有的解释器厂家来提供具体实现(Array,Date,Math,Number,String,Boolean等)。

13. js中有哪些内置函数?

**答案:**Object,Array, Boolean, Number, String, Function, Date, Math, RegExp, Error, Global

14.列举出获取日期相关函数

答案:

console.log(Date.now());  // 返回当前日期和时间’1970/01/01 00:00:00’之间的毫秒值
var dt = newDate();  // 获取当前时间—年 月 日 时 分 秒
console.log(dt.getTime());  //返回当前日期和时间’1970/01/01 00:00:00’之间的毫秒值
console.log(dt.getFullYear()); // 年份
console.log(dt.getMonth()+1); // 月份(0-11)
console.log(dt.getDate()); // 日期(0/1-31)
console.log(dt.getDay()); //星期(0-6)
console.log(dt.getHours()); // 小时(0-23)
console.log(dt.getMinutes()); // 分钟(0-59)
console.log(dt.getMilliseconds); // 返回毫秒(0-999)
console.log(dt.getSeconds()); // 秒(0-59)

15.Math相关函数

**答案:**

Math.random()- 返回 0 ~ 1 之间的随机数
Math.abs(x) -``返回数的绝对值
Math.ceil(x)- 向上取整
Math.floor(x)- 向下取整
Math.round() 四舍五入
Math.max() 和 Max.min() 获取一组数据中的最大值和最小值
Math.PI  获取圆周率π 的值Math.pow() 获取一个值的多少次幂
Math.sqrt() 对数值开方
Math.pow(10,2) = 100;
Math.sqrt(100) = 10;

16.null和undefined的区别?

答案:

undefined是访问一个未初始化的变量时返回的值,

null是访问一个尚不存在的对象时所返回的值。因此,可以把undefined看作是空的变量,而null看作是空的对象。

17.=有什么不同?

答案:

== 抽象相等,比较时,会先进行类型转换,然后再比较值;

===严格相等,判断两个值相等同时数据类型也得相同。

18.setTimeout和setInterval的区别是什么?

答案:

二者都是用来设置定时操作的。

setTimeout: 设置一个定时器,在定时器到期后执行一次函数或代码段

setInterval: 设置一个定时器,以固定的时间间隔重复调用一个函数或者代码段

19. 请说出以下代码执行结果

for (var i = 0; i < 3; i++) {
setTimeout(function() {
console.log(i);
}, 0);
console.log(i);
}

**答案:**0 1 23 3 3,执行过程如下

var i = 0;
console.log(i); i++;
console.log(i); i++;
console.log(i);i++;
setTimeout(function() {
console.log(i);
}, 0);
setTimeout(function() {
console.log(i);
}, 0);
setTimeout(function() {
console.log(i);
}, 0); //输出 0 1 2 3 3 3

20. 请说出(true+flase)>2+true的执行结果

答案:false

21. 当前代码块输出结果是什么?

var z=10;
function foo(){console.log(z);}
(function(funArg){var z=20;funArg();})(foo);

答案:10,自调用函数。

22. setTimeout(function(){},10)表示什么意思?

答案:每隔10毫秒调用一次函数。

23. 程序中捕获异常的方法?

答案

try{
}catch(e){
}finally{
}

24. 以下代码执行结果?

var uname = ‘jack’
function change() {
alert(uname) // ?
var uname = ‘lily’
alert(uname) //?
}
change()

答案:undefined lily

25. 如何使用npm下载express模块?

答案:npm install express

26. split和join的区别?

答案:split()将字符串按照指定的字符分割成一个数组,并返回

join()将数组用指定的字符连接成一个字符串,并返回

27. 看下列代码会有什么样的输出?

var foo =“11”+2-“1”;
console.log(foo);
console.log(typeof foo);

答案:111  number

**28. foo = foo||bar ,这行代码是什么意思?**为什么要这样写?

答案:这种写法称之为短路表达式

相当于:

var foo;
if(foo){
foo=foo;
}else{
foo=bar;
}

常用于函数参数的空判断

29. 用js实现随机选取10–100之间的10个数字,存入一个数组,并排序

答案

function getRandom(istart, iend){
var iChoice = iend -istart +1;
returnMath.floor(Math.random() * iChoice+ istart);
}
var iArray = [];
for(var i=0; i<10; i++){
var result= getRandom(10,100);
iArray.push(result);
}
iArray.sort();

30. 如何获取javascript三个数中的最大值和最小值?

js基础

1)对js的理解?

2)请说出以下代码输出的值?

3)把以下代码,改写成依次输出0-9

4)如何区分数组对象,普通对象,函数对象

5)面向对象、面向过程

6)面向对象的三大基本特性

7)XML和JSON的区别?

8)Web Worker 和webSocket?

9)Javascript垃圾回收方法?

10)new操作符具体干了什么呢?

11)js延迟加载的方式有哪些?

12)WEB应用从服务器主动推送Data到客户端有那些方式?


相关文章
|
17天前
|
前端开发
【前端web入门第四天】02 CSS三大特性+背景图
本文详细介绍了CSS的三大特性:继承性、层叠性和优先级,并深入讲解了背景图的相关属性,包括背景属性、背景图的平铺方式、位置设定、缩放、固定以及复合属性。其中,继承性指子元素自动继承父元素的文字控制属性;层叠性指相同属性后定义覆盖前定义,不同属性可叠加;优先级涉及选择器权重,包括行内样式、ID选择器等。背景图部分则通过具体示例展示了如何设置背景图像的位置、大小及固定方式等。
238 91
|
17天前
|
前端开发
【前端web入门第四天】01 复合选择器与伪类选择器
本文档详细介绍了CSS中的复合选择器与伪类选择器。复合选择器包括后代选择器、子代选择器、并集选择器和交集选择器,能够更精确地定位和样式化元素。后代选择器用于选中某元素的所有后代,子代选择器仅选中直接子元素。并集选择器可为多个标签设置相同样式,而交集选择器则选中同时满足多个条件的元素。此外,还介绍了伪类选择器,如鼠标悬停效果和超链接的不同状态。
50 32
【前端web入门第四天】01 复合选择器与伪类选择器
|
17天前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`&lt;select&gt;` 和 `&lt;option&gt;`)、文本域(`&lt;textarea&gt;`)、标签解释(`&lt;label&gt;`)、各类按钮(`&lt;button&gt;`)及表单重置功能、无语义布局标签(`&lt;div&gt;` 和 `&lt;span&gt;`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
17天前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
49 28
|
1天前
|
存储 前端开发 JavaScript
浅谈Web前端安全策略xss和csrf,及又该如何预防?
该文章详细讨论了Web前端安全中的XSS(跨站脚本攻击)和CSRF(跨站请求伪造)攻击原理及其防范措施,帮助读者了解如何保护Web应用程序免受这两种常见安全威胁的影响。
浅谈Web前端安全策略xss和csrf,及又该如何预防?
|
19天前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`&lt;ul&gt;`嵌套`&lt;li&gt;`)、有序列表(`&lt;ol&gt;`嵌套`&lt;li&gt;`)和定义列表(`&lt;dl&gt;`嵌套`&lt;dt&gt;`和`&lt;dd&gt;`)。
42 19
|
17天前
|
前端开发 JavaScript
【前端web入门第三天】01 css定义和引入方式 四种标签选择器
本文档详细介绍了CSS的基础知识及其应用。内容涵盖了CSS的定义、CSS在HTML中的引入方式,包括内部样式表、外部样式表及行内样式表的使用场景与方法。此外,还深入解析了不同种类的选择器:标签选择器、类选择器、ID选择器以及通配符选择器的功能与应用场景,并提供了实例帮助理解。最后,通过具体的新属性示例,指导如何使用这些选择器来实现基本的盒子绘制。适合初学者系统学习CSS。
34 15
|
19天前
|
前端开发 Windows
【前端web入门第一天】02 HTML图片标签 超链接标签 音频标签 视频标签
本文档详细介绍了HTML中的图片、超链接、音频和视频标签的使用方法。首先讲解了`&lt;img&gt;`标签的基本用法及其属性,包括如何使用相对路径和绝对路径。接着介绍了`&lt;a&gt;`标签,用于创建超链接,并展示了如何设置目标页面打开方式。最后,文档还涵盖了如何在网页中嵌入音频和视频文件,包括简化写法及常用属性。
32 13
|
16天前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
28 11
|
9天前
|
编解码 前端开发 JavaScript
web端 本地调用摄像头、前端摄像头
web端 本地调用摄像头、前端摄像头