首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

37个JavaScript基本面试问题和解答(建议收藏)

: 1432 我们先来解释一下这些可能更为明显部分: 首先显示1和4,因为它们通过简单调用console.log()没有任何延迟记录 在3之后显示,因为在延迟1000毫秒(即1秒)之后记录...好。但是,如果在延迟0毫秒后记录3,这是否意味着它正在被立即记录?而且,如果这样,不应该在4之前记录它,因为4由后面的代码行记录吗? 答案与正确理解JavaScript事件和时间有关。...什么记录到控制台?...但是,如果这个布尔值为“真”,我们仍然不知道X && Y真还是假,直到我们评估Y,并将其解释为布尔值。 然而,&&运算符有趣之处在于,当表达式评估为“真”,则返回表达式本身。...b)在这里,a [6]将输出未定义值,但隙仍为空,不是未定义。在某些情况下,这可能一个重要细微差别。

2.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

50道JavaScript详解面试题,你需要了解一下

答案输出为10,因为将对象传递给函数对象相似,仅传递其值,不传递对内存位置实际引用。这就是为什么更改仅影响函数范围内参数原因。 3、控制台输出是什么?...typeof返回类型, instanceof返回布尔值。 instanceof需要TypeScript,typeof则不需要。...&按位运算符,当我们比较11和3,它将与1011和0011二进制相同。结果,只有都为1位保持为1,返回输出为0011,它是3二进制表示形式, 因此3记录在控制台上。 14、Object。...该对象位于原型链顶部,当浏览器查找访问属性,它将遍历原型链,直到找到该值或直到不再遍历所有原型为止。 15、空值合并运算符做什么? 当左侧操作数为null或未定义,它将返回右侧操作数。...一个分配到一个对象,b分配给一个使用该扩展运算符,它意味着一个和b在技术上相同。 c只是一个空对象。

3.5K40

JavaScript注意点:Array.prototype.map

