二、 前端面试知识点
1. target与currentTarget区别
target:指的是事件流的目标阶段,获取的是被点击的元素。
currentTarget:在事件流的捕获和冒泡阶段时,是指向当前事件活动对象,只有在目标阶段的时候两者才会相等。
2.举几个h5的新特性
- 新增语义化标签,如
<header>
、<footer>
、<section>
- 新增api,如websocket API,canvas API,新增本地存储
localStorage
、Seesionstorage
- CSS 边框、背景、动画
3. 描述 NaN 指的是什么?
NaN
(not a number)是 JavaScript 中用来表示一个无效的或未定义的数字结果的特殊值。NaN 也是 Number 对象中的静态属性。由于其与任何值的比较结果都为 false
,在检查一个值是否是 NaN
时,推荐使用 Number.isNaN()
方法
4. 说说let var const 的区别
var关键字:var的作用域是函数作用域或全局作用域,解析器在对js解析时,将var关键字声明的变量的声明提升到代码块的顶部,只提升声明,不提升赋值,这种形式称为hosting(提升)
。var声明的变量可以先使用后声明。也可以可以在同一作用域中重复声明同名变量。若在赋值前调用,就会出现暂时性死区,值为undefined
。
let、const关键字: let、const的作用域是存在于块级作用域下(即花括号{}
)。通过 let、const
定义的变量不会被提升到顶端。在声明 let、const
变量之前就使用它会导致 ReferenceError。变量从块的开头一直处于“暂时死区”,直到声明为止。并且在同一作用域中不能重复声明同名变量。const
和let
的区别就是const
定义的变量不能重新赋值,且必须在声明时赋值。如果const
声明的是对象或数组,其内容仍可以修改。