首页 > 400个最常见的 JavaScript 面试问答(8)
头像
海拥
发布于 08-08 11:00
+ 关注

400个最常见的 JavaScript 面试问答(8)

本文正在参与【[ 面霸养成记 ] 】 征文活动,一起来聊聊校招的那些事吧,牛客周边和百元京东卡等你来领~

写在前面的

大家好,我是 海拥 ,专注于前端知识的分享。今天将给大家带来的是 400 个最常见的 JavaScript 面试问答第七部分。接下来我会持续更新(争取日更,也可能每周3-5篇),每小节大概 10 道题左右,总共会有 400 多道。

大家一定要记得点赞收藏呀!!!

编号 问题
1 在 JavaScript 中创建对象的可行方法有哪些?
2 什么是原型链?
3 call、apply、bind有什么区别?
4 什么是 JSON 及其常见操作?
5 数组slice()方法的目的是什么?
6 数组splice()方法的目的是什么?
7 slice()和splice()有什么区别?
8 你如何比较 Object 和 Map
9 == 和 === 运算符有什么区别?
10 什么是 lambda 或 箭头函数?
11 什么是头等函数?
12 什么是一阶函数?
13 什么是高阶函数?
14 什么是一元函数?
15 什么是柯里化函数?
16 什么是纯函数?
17 let 关键字的用途是什么?
18 let 和 var 有什么区别?
19 为什么选择 let 这个名字作为关键字?
20 你如何在没有错误的情况下重新声明 switch 块中的变量?
21 什么是暂时性死区?
22 什么是IIFE(立即执行函数表达式)?
23 使用模块有什么好处?
24 什么是memoization(记忆)?
25 什么是Hoisting(变量提升)?
26 ES6 中的类是什么?
27 什么是closures(闭包)?
28 什么是modules(模块)?
29 为什么需要模块?
30 javascript 中的作用域是什么?
31 什么是Service Worker?
32 如何使用 Service Worker 操作 DOM?
33 如何在 Service Worker 重新启动时重用信息?
34 什么是 IndexedDB?
35 什么是 web storage?
36 什么是 post message?
37 什么是 Cookie ?
38 为什么需要 Cookie ?
39 cookie 中有哪些选项 ?
40 你如何删除cookie ?
41 cookie、本地存储和会话存储有什么区别 ?
42 localStorage 和 sessionStorage 的主要区别是什么?
43 你如何访问web 存储?
44 会话存储有哪些可用的方法?
45 什么是存储事件及其事件处理程序?
46 为什么需要web 存储?
47 你如何检查 Web 存储浏览器支持?
48 你如何检查web workers浏览器支持?
49 举个 web worker 的例子
50 web worker 对 DOM 的限制是什么?
51 什么是promise?
52 为什么需要promise?
53 promise的三种状态是什么?
54 什么是回调函数?
55 为什么我们需要回调?
56 什么是回调地狱?
57 什么是服务器发送事件?
58 你如何接收服务器发送的事件通知?
59 你如何检查浏览器对服务器发送事件的支持?
60 服务器发送的事件有哪些可用的事件?
61 promise的主要规则是什么?
62 回调中的回调是什么?
63 什么是 promise chaining?
64 什么是 promise.all?
65 promise 中 race 方法的目的是什么?
66 什么是 javascript 中的严格模式?
67 为什么需要严格模式?
68 如何声明严格模式?
69 双感叹号的目的是什么?
70 删除运算符的目的是什么?
71 什么是typeof运算符?
72 什么是未定义属性?
73 什么是空值?
74 null 和 undefined 有什么区别?
75 什么是eval?
76 Window和Document有什么区别?
77 你如何在 javascript 中访问历史记录?
78 你如何检测大写锁定键是否打开?
79 什么是isNaN?
80 未声明变量和未定义变量有什么区别?

71.什么是typeof运算符?

您可以使用 JavaScript typeof 运算符来查找 JavaScript 变量的类型。它返回变量或表达式的类型。

typeof "Haiyong Abraham"     // Returns "string"
typeof (1 + 2)        // Returns "number"

⬆ 返回顶部


72.什么是未定义属性?