这是一个简单例子,因为 true 一个布尔值。如果我们把一个非布尔值作为条件呢? if ("hello world") { // 这会运行吗?...每个 Javascript 对象要么真的,要么。当放置在布尔上下文中,例如 if-else 语句,对象会根据其真实性视为真或假。那么哪些对象是真的,哪些呢?...为了我们目的,记住这0就足够了。 基数 0 1 2 3 4 5 6 7 8 9 10 当我们从零数到九,每个数字(0-9)都有不同符号。...函数参数 可以使用任意数量参数调用 Javascript 中函数,即使它们不等于声明函数参数数量。缺少参数视为未定义,额外参数将被忽略(但存储在类似数组参数对象中)。...这就是为什么每次迭代都记录三个条目的原因。 我们现在拥有解开这个谜团所需所有碎片。 把它放在一起 ParseInt 有两个参数:string和radix。

1.1K10

【JS】2030- 通过可视化彻底搞懂 Promise执行逻辑

[[PromiseResult]] 设置为我们传递给 resolve 值,在这种情况下 “完成!”(Done!)。...调用 reject 过程类似,现在 [[PromiseState]] 设置为 “已拒绝”(rejected),并且 [[PromiseResult]] 设置为我们传递给 reject 值,这是...回调现在被添加到调用栈,并记录 result 值,即 [[PromiseResult]] 值;字符串 "Done!"。 一旦回调执行完毕并从调用栈中弹出,程序就完成了!...then [[PromiseResult]] 设置为计算结果,这个结果又被下一个 then 处理程序使用。 最终,结果记录下来。...由于我们没有显式地返回一个值,所以最后一个 then promise [[PromiseResult]] 未定义,这意味着它隐式地返回了未定义值。 当然,使用数字并不是最现实场景。

13110

Excel小技巧79:如何跟踪Excel工作簿修改

启用跟踪并不意味着你所做每一个更改都会被记录下来。存储在单元格中任何数据都会被跟踪,但格式等其他更改不会被跟踪。其他未跟踪更改包括隐藏/取消隐藏由于公式重新计算更改行和列、批注和单元格值。...但关闭,任何超过30天更改历史记录都将消失。这意味着下次打开它,你将无法看到45天前所做更改。 4. 无论何时开启跟踪,工作簿都将成为共享工作簿。这意味着多个用户将对文档进行更改。...图4 你可以通过不勾选该复选框来隐藏屏幕上更改,将文件发送给所有需要对其进行更改的人,当你取回文件,只需到“修订”并重新勾选该复选框。 设置跟踪 下一步查看跟踪设置,并根据需要进行调整。...最后,你可以选择如何处理冲突:要么询问,要么干脆优先给保存文件最后更改。...值得注意,如果另一个单元格引用了拒绝单元格内容,那么当引用单元格值恢复,其值也会更改,这可能导致公式中断等,因此要小心。

6K30

7种你应该知道JavaScript常见错误

ReferenceError 当对变量/项引用破坏或不存在,将引发此错误。也就是说,变量/项不存在。...cat变量存在,dog变量不存在。 cat将返回“ cat”,dog会引发ReferenceError,因为在环境记录中找不到名为dog变量。...当在记录中找到环境值并提取并返回值,将以该变量名称作为关键字搜索环境记录。调用尚未定义函数。 现在,当我们创建或定义一个没有赋值变量。...将在env记录中搜索该变量,当发现该初始未定义,该赋值将被覆盖。...TypeError TypeError 指对象用来表示值类型非预期类型发生错误。例如,我们期望它是布尔值,但结果发现它是string类型。

2.6K10

JavaScript 基础知识:数据类型

// d未定义例如,a已被定义为使用let关键字变量。...为什么这很重要?在将数据存储在变量中,我们知道它类型很重要,因为它决定了我们可以对它做什么!例如,我们可以将数字相加1 + 1 = 2,这是没问题。...但是,如果我们尝试在它们数据类型为字符串相加数字“1” + “1” = 11,结果将是1和1,不是我们可能期望和为2。现在让我们详细看看每种类型。...let a = true;let b = false;在执行数学运算布尔值特别有用,可以确定表达式true还是false,例如:10 > 5 // true,10大于55 > 10...在程序中,当我们需要根据真或假评估执行操作布尔值就会非常有用。例如,接收登录凭据是否评估为true?允许访问 ✔️。还是为false?拒绝访问 ❌。

7100

【JS】328- 8个你不知道DOM功能

('click',doSomething,false); 第一个元素我们要监听事件,第二个元素事件触发回调函数,第三个参数一个布尔值用来标识事件在捕获还是冒泡阶段触发。...以下每个属性简介: capture -- 布尔值,和上文提到作用一样 once -- 布尔值,如果设置为 true 事件只会执行一次,然后就会被移除掉 passive -- 最后一个布尔值,如果设置为...单选按钮和复选框默认选中属性 就像你所直到,对于单选框和复选框,如果你想获取或者设置 checked 属性,你可以使用 checked 属性,就像这样(假设 radioButton 输入框引用)...这些节点单个文本字符串,但由于文本是动态附加,因此它们视为单独节点。 在某些情况下,将文本视为单个文本节点会更有用,这可以使得文本更容易操作。...正如MDN指出那样,这个接口上许多特性弃用或不标准化。但最有趣和最有用 detail 属性,它是官方规范一部分。

1.4K10

大话 JavaScript(Speaking JavaScript):第六章到第十章

在整个过程中,只提到了最受欢迎项目,忽略了许多项目,即使它们第一个。例如,列出了 Dojo Toolkit,但也有较少人知道qooxdoo,它是在同一间创建。...⁵ Ajax 一个缩写词,但不是一个首字母缩写,这就是为什么它没有写成 AJAX。 第三部分:深入 JavaScript 原文:III....ECMAScript 语言类型包括: 未定义、空值 布尔值、字符串、数字和 对象 因此,构造函数在技术上并没有引入新类型,尽管它们认为有实例。...静态与动态 在语言语义和类型系统背景下,“静态”通常意味着“在编译”或“在不运行程序时”,“动态”意味着“在运行时”。...首先,它转换方式令人困惑。其次,由于运算符如此宽容,类型错误可能会隐藏更长时间。 始终使用严格相等,避免宽松相等。只有在您想知道为什么应该避免它,才需要了解后者。 相等不可定制

24810

在 Vue 中创建自定义输入

可悲,当我在 Vue 中查看单选按钮或复选框自定义输入示例,他们根本没有考虑 v-model ,或者没有正确使用。...它仍然在 change事件处理程序中做同样事情(尽管现在 change 不是 input),但是现在根据 picked是否与该单选按钮值相同来确定 checked true 还是 false...复选框 复选框有点难以谈论,因为它们有两种不同行为,这取决于是否只有一个具有给定v-model或多个复选框。 如果您使用单个复选框,则 v-model 会将其视为布尔值,并忽略该 value 。...当该复选框值包含在数组中, shouldBeChecked 为true ,否则为 false。updateVals将复选框中选中值添加到数组,并且在取消选中删除它。...因此,代码将按照自定义单选按钮代码进行结构化,但是在内部 shouldBeChecked 和 updateInput 将根据是否一个数组进一步细化。

6.3K20

声明式渲染与 data 函数

目录 声明式渲染 data 必须一个函数 为什么 data 必须一个函数? 提一个 data 作为箭头函数写法 源码 ---- 声明式渲染 这是学习vue开发,必先了解第一个特征。...当模板渲染,getter调用,视图依赖数据项记录下来;当数据改变,检查改变数据有没有依赖,如果有,重新渲染视图。...为什么 data 必须一个函数? 这是vue2内部源码要求。通过查看Vue->_init->initState->initData源码: ?...发现,如果data未定义,一个默认data对象会被创建,否则data会被当成一个function调用。 而在initData中,data function以call方式调用了: ?...在后续运行时数据发生,改变也是vm._data,这个对象在组件生命内,其引用一直保持不变。

57420

vue基础-动态样式&表单绑定&vue响应式原理

数组格式 注意:每个表达式都要求返回一个已经定义过class类 :class='{"css类名1":布尔值,"css类名2":布尔值,...}'...注意:对象语法中,key名返回值,若是变量需要加[],key名返回有效类名,value必须布尔值(小心布尔值隐式类型转化) 动态style :style='ss' ss可以是html5中...从组件化角度,凡是会发生值得变化组件,都可以认为表单 注意: 1.在单/复选框,给他们添加同一组v-model,就可以变成一组,同时需要添加:value用于双向绑定 2.一般多选框v-model...要设置一个类型为数组声明式变量,但是我们提交给后端,常常需要将其转化为以“;”,“#”分割字符串,可以使用arr.join(";")方法 如何理解v-model这个指令 1.v-model一种语法糖...vue可以监听一个变量变化,当变量发生变化时,vue可以做一些工作。当面试官问响应式原理,问什么呢?问“vue如何监听data选项上变量变化?” 双向绑定?

1.6K20

JVM 三色标记法

产生过程:程序插入一条或者多条从黑色对象到白色对象新引用 标记过程中从图1到下图 这种情况不可以接受,如果正在被使用程序对象 JVM 回收,会导致程序运行错误,不可以接受会导致严重 BUG...,就将这个插入引用记录下来,并发标记结束后,再将这些记录引用关系中黑色对象为根,重新扫描一次。...原始快照(Snapshot At The Beginning, STAB) 这并发标记过程中,当灰色对象要删除白色对象引用关系,就将这个需要删除记录下来,在并发扫描结束后,再将这些记录引用关系中灰色对象为根...field); // 读屏障-读取前操作 return *field; } 读屏障直接针对第一步:D d = a.b.d,当读取成员变量,一律记录下来: void pre_load_barrier...因为SATB相对增量更新效率会高(当然SATB可能造成更多浮动垃圾),因为不需要在重新标记阶段再次深度扫描被删除引用对象,CMS对增量更新根对象会做深度扫描,G1因为很多对象都位于不同region

