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

web前端常见面试题归纳

媒体查询@media,@media由媒体类型和一个或多个检测条件表达式组成 viewport适配将px转换为rem或者vw,让页面自适应。...绑定事件监听该函数:addEventListener(事件名称、函数、否使用捕获类型),这里事件名称不加on 对作用域和作用域链的理解 作用域的概念 限制某个变量只能在某个区域内有效,分为全局作用域和局部作用域...,因此根据作用域中变量的划分,分为全局变量和局部变量。...作用域的分类 全局作用域:代码中任何地方都能访问到的变量 局部作用域:函数内可访问的变量 ES6中的块级作用域:通过let或const声明,所声明的变量在指定块中被访问 作用域链的概念 作用域链:变量取值是在创建这个变量的函数的作用域中取值...,但是如果在当前作用域中没用查到值,就会向上级作用域去查,直到查到全局作用域,查找过程形成的链条就叫做作用域链。

99420

(建议收藏)原生JS灵魂之问, 请问你能接得住几个?(上)

首先要明白作用域链的概念,其实很简单,在ES5中只存在两种作用域————全局作用域和函数作用域, 当访问一个变量时,解释器会首先在当前作用域查找标示符,如果没有找到,就去父作用域找,直到找到该变量的标示符或者不在父作用域中...function f1() { var a = 2 function f2() { var a = 3; console.log(a);//3 } } 在这段代码中,f1的作用域指向有全局作用域...(window)和它本身,而f2的作用域指向全局作用域(window)、f1和它本身。...而且作用域是从最底层向上找,直到找到全局作用域window为止,如果全局还没有的话就会报错。就这么简单一件事情! 闭包产生的本质就是,当前环境中存在指向父级作用域的引用。...window和 当前函数的作用域,因此可以全局的变量。

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

    原生JS灵魂考核, 你能回答出来几题?

    首先要明白作用域链的概念,其实很简单,在ES5中只存在两种作用域————全局作用域和函数作用域, 当访问一个变量时,解释器会首先在当前作用域查找标示符,如果没有找到,就去父作用域找,直到找到该变量的标示符或者不在父作用域中...function f1() { var a = 2 function f2() { var a = 3; console.log(a);//3 } } 在这段代码中,f1的作用域指向有全局作用域...(window)和它本身,而f2的作用域指向全局作用域(window)、f1和它本身。...而且作用域是从最底层向上找,直到找到全局作用域window为止,如果全局还没有的话就会报错。就这么简单一件事情! 闭包产生的本质就是,当前环境中存在指向父级作用域的引用。...window和 当前函数的作用域,因此可以全局的变量。

    1.2K20

    原生JS的知识系统梳理

    首先要明白作用域链的概念,其实很简单,在ES5中只存在两种作用域————全局作用域和函数作用域, 当访问一个变量时,解释器会首先在当前作用域查找标示符,如果没有找到,就去父作用域找,直到找到该变量的标示符或者不在父作用域中...a = 1;function f1() { var a = 2 function f2() { var a = 3; console.log(a);//3 }} 在这段代码中,f1的作用域指向有全局作用域...(window)和它本身,而f2的作用域指向全局作用域(window)、f1和它本身。...而且作用域是从最底层向上找,直到找到全局作用域window为止,如果全局还没有的话就会报错。就这么简单一件事情! 闭包产生的本质就是,当前环境中存在指向父级作用域的引用。...window和 当前函数的作用域,因此可以全局的变量。

    1.8K53

    JavaScript实用手册

    数组是引用类型的对象 按值传递: 将两变量间赋值或将变量传递给函数作为参数,按值传递其实仅是将原变量中的值复制一个副本给对方 原始类型: 修改新变量,不影响原变量的值 引用类型: 用新变量修改对象,等效于直接修改原对象...函数作用域对象 AO,它是局部变量,优点是仅函数内可用,不会造成全局污染 ,缺点是不可重用 (2)....作用域链(scope chain) 作用域链由各级作用域对象连续引用,形成的链式结构,在作用域链中函数的声明周 期如下: ①. 程序开始执行前,程序会创建全局作用域对象 window ②....控制了变量的使用顺序: 先用局部,局部没有才延作用域链向下查找 68....作用域链保存了所有变量(全局/局部),并定义了变量的使用顺序: 先用局部,如果没 有,才延作用域链向父级作用域查找 总结: 不需要对象,就可直接访问的变量都存在作用域链;必须用对象,才能访问的 对象成员都存在原型链中

    3.4K10

    前端面试02-JavaScript

    2.逻辑运算符:或、与、非 || : 只要其中有一个为true,整体结果是true; && : 只要有一个是false,整体结果是false; !:取反 (比较:转布尔,在取反) 3."...js有三种: 全局作用域 全局作用域是最外围的一个作用域。根据 ECMAScript 实现所在的宿主环境不同,表示全局作用域的对象也不一样。...在浏览器中,全局作用域就是window对象,node则是global对象。 局部作用域 和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的是函数内部。...但是如果在当前作用域中没有查到值,就会向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做作用域链。 8.new操作符具体干了什么呢?...19.如何编写高性能的JavaScript,(前端如何优化) 将js脚本放在页面底部,加快渲染页面; 将js脚本成组打包,减少请求; 使用非阻塞方式下载js脚本; 尽量使用局部变量来保存全局变量; 尽量减少使用闭包

    1.1K10

    JavaScript 进阶 - 第1天

    作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问,作用域分为全局作用域和局部作用域。 1.1 局部作用域 局部作用域分为函数作用域和块作用域。... // 此处是全局 function sayHi() { // 此处为局部 } // 此处为全局 全局作用域中声明的变量,任何其它作用域都可以被访问...1.3 作用域链 在解释什么是作用域链前先来看一段代码: // 全局作用域 let a = 1; let b = 2; // 局部作用域 function f(.../assets/scope.png)] 作用域链本质上是底层的变量查找机制,在函数被执行时,会优先查找当前函数作用域中查找变量,如果当前作用域查找不到则会依次逐级查找父级作用域直到全局作用域,如下代码所示...子作用域能够访问父作用域,父级作用域无法访问子级作用域(就近原则) 1.4 闭包 闭包是一种比较特殊和函数,使用闭包能够访问函数作用域中的变量。

    80420

    编写高质量的 JavaScript 代码(一)

    需要这些步骤完成运算: 1、把操作数8和1转换成32位整数; 2、每一位按位或运算; 3、把结果转换成64位浮点数。...全局变量在浏览器中会被绑定到全局的window对象,添加或修改全局变量会自动更新全局对象,更新全局对象也会自动更新全局全局命名空间。...a[j] = temp; } 五、理解变量提升 JavaScript不支持块级作用域,变量定义的作用域并不是离其最近的封闭语句或代码块,而是包含它们的函数。...也就是变量的作用域是整个函数,在=语句出现的位置进行赋值。下面第一种方式会被JavaScript隐式地提升声明部分,等价于第二种方式那样。建议手动提升局部变量的声明,避免混淆。...,try-catch语句将捕获的异常绑定到一个变量,该变量的作用域只是catch语句块。

    3.1K00

    JavaScript进阶-01

    作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问,作用域分为全局作用域和局部作用域。 1.1 局部作用域 局部作用域分为函数作用域和块作用域。...作用域链本质上是底层的变量查找机制,在函数被执行时,会优先查找当前函数作用域中查找变量,如果当前作用域查找不到则会依次逐级查找父级作用域直到全局作用域,如下代码所示: // 全局作用域...报错 console.log(d) // 报错 f(); 总结: 嵌套关系的作用域串联起来形成了作用域链 相同作用域链中按着从小到大的规则查找变量 子作用域能够访问父作用域...,父级作用域无法访问子级作用域 1.4 闭包 闭包是一种比较特殊和函数,使用闭包能够访问函数作用域中的变量。...对象属性的值将被赋值给与属性名相同的变量 对象中找不到与变量名一致的属性时变量值为 undefined 允许初始化变量的默认值,属性不存在或单元值为 undefined 时默认值才会生效 注:支持多维解构赋值

    71320

    javascript中function用法_年终总结反思不足之处

    很多人错误认为:在局部作用域中修改的对象会在全局作用域中反映出来这就说明是按引用传递的。...查询标识符:当在某个环境中为了读取或写入而引用一个标识符时,必须通过搜索来确定该标识符代表什么。搜索过程从作用域链的前端开始,向上逐级查询与给定名字匹配的标识符。...如果在局部环境中找到了该标识符,搜索过程停止,变量就绪。如果在局部环境中未找到该变量名,则继续沿作用域链向上搜索。搜索过程将一直追溯到全局环境。...如果局部环境存在同名标识符,就不会使用位于父环境中的标识符。...无论什么时候在函数中访问一个变量,就会从作用域链中搜索具有相应名字的变量,一般来讲当函数执行完后,局部活动对象会被销毁,内存中仅保留着全局作用域(全局执行环境的变量对象)。但是闭包的情况又有所不同。

    49810

    四、变量、作用域和内存问题

    执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。 当代码在一个环境中执行时,会创建变量对象的一个作用域链。 作用域链的作用:保证对执行环境有权访问的所有变量和函数的有序访问。...4、管理内存 解除引用(也就是将变量设置为null)。 解除引用的真正作用是让值脱离执行环境,以便垃圾收集器下次运行时将其回收。...以下是关于执行环境的几点总结: 1、执行环境有全局执行环境(也称为全局环境)和函数执行环境之分。 2、每次进入一个新执行环境,都会创建一个用于搜索变量和函数的作用域链。...3、函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其包含(父)环境,乃至全局环境。 4、全局环境只能访问在全局环境中定义的变量和函数,而不能直接访问局部环境中的任何数据。...为了确保有效地回收内存,应该及时解除不再使用的全局对象、全局对象属性以及循环引用变量的引用。

    55810

    原 四、变量、作用域和内存问题

    执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。 当代码在一个环境中执行时,会创建变量对象的一个作用域链。 作用域链的作用:保证对执行环境有权访问的所有变量和函数的有序访问。...4、管理内存 解除引用(也就是将变量设置为null)。 解除引用的真正作用是让值脱离执行环境,以便垃圾收集器下次运行时将其回收。...以下是关于执行环境的几点总结: 1、执行环境有全局执行环境(也称为全局环境)和函数执行环境之分。 2、每次进入一个新执行环境,都会创建一个用于搜索变量和函数的作用域链。...3、函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其包含(父)环境,乃至全局环境。 4、全局环境只能访问在全局环境中定义的变量和函数,而不能直接访问局部环境中的任何数据。...为了确保有效地回收内存,应该及时解除不再使用的全局对象、全局对象属性以及循环引用变量的引用。

    74580

    详解JavaScript变量、作用域及内存

    由于这种值的大小不固定(对象有很多属性和方法),因此不能把他们保存到栈内存中。但内存地址大小是固定的,因此可以将内存地址保存在栈内存中。...执行环境及作用域 执行环境是javascript中最为重要的概念之一,执行环境定义了变量或函数有权访问其他数据。...作用域 变量没有在函数内声明或者声明的时候没有带var就是全局变量,拥有全局作用域,window对象的所有属性拥有全局作用域;在代码任何地方都可以访问,函数内部声明并且以var修饰的变量就是局部变量,只能在函数体内使用...变量的查询 在变量的查询中,访问局部变量要比全局变量来得快,因此不需要向上搜索作用域链。...,以查询变量和函数名;但任何环境都不能通过向下搜索作用域链而进入另一个执行环境。

    98580

    4.0 Python 变量与作用域

    python中有两种最基本的变量作用域:局部作用域和全局作用域。局部变量是在函数内部定义的变量,只能在其被声明的函数内部访问。而全局变量则是在函数外定义的变量,可以在整个程序的范围内被访问。...变量的作用域可分为以下几种状态:L(Local):局部作用域E(Enclosing):闭包函数外的函数中G(Global):全局作用域B(Built-in):内建作用域变量的属性与变量的执行依据:变量的先后顺序是...:L –> E –> G –>B 的规则查找在子程序中定义的变量称为局部变量在程序的一开始定义的变量称为全局变量全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序当全局变量与局部变量同名时:在定义局部变量的子程序内...,局部变量起作用,在其它地方全局变量起作用当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问全局变量...: 将一个局部变量通过global关键字,转换为全局变量.>>> import os>>> import sys>>> >>> def print_num(): global num num

    38740

    JavaScript中的作用域和作用域链

    这是函数作用域的一个体现。 3.函数作用域 函数作用域,是指声明在函数内部的变量,和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部。...在块语句中定义的变量将保留在它们已经存在的作用域中。...作用域链 如果父级也没呢?再一层一层向上寻找,直到找到全局作用域还是没找到,就宣布放弃。这种一层一层的关系,就是 作用域链 。...//返回10 }) () //直接调用函数 }) () //直接调用函数 }) () //直接调用函数 在上面代码中,JavaScript 引擎首先在最内层活动对象中查询属性...定义的标识符的越深,那么读写的速度也就越慢,而全局变量总是处于作用域链的最末端,所以当变量解析的时候,查找全局变量是最慢的,所以在编写代码的时候要尽可能少的使用全局变量,尽可能使用局部变量。

    2.2K10

    4.0 Python 变量与作用域

    python中有两种最基本的变量作用域:局部作用域和全局作用域。局部变量是在函数内部定义的变量,只能在其被声明的函数内部访问。而全局变量则是在函数外定义的变量,可以在整个程序的范围内被访问。...变量的作用域可分为以下几种状态: L(Local):局部作用域 E(Enclosing):闭包函数外的函数中 G(Global):全局作用域 B(Built-in):内建作用域 变量的属性与变量的执行依据...: 变量的先后顺序是:L –> E –> G –>B 的规则查找 在子程序中定义的变量称为局部变量 在程序的一开始定义的变量称为全局变量 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序 当全局变量与局部变量同名时...:在定义局部变量的子程序内,局部变量起作用,在其它地方全局变量起作用 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问...: 将一个局部变量通过global关键字,转换为全局变量. >>> import os >>> import sys >>> >>> def print_num(): global num

    18820

    JavaScript之再学习

    全局对象本身可通过this操作符在全局作用域中获得。实际上,全局作用域就是由全局对象的各个属性组成的(包括继承来的属性)。...作用域 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。...全局作用域 在代码中任何地方都能访问到的对象拥有全局作用域。一般来说以下几种情形: 最外层函数和在最外层函数外面定义的变量拥有全局作用域。 所有未定义而直接赋值的变量自动声明为拥有全局作用域。...所有window对象的属性拥有全局作用域。如:window.name、window.location等。 注:全局变量存在于程序的整个生命周期。没有块级作用域。...一个好的经验法则是:如果一个跨作用域的对象被引用了一次以上,则先把它存储到局部变量里再使用。 with语句主要用来临时扩展作用域链,将语句中的对象添加到作用域的头部。

    36110

    重学js之JavaScript 变量、作用域和内存问题

    这样也可以提高查询变量的速度。对于保存基本类型值的变量,它们是按值访问的,我们操作的是它们实际的值。...1.7.1 延长作用域链 虽然执行环境的类型总共只有两种---全局和局部(函数),我们可以通过其他办法来延长作用域链。原理就是在作用域链的前端临时增加一个变量对象,该变量对象会在代码执行后被一处。...如果在局部环境中找到了该标识符,搜索过程停止、变量就绪。如果在局部环境中没有找到该变量名,则继续沿作用域向上搜索。搜索过程一直追溯到全局环境的变量对象。...注意:另外变量查询也是有代价的,访问局部变量要比访问全局变量更快,因为不用向上搜索作用域链。...函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其包含(父)环境,乃至全局环境。

    80120

    C++ 上篇

    b.小的转大的         c.有符号转无符号 赋值运算 =     将=右边的值 复制到=左边的变量(内存空间)中     int i = 3.14;     char...进入大括号    退出大括号         全局变量:不在函数内部声明的变量             能被当前文件所有函数所访问==》作用域             整个程序==>当程序运行的时候...:作用范围限定在当前作用域{},                       生命周期是整个程序的生命周期             全局变量:生命周期是整个程序的生命周期,                      ...     static  成员变量                 存储特性跟static修饰的局部变量一样,                 全局生命周期,即可以通过类名作用域访问,                ...private,无论通过什么方式继承,子类均不可访问     2.无论父类public或protected,经过private,子类都是private       无论父类public或protected

    5910

    JS简单页面交互实战 - 点击按钮实现求和功能

    在JS里作用域有几种?什么是全局作用域,什么是局部作用域 ?...作用域分为全局作用域和局部作用域; 全局作用域:在window下属于全局作用域; 局部作用域:每个函数,均会创建一个局部作用域; 全局作用域与局部作用域的访问关系?...在局部作用域当中出现变量的时候,首先查找当前的作用域中是否具有存储空间,如果有则直接采用,如果没有需要向父级进行查找,如果父级没有,继续向上,直到找到window为止,如果window下也不存在该空间,...会在全局作用域下进行空间的创建。...,才能更灵活的去操作变量或函数;另外,掌握作用域可以帮助你更好的去理解后面要学的闭包; 掌握页面交互效果的实现思路(分析方法),能够更清楚的去分析和实现页面交互效果。

    17.7K80
    领券