专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

前端基本的面试问题和解答

ins518 2024-09-21 00:42:21 技术文章 16 ℃ 0 评论

1、什么是NaN?它的类型是什么?如何可靠地测试一个值是否等于NaN?

NaN属性表示“不是数字”的值。这个特殊值是由于一个操作数是非数字的(例如“abc”/ 4)或者因为操作的结果是非数字而无法执行的。

虽然这看起来很简单,但NaN有一些令人惊讶的特征,如果人们没有意识到这些特征,就会导致bug。

虽然NaN的意思是“不是数字”,但它的类型是,数字:

使用isNaN()也不是一个好的解决方案,ES6提供了一个新的Number.isNaN()函数 。

2:什么是JavaScript中的“闭包”?举一个例子。

闭包是一个内部函数,它可以访问外部(封闭)函数的作用域链中的变量。闭包可以访问三个范围内的变量;具体来说:(1)变量在其自己的范围内,(2)封闭函数范围内的变量,以及(3)全局变量。

这里是一个例子:

var globalVar = "xyz";
 (function outerFunc(outerArg) {
 var outerVar = 'a';
 (function innerFunc(innerArg) {
 var innerVar = 'b';
 console.log(
 "outerArg = " + outerArg + "\n" +
 "innerArg = " + innerArg + "\n" +
 "outerVar = " + outerVar + "\n" +
 "innerVar = " + innerVar + "\n" +
 "globalVar = " + globalVar);
 })(456);
})(123);

在上面的例子中,innerFunc,outerFunc和全局名称空间的变量都在innerFunc的范围内。上面的代码将产生以下输出:

outerArg = 123
innerArg = 456
outerVar = a
innerVar = b
globalVar = xyz

3、如何在数组的开头添加元素?最后如何添加一个?

var myArray = ['a', 'b', 'c', 'd'];
myArray.push('end');
myArray.unshift('start');
console.log(myArray); // ["start", "a", "b", "c", "d", "end"]

4:检测一个变量是一个String类型

typeof(obj)

5、什么是盒子模型?

在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分。这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或区域。4个部分一起构成了css中元素的盒模型。

6、行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

行内元素:a、b、span、img、input、strong、select、label、em、button、textarea
块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote
空元素:即系没有内容的HTML元素,例如:br、meta、hr、link、input、img

7、请说出三种减低页面加载时间的方法

压缩css、js文件合并js、css文件,减少http请求
外部js、css文件
放在最底下
减少dom操作,尽可能用变量替代不必要的dom操作

8:Javascript中的定时器有哪些?他们的区别及用法是什么?

setTimeout 只执行一次
setInterval 会一直重复执行

9:什么是mvvm mvc是什么区别 原理

一、MVC(Model-View-Controller)
MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。
MVC使用非常广泛,比如JavaEE中的SSH框架

10:关于JS事件冒泡与JS事件代理(事件委托)

1.事件冒泡:
 通俗易懂的来讲,就是当一个子元素的事件被触发的时候(如onclick事件),该事件会从事件源(被点击的子元素)开始逐级向上传播,触发父级元素的点击事件。
2.事件委托
 事件委托,首先按字面的意思就能看你出来,是将事件交由别人来执行,再联想到上面讲的事件冒泡,是不是想到了?对,就是将子元素的事件通过冒泡的形式交由父元素来执行。下面经过详细的例子来说明事件委托:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表