51010

javaScript七种数据类型大全

undefined:表示“未定义”或不存在,常用于区分“未申明”变量; 对象(object):各种值组成集合,包括了数组等复合型数据集合。 Symbol :该数据类型ES6 新增。...实际开发中有时候却需要判断数据类型,所以javaScript也提供了判断数据类型方法。以下几种判断方法 typeof 运算符 ,返回一个值数据类型。...区别是这样:null一个表示“空”对象,转为数值为0;undefined一个表示"此处无定义"原始值,转为数值为NaN。...例如:当值为空串显示空,不为空串再判断类型,取对象中属性。 ? 上面的代码中,函数add接收一个参数x,如果x'',那么!...注意:对象键名只能字符串,默认就是字符串,所以申明时候可以省略引号(如果键名保护不符合规范字符还是需要加引号),值可以是任意数据类型,甚至函数都可以。

1.4K40

JavaScript-包装对象

一个表明 null 值特殊关键字。 JavaScript 大小写敏感,因此 null 与 Null、NULL或其他变量完全不同。 undefined. 变量未定义属性。 Number....答案是否定。仍然只有对象才能拥有属性和方法。 (4)【疑问】为什么 num 调用了 toString() 却没有报错呢?这就需要我们了解包装对象概念了。...(2)包装对象是特殊引用类型。每当读取数字、字符串和布尔值属性或方法,创建 临时对象 称做包装对象。...四、包装对象 4.1 构造函数 (1)为了便于引用字符串属性和方法,JavaScript将字符串值通过调用 new String() 方式 转换成对象,这个对象继承了字符串属性和方法,并用来处理属性和方法引用...然后在第三行则会创建一个新包装对象,这个对象当然没有 name 属性,所以输出 undefined。

57920
领券