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

前端面试题

典型用法是: 用来初始化一个变量,这个变量可能被赋值为一个对象。 用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象。 当函数的参数期望是对象时,被用作参数传入。...函数没有返回值时,默认返回undefined。 该如何检测它们? null:表示无值;undefined:表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。...什么是闭包,如何使用它,为什么要使用它? 包就是能够读取其他函数内部变量的函数。...解决方法是,在退出函数之前,将不使用的局部变量全部删除。 闭包会在父函数外部,改变父函数内部变量的值。...Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解 使用.bind()方法非常浪费性能因为它把同一个事件处理函数附加到了每一个匹配的元素上 你应该停止使用.live

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

    前端开发面试题

    HTML5的离线储存怎么使用,工作原理能不能解释一下? 在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。...::after 在元素之前添加内容,也可以用来做清除浮动。...null 表示一个对象是“没有值”的值,也就是值为“空”; undefined 表示一个变量声明了没有初始化(赋值); undefined不是一个有效的JSON,而null是;...当尝试读取时会返回 undefined; 例如变量被声明了,但没有赋值时,就等于undefined typeof null //"object"...jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this? jquery中如何将数组转化为json字符串,然后再转化回来?

    5.1K52

    前端学习资料整理

    * 为什么从后往前匹配因为效率和文档流的解析方向。效率不必说,找元素的父亲和之前的兄弟比遍历所有儿子快而且方便。...变量提升 变量定义在后使用在前,会被自动定义到使用者之前,但是赋值不会提升。 闭包是什么?为什么要使用闭包?有什么优缺点?...HTML5的离线储存怎么使用,工作原理能不能解释一下? 在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。...当尝试读取时会返回 undefined; 例如变量被声明了,但没有赋值时,就等于undefined typeof null //"object" null : 是一个对象(空对象, 没有任何属性和方法)...jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this? jquery中如何将数组转化为json字符串,然后再转化回来?

    3.5K20

    求职 | 史上最全的web前端面试题汇总及答案2

    undefined: (1)变量被声明了,但没有赋值时,就等于undefined。 (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。...(3)对象没有赋值的属性,该属性的值为undefined。 (4)函数没有返回值时,默认返回undefined。 null: (1) 作为函数的参数,表示该函数的参数不是对象。...它们都表示空,转换为boolean后都为false,但是null代表一个对象变量已经被初始化,但未装入对象;undefined表示未初始化变量 4、===与==有何异同?...9、解释jsonp的原理,以及为什么不是真正的ajax ①Ajax与JSONP这两种技术看起来很像,目的也一样,都是请求一个url,然后把服务器返回的数据进行处理,因此jQuery等框架都把JSONP作为...②原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链。 JQuery 1、你使用过jQuery吗?如果有,你为什么要使用jQuery呢? ①用过。

    6.1K20

    【深入浅出jQuery】源码浅析--整体架构

    在 jQuery 中,只有全局都会用到的变量、正则表达式定义在了代码最开头,而每个模块一开始,又会定义一些只在本模块会使用到的变量、正则、方法等。...// 传入 JS 对象 jQuery(object) // 传入 jQuery 对象 jQuery(jQuery object) // 传入原始 HTML 的字符串来创建 DOM 元素 jQuery(html...= jQuery.prototype = { // 将一个 DOM 元素集合加入到 jQuery 栈 // 此方法在 jQuery 的 DOM 操作中被频繁的使用, 如在 parent(), find...然后想谈谈正则表达式,jQuery 当中用了大量的正则表达式,我觉得如果研读 jQuery ,正则水平一定能够大大提升,如果是个正则小白,我建议在阅读之前先去了解以下几点: 1)了解并尝试使用 Javascript...) { // 判断全局 $ 变量是否等于 jQuery 变量 // 如果等于,则重新还原全局变量 $ 为 jQuery 运行之前的变量(存储在内部变量 _$ 中) if (window

    66941

    JavaScript 中 Property 和 Attribute 的区别详解

    access的源码里面有多段条件转移代码,看起来眼花缭乱,其最终目的就是能够实现对元素集合的变量并完成不同的操作,复杂的代码让jQuery的接口变得更加简单,能极大提高代码重用性,意味着减少了代码量,提高代码的密度从而使...这些都是题外话了,现在回到$().attr和$().prop的实现。总的说,这两个原型方法都利用access对元素集进行变量,并对每个元素调用jQuery.prop和jQuery.attr方法。...要注意,这里的jQuery.prop和jQuery.attr并不是原型链上的方法,而是jQuery这个对象本身的方法,它是使用jQuery.extend进行方法扩展的(jQuery.fn.prop和jQuery.fn.attr...总结 分析了这么多,对property和attribute的区别理解也更深了,在这里总结一下: 创建 DOM对象初始化时会在创建默认的基本property; 只有在HTML标签中定义的attribute...->property; 对于id而言,数据绑定是双向的,attributeproperty; 对于disabled而言,property上的disabled为false时,attribute上的disabled

    3.8K20

    43道JavaScript面试题

    我们还没有为name变量赋值,所以它仍然保持undefined的值。 使用let关键字(和const)声明的变量也会存在变量提升,但与var不同,初始化没有被提升。...在我们声明(初始化)它们之前,它们是不可访问的。 这被称为“暂时死区”。 当我们在声明变量之前尝试访问变量时,JavaScript会抛出一个ReferenceError。...变量的赋值可以分为三个阶段: 创建变量,在内存中开辟空间 初始化变量,将变量初始化为undefined 真正赋值 关于let、var和function: let 的「创建」过程被提升了,但是初始化没有提升...为了避免这种情况,我们可以使用“use strict”。 这可以确保在将变量赋值之前必须声明变量。 ---- 10. 当我们这样做时会发生什么?...这就是您可以使用内置JavaScript方法的原因! 所有这些方法都可以在原型上找到。 虽然JavaScript无法直接在您的对象上找到它,但它会沿着原型链向下寻找并在那里找到它,这使您可以访问它。

    1.8K20

    教你开发jQuery插件(转) 教你开发jQuery插件(转)

    :$('a'),则this=$('a') this.css('color', 'red'); } 在插件名字定义的这个函数内部,this指代的是我们在调用该插件时,用jQuery选择器选中的元素...我们已经知道this指代jQuery选择器返回的集合,那么通过调用jQuery的.each()方法就可以处理合集中的每个元素了,但此刻要注意的是,在each方法内部,this指带的是普通的DOM元素了,...在处理插件参数的接收上,通常使用jQuery的extend方法,上面也提到过,但那是给extend方法传递单个对象的情况下,这个对象会合并到jQuery身上,所以我们就可以在jQuery身上调用新合并对象里包含的方法了...当给extend方法传递一个以上的参数时,它会将所有参数对象合并到第一个里。同时,如果对象中有同名属性时,合并的时候后面的会覆盖前面的。...如上面我们定义了一个Beautifier全局变量,它会被附到全局的window对象上,为了防止这种事情发生,你或许会说,把所有代码放到jQuery的插件定义代码里面去啊,也就是放到$.fn.myPlugin

    3.3K10

    看完这几道 JavaScript 面试题,让你与考官对答如流(上)

    这也使用了短路来防止不必要的工作。在支持 ES6 默认函数参数之前,它用于初始化函数中的默认参数值。...当事件发生在 DOM 元素上时,该事件并不完全发生在那个元素上。在捕获阶段,事件从window开始,一直到触发事件的元素。...具体更多规则可以对参考我之前的文章: 我对 JS 中相等和全等操作符转化过程一直很迷惑,直到有了这份算法 15. 为什么在 JS 中比较两个相似的对象时返回 false?...闭包就是一个函数在声明时能够记住当前作用域、父函数作用域、及父函数作用域上的变量和参数的引用,直至通过作用域链上全局作用域,基本上闭包是在声明函数时创建的作用域。...因此,当我们在循环后在该数组中调用其中一个函数时,它会打印5,因为我们得到i的当前值为5,我们可以访问它,因为它是全局变量。 因为闭包在创建变量时会保留该变量的引用而不是其值。

    2K10

    金九银十求职季,前端面试大全送给你

    创建三角形 CSS绘制三角形和箭头,不用再用图片了 12、为什么要初始化css样式 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异...:无法实现复用影响性能,只能继承父类方法 不能继承原型上的 原型链继承 优点:实现简单,父类新增原型方法子类可访问 缺点:无法实现多个继承 创造子类实例时无法向父类构造函数传参 拷贝继承 优点...- 100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息 - 200 OK 正常返回信息 - 201 Created...(7)、处理结束回馈报头,此处如果浏览器访问过,缓存上有对应资源,会与服务器最后修改时间对比,一致则返回304; (8)、浏览器开始下载html文档(响应报头,状态码200),同时使用缓存; (9)...- beforeUpdate(更新前) 在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。

    1.4K20

    前端开发面试题总结之——JAVASCRIPT.One

    特别html会出现") (5)使用对象字面量替代 new Array 这种形式 (6)绝对不要在一个非函数块里声明一个函数,把那个函数赋给一个变量。...当尝试读取时会返回 undefined; 例如变量被声明了,但没有赋值时,就等于undefined。...默认支持的糟糕特性都会被禁用,比如不能用with,也不能在意外的情况下给全局变量赋值; 全局变量的显示声明,函数必须声明在顶层,不允许在非函数代码块内声明函数,arguments.callee也不允许使用...实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。...jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。 jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。

    15410

    送你43道JavaScript面试题

    我们还没有为name变量赋值,所以它仍然保持undefined的值。 使用let关键字(和const)声明的变量也会存在变量提升,但与var不同,初始化没有被提升。...在我们声明(初始化)它们之前,它们是不可访问的。这被称为“暂时死区”。当我们在声明变量之前尝试访问变量时,JavaScript会抛出一个ReferenceError。...变量的赋值可以分为三个阶段: 创建变量,在内存中开辟空间 初始化变量,将变量初始化为undefined 真正赋值 关于let、var和function: let 的「创建」过程被提升了,但是初始化没有提升...为了避免这种情况,我们可以使用“use strict”。这可以确保在将变量赋值之前必须声明变量。 ---- 10. 当我们这样做时会发生什么?...这就是您可以使用内置JavaScript方法的原因!所有这些方法都可以在原型上找到。虽然JavaScript无法直接在您的对象上找到它,但它会沿着原型链向下寻找并在那里找到它,这使您可以访问它。

    1.5K10

    送你43道JavaScript面试题

    我们还没有为name变量赋值,所以它仍然保持undefined的值。 使用let关键字(和const)声明的变量也会存在变量提升,但与var不同,初始化没有被提升。...在我们声明(初始化)它们之前,它们是不可访问的。 这被称为“暂时死区”。 当我们在声明变量之前尝试访问变量时,JavaScript会抛出一个ReferenceError。...变量的赋值可以分为三个阶段: 创建变量,在内存中开辟空间 初始化变量,将变量初始化为undefined 真正赋值 关于let、var和function: let 的「创建」过程被提升了,但是初始化没有提升...为了避免这种情况,我们可以使用“use strict”。 这可以确保在将变量赋值之前必须声明变量。 ---- 10. 当我们这样做时会发生什么?...这就是您可以使用内置JavaScript方法的原因! 所有这些方法都可以在原型上找到。 虽然JavaScript无法直接在您的对象上找到它,但它会沿着原型链向下寻找并在那里找到它,这使您可以访问它。

    1.5K20

    送你43道JavaScript面试题

    我们还没有为name变量赋值,所以它仍然保持undefined的值。 使用let关键字(和const)声明的变量也会存在变量提升,但与var不同,初始化没有被提升。...在我们声明(初始化)它们之前,它们是不可访问的。 这被称为“暂时死区”。 当我们在声明变量之前尝试访问变量时,JavaScript会抛出一个ReferenceError。...变量的赋值可以分为三个阶段: 创建变量,在内存中开辟空间 初始化变量,将变量初始化为undefined 真正赋值 关于let、var和function: let 的「创建」过程被提升了,但是初始化没有提升...为了避免这种情况,我们可以使用“use strict”。 这可以确保在将变量赋值之前必须声明变量。 ---- 10. 当我们这样做时会发生什么?...这就是您可以使用内置JavaScript方法的原因! 所有这些方法都可以在原型上找到。 虽然JavaScript无法直接在您的对象上找到它,但它会沿着原型链向下寻找并在那里找到它,这使您可以访问它。

    1.6K30

    JavaScript百炼成仙读书笔记

    创建数组的四种方式: 1、直接量定义数组:使用一对中括号声明一个数组对象,在定义的时候直接对数组进行初始化 (常用) var arr = ["apple","banana","orange"];...源生JavaScript获取dom元素: document.getElementById("id的值") 使用jQuery获取dom元素: $('#id的值') jQuery支持...原话:刚才的代码中频繁出现对象在调用函数之后,又立刻调用其他函数或者属性的情况,你可知道这是怎么回事, 为什么能够这么写?...使用let 定义局部变量,例如let定义在for循环中的变量。...5、强化后的数组 1、快速构建新数组 Array.of方法可以将参数中的所有值作为元素而形成数组,参数值可以是不同类型。 如果参数为空时,则返回空数组。这一点很好理解。

    29430

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

    jQuery允许您使用jQuery.noConflict()来禁用对jQuery名称空间的$引用。...他们都会返回同样的值吗?为什么或者为什么不?...像Python一样,JavaScript在调用像slice()这样的数组方法时,会承认负面下标,以此作为在数组末尾引用元素的方式;例如,下标-1表示数组中的最后一个元素,依此类推。...然而,&&运算符的有趣之处在于,当表达式评估为“真”时,则返回表达式本身。这很好,因为它在逻辑表达式中被视为“真”,但也可以用于在您关心时返回该值。...例如,使用map()时,map()的输出中的空插槽将保持为空,但未定义的插槽将使用传递给它的函数重映射: var b = [undefined];b[2] = 1;console.log(b); //

    3K10

    分享30个你必须知道的JS基础知识

    || 运算符,也称为逻辑或,计算操作数并返回它遇到的第一个真值表达式。 它还使用短路来防止不必要的工作。 在ES6引入默认函数参数之前,它被用来初始化函数中的默认参数值。...当一个事件发生在 DOM 元素上时,它不仅仅发生在那个特定的元素上。 在“冒泡阶段”期间,事件冒泡或传播到其父级、祖父母、曾祖父母或父级,直到到达窗口。...当一个事件发生在 DOM 元素上时,它不仅仅发生在那个特定的元素上。 在冒泡阶段,事件冒泡,或者事件发生在它的父级、祖父母、曾祖父母等上,直到它到达窗口。...当一个事件发生在 DOM 元素上时,它不仅仅发生在那个特定的元素上。 在捕获阶段,事件从窗口开始,一直向下传播到触发事件的元素。...因此,当我们点击 元素时,它会打印 5,因为这是稍后在回调函数中引用 i 时的值。 使用 IIFE 可以解决这个问题。

    25530
    领券