首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端必备,25个最基本的JavaScript面试问题及答案

    当试图删除一个不可配置的属性时,非严格代码将默默地失败,而严格模式将在这样的情况下抛出异常。 6.考虑以下两个函数。它们会返回相同的东西吗? 为什么相同或为什么不相同?...当setTimeout()的第二个参数为0的时候,它的意思是“尽快”执行指定的函数。具体而言,函数的执行会放置在事件队列的下一个计时器开始。...: "122" "32" "02" "112" "NaN2" NaN 原因是… 这里的根本问题是,JavaScript(ECMAScript)是一种弱类型语言,它可对值进行自动类型转换,以适应正在执行的操作...这就解释了为什么,有些令人奇怪的是, 1 && 2返回 2(而不是你以为的可能返回 true 或 1)。 20.执行下面的代码时将输出什么?请解释。...原因为:当设置对象属性时,JavaScript会暗中字符串化参数值。在这种情况下,由于 b 和 c都是对象,因此它们都将被转换为"[object Object]"。

    93430

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

    当试图删除一个不可配置的属性时,非严格代码将自动失败,而在这种情况下,严格模式会引发错误。 6、考虑下面的两个函数。他们都会返回同样的值吗?为什么或者为什么不?...当值为零作为setTimeout()的第二个参数传递时,它将尝试“尽快”执行指定的函数。具体来说,函数的执行放置在事件队列中,以在下一个计时器滴答时发生。...例6:“A” - “B”+2输出:NaN说明:在前面的例子中,“A” - “B”产生NaN。但是任何运算符应用于NaN和其他数字操作数仍然会产生NaN。...当事件队列运行超时事件时,将处理下一个项目,并设置一个计时器以再次调用nextListItem。因此,该方法从头到尾不经过直接递归调用即可处理,因此调用堆栈保持清晰,无论迭代次数如何。...当调用变量时,将按照从本地到全局的顺序检查闭包,直到找到实例。由于内部闭包有自己的b变量,这就是输出。

    3K10

    为什么JS需要异步

    ③渲染进程 渲染进程启动后,会开启⼀个渲染主线程,主线程负责执行 HTML、CSS、JS 代码。...在添加新任务时,如果主线程是休眠状态,则会将其唤醒以继续循环拿取任务 简而言之,渲染主线程的消息队列就是渲染主线程的任务管家,负责给渲染主线程要执行的任务进行排序、管理、调度。...具体做法是当某些任务发生时,比如计时器、网络、事件监听,主线程将任务交给其他线程去处理,自身立即结束任务的执行,转而执行后续代码。...当其他线程完成时,将事先传递的回调函数包装成任务,加入到消息队列的末尾排队,等待主线程调度执行。 从而最大程度的保证单线程的流畅运行。...4.3、JS中计时器能精确计时吗,为什么? 不可以。

    12701

    12种 console 相关的方法,帮你快速提高调试效率!(建议收藏)

    用ES6解构赋值输出变量名 如果打印多个值的,为了区别我们一般会连同变量名打印出来: const variableX = 42; console.log('variableX:', variableX)...t do that'); 或不太重要的调试信息: console.debug('nothing to see here - please move along'); console.table()可以以更友好的格式输出对象的值...可以用一个条件和一个或多个对象来定义断言,当该条件失败时输出,例如 console.assert( life === 42, 'life is expected to be', 42,...对console.timeEnd的调用会立即输出执行总共消耗的时间,单位是毫秒。 10....当传递一个DOM节点时,copy()将该元素及其所有子元素的HTML放在剪贴板上。这与右键点击一个节点并选择复制,然后选择复制外层HTML是一样的。

    1.1K21

    JavaWeb02-CSS,JS(Java真正的全栈开发)

    ,为什么 typeof 运算符对于 null 值会返回 "Object"。...该运算符通常用于避免输出不应该输出的值,例如,从 HTML 的 元素调用 JavaScript 函数时。...当一元加法运算符对字符串进行操作时,它计算字符串的方式与 parseInt() 相似,主要的不同是只有对以 "0x" 开头的字符串(表示十六进制数字),一元运算符才能把它转换成十进制的值。...,最终结果为false 等性运算符 在 ECMAScript 中,等号由双等号(==)表示,当且仅当两个运算数相等时,它返回 true。...=)表示,当且仅当两个运算数不相等时,它返回 true。为确定两个运算数是否相等,这两个运算符都会进行类型转换。 规则: 值 null 和 undefined 相等。

    2.6K150

    JavaScript基本知识点——带你逐步解开JS的神秘面纱

    但一般情况下我们无法在HTML文件中检查到错误 所以我们一般在HTML文件打开的网站中进行JavaScript的调试和错误修改以及提醒 下面我以图片形式展示JavaScript的浏览器控制调试顺序:...NaN和浮点数问题: NaN无法通过===进行比较 NaN === NaN 的运算结果为false isNaN(NaN)才可以得出NaN的判定结果 浮点数计算无法通过===进行比较 1/3 ===...: var arr = [...,...,...]; 定义例子: var arr = [1,2,3,"Hello",true]; 输出方法: arr[0] 注意:当打印越界时,不会报错,但打印结果为underfined...: var arr = [1,2,3,4]; 数组长度: arr.length 注意:可以为数组的length赋值 当length赋值变大,后面的值默认为empty 当length赋值变小,前面的值将会被删除....属性 = 属性值 当使用一个不存在的属性时,不会报错,但会报出underfined 动态删除属性: delete 对象.属性 动态增加属性: 对象.属性 = 属性值 判断属性值是否在对象中: “

    89120

    干货 | 你只会Console.log() ? 请收下这份JS调试指南!

    不同浏览器上它的工作方式是不一样的,但这里会介绍一些大都会提供的接口特性。...查了一下后发现Console还是非常强大的,至于为什么很少看到有人用可能是因为用过都删掉了吧。在此记录一下Console的其他用法。...Console.group()还可以嵌套使用 表格输出 使用console.table()可以将传入的对象,或数组以表格形式输出。...1.当第一个参数或返回值为真时,不输出内容 2.当第一个参数或返回值为假时,输出后面的内容并抛出异常 计次输出 使用Console.count()输出内容和被调用的次数 追踪调用堆栈 使用Console.trace...一、提示输出 可以再输出的对象、变量前加上提示信息,增加辨识度 二、格式化输出 样例: 三、自定义样式 使用%c为打印内容定义样式,再输出信息前加上%c,后面写上标准的css样式,就可以为输出的信息添加样式了

    86220

    JavaScript初探 二 (了解数据)

    JavaScript初探 (二) JavaScript 事件 HTML事件 常见的HTML事件 事件 描述 onchange HTMl元素被改变 onclick 用户点击HTML元素 onmouseover...、验证用户输入、用户动作、浏览器动作: 页面加载时应该做的事情 页面关闭时应该做的事情 用户点击按钮时被执行的动作 用书输入数据时应该验证的内容 …… JavaScript处理事件的方法: HTML..., new 关键字会使代码复杂化 当使用 == 运算时,为 true 当使用 === 运算时,为 false var x = "Bill" ; var y = new String ("Bill...; isNaN(x);//返回 true NaN 在typeof会认定为 number ===> 认为是一个数 Infinity Infinity :JavaScript在计算数值时超出最大可能数范围时返回的值...如果变量无法转为数字,则返回 NaN(非数值) 用于日期的Number()方法 Number也可以把标准格式的日期转换为数字 Number(new Date("2019-06-18")) ; /

    94410

    前端面试题分享001

    传入的为引用 解析:因为对象不是基本类型,所以当其作为参数传入时,使用的是引用地址,所以当其进行值变更的时候,原始内存值也会变化。...而xiaoming的实例在创建时原型的关系已经确定好,所以能输出得到其父属性。...js array:map方法是否需要返回 一般情况下,我们处理数组中map方法时知道其入参有三个,分别是元素,index,数组本身,而当我们使用箭头函数直接处理元素时,并且只有一句时,那么会默认的将元素处理完然后自己会默认的返回这个元素...这里我们用伪代码解释下,首先两个都是用计时函数实现的,区别在于: 防抖函数会清除掉之前的计时器如果之前有,所以其触发频率会更低;而节流函数是判断其控制的相应时间,如果还在其时间内,那么会继续执行原来的计时器...3 当剩余图片的数量不符合规格的时候,需要灵活的让其符合多种规格的布局 4 当只有一个图片时,可以自由发挥,需要限制一些边界情况即可。

    57540

    console实用调试技巧console实用调试技巧

    这种写法在复杂的输出时,能保证模板和数据分离,结构更加清晰。不过如果是简单的输出,就没必要这样写了。...如果页面只有一个计时器时,就不需要传这个参数 ,如果有多个计时器,就需要使用这个标签来标记每一个计时器: console.time("timer1"); console.time("timer2");...console.assert() console.assert()方法用于语句断言,当断言为 false时,则在信息到控制台输出错误信息。...但是当打印元素结构时,就会有很大的差异了,console.log()打印的是元素的DOM结构,而console.dir()打印的是元素的属性: image.png image.png console.dirxml...如果无法作为一个element被显示,那么会以JavaScript对象的形式作为替代。 它的输出是一个继承的扩展的节点列表,可以让你看到子节点的内容。

    1K20

    深度学习中训练参数的调节技巧

    现象:观测训练产生的log时一开始并不能看到异常,loss也在逐步的降低,但突然之间NaN就出现了。 措施:看看你是否能重现这个错误,在loss layer中加入一些输出以进行调试。...标准的ReLU函数为max(x, 0),而一般为当x > 0时输出x,但x 时输出negative_slope。...操作方法:将一些单元的输出乘零就能有效地删除一个单元。 ? (1)具体工作过程: Dropout以概率p关闭神经元,相应的,以大小为q=1-p的概率开启其他神经元。每个单个神经元有同等概率被关闭。...当一个神经元被丢弃时,无论其输入及相关的学习参数是多少,其输出都会被置为0。...因为如果你不乘以比例因子q,神经网络的输出将产生更高的相对于连续神经元所期望的值(因此神经元可能饱和):这就是为什么反向Dropout是更加常见的实现方式。

    4.7K80

    事件循环的秘密,竟然影响着浏览器的一切!

    渲染进程:渲染进程启动后,会开启一个渲染主线程,主线程负责执行 html、css、js代码。默认情况下,浏览器会为每个标签页开启一个新的渲染进程,以保证不同的标签页之间不相互影响。...在添加新任务时,如果主线程是休眠状态,则会将其唤醒以继续循环拿取任务。 这样一来,就可以让每个任务有条不紊的、持续的进行下去了。...具体做法是当某些任务发生时,比如计时器、网络、事件监听,主线程将任务交给其他线程去处理,自身立即结束任务的执行,转而执行后续代码。...当其他线程完成时,将事先传递的回调函数包装成任务,加入到消息队列的末尾排队,等待主线程调度执行。 在这种异步模式下,浏览器永不阻塞,从而最大限度的保证了单线程的流畅运行。 那js为何会阻塞渲染?...面试题: JS中的计时器能做到精确计时吗? 为什么? 不行,原因有4点如下: 计算机硬件没有原子钟,无法做到精确计时。

    15610
    领券