undefined 属性表示一个变量没有被赋值,或者根本没有声明。未定义值的类型也是未定义的。

var user;    // 值未定义,类型未定义
console.log(typeof(user)) //未定义

任何变量都可以通过将值设置为 undefined 来清空。

user = undefined

⬆ 返回顶部


73.什么是空值?

值 null 表示有意缺少任何对象值。它是 JavaScript 的原始值之一。空值的类型是对象。
您可以通过将值设置为 null 来清空变量。

var user = null;
console.log(typeof(user)) //object

⬆ 返回顶部


74.null 和 undefined 有什么区别?

以下是 null 和 undefined 之间的主要区别,

null undefined
它是一个赋值值,表示变量不指向任何对象。 它不是已声明变量但尚未赋值的赋值值。
null 的类型是object undefined 的类型是 undefined
空值是一个原始值,表示空、空或不存在的引用。 未定义值是在变量尚未赋值时使用的原始值。
表示变量没有值 表示没有变量本身
执行原始操作时转换为零 (0) 执行原始操作时转换为 NaN

⬆ 返回顶部

75.什么是eval?

eval() 函数计算表示为字符串的 JavaScript 代码。字符串可以是 JavaScript 表达式、变量、语句或语句序列。

console.log(eval('1 + 2')); // 3

⬆ 返回顶部


76.Window和Document有什么区别?

以下是Window和Document之间的主要区别,

Window Document
它是任何网页中的根级元素 它是 window 对象的直接子级。这也称为文档对象模型(DOM)
默认情况下,窗口对象在页面中隐式可用 您可以通过 window.document 或 document 访问它。
它有alert()、confirm()等方法和文档、位置等属性 它提供了 getElementById、getElementByTagName、createElement 等方法

⬆ 返回顶部


77.你如何在 javascript 中访问历史记录?

window.history 对象包含浏览器的历史记录。您可以使用 back() 和 next() 方法加载历史记录中的上一个和下一个 URL。

function goBack() {
  window.history.back()
}
function goForward() {
  window.history.forward()
}

==注意==:您也可以在没有窗口前缀的情况下访问历史记录。

⬆ 返回顶部


78.你如何检测大写锁定键是否打开?

所述mouseEvent getModifierState()用于返回一个布尔值,指示指定的修饰键是否被激活。CapsLock、ScrollLock 和 NumLock 等修饰符在单击时激活,再次单击时停用。

让我们以一个输入元素为例来检测 CapsLock 开/关行为,

<input type="password" onmousedown="enterInput(event)">

<p id="feedback"></p>

<script>
function enterInput(e) {
  var flag = e.getModifierState("CapsLock");
  if(flag) {
      document.getElementById("feedback").innerHTML = "CapsLock activated";

  } else {
      document.getElementById("feedback").innerHTML = "CapsLock not activated";
  }
}
</script>

⬆ 返回顶部


79.什么是isNaN?

isNaN() 函数用于确定一个值是否为非法数字(Not-a-Number)。即,如果该值等于 NaN,则此函数返回 true。否则返回false。

isNaN('Hello') //true
isNaN('100') //false

⬆ 返回顶部


80.未声明变量和未定义变量有什么区别?

以下是未声明和未定义变量之间的主要区别,

undeclared undefined
这些变量不存在于程序中且未声明 这些在程序中声明但没有赋值的变量
如果您尝试读取未声明变量的值,则会遇到运行时错误 如果您尝试读取未定义变量的值,则会返回未定义值。

⬆ 返回顶部


最近牛客在搞一个秋招同行计划,邀请大家一起记录自己的笔试,面试经历,写一篇讨论帖@周周~ 就可以得100牛币

反正不限制字数和题材,写的好的还可以拿到50京东卡、周边、一些技术书等,大家冲起来!

活动详情:https://www.nowcoder.com/link/bgzz2023

最后,不要忘了❤或📑支持一下哦,你的支持是海海更新的动力!关注我后面会持续分享面试经验 & 前端相关的专业知识。

最后祝大家都能找到满意的实习和 offer!

全部评论

(10) 回帖
加载中...
话题 回帖

近期热帖

近期精华帖

热门推荐