| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> JavaScript基础面试题总结04 -> 正文阅读 |
|
[JavaScript知识库]JavaScript基础面试题总结04 |
1. JavaScript 中的作用域、预解析与变量声明提升?作用域 作用域就是变量的有效范围。 在一定的空间里可以对数据进行读写操作,这个空间就是数据的作用域。 1、全局作用域: 最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的。 2、局部作用域: 局部作用域一般只在固定的代码片段内可访问到,而对于函数外部是无法访问的,最常见的例如函数内部。在 ES6 之前,只有函数可以划分变量的作用域,所以 在函数的外面无法访问函数内的变量。 3、块级作用域:凡是代码块就可以划分变量的作用域,这种作用域的规则就叫块级作用域。
ES6 之前 JavaScript 采用的是函数作用域+词法作用域,ES6 js 采用的是块级作用域+词法作用域。 预解析 JavaScript 代码的执行是由浏览器中的 JavaScript 解析器来执行的。JavaScript 解析器 执行 JavaScript 代码的时候,分为两个过程: 预解析过程: 1.把变量的声明提升到当前作用域的最前面,只会提升声明,不会提升赋值 2.把函数的声明提升到当前作用域的最前面,只会提升声明,不会提升调用 3.先提升 function,在提升 var JavaScript 的执行过程:
变量提升 变量提升:定义变量的时候,变量的声明会被提升到作用域的最上面,变量的赋值不会提升。 函数提升:JavaScript 解析器首先会把当前作用域的函数声明提前到整个作用域的最前面。
变量声明提升: 使用 var 关键字定义的变量,被称为变量声明;函数声明提升的特点是,在函数声明的前面,可以调用这个函数。 2. 变量提升与函数提升的区别?变量提升 简单说就是在 JavaScript 代码执行前引擎会先进行预编译,预编译期间会将
函数提升 函数提升只会提升函数声明式写法,函数表达式的写法不存在函数提升 函数提升的优先级大于变量提升的优先级,即函数提升在变量提升之上 3. 什么是作用域链?作用域链:当代码在一个环境中执行时,会创建变量对象的一个作用域链,由子级作用域返回父级作用域中寻找变量,就叫做作用域链。 作用域链中的下一个变量对象来自包含环境,也叫外部环境。而再下一个变量对象则来自下一个包含环境,一直延续到全局执行环境。全局执行环境的变量对象始终都是作用域链中的最后一个对象。 作用域链前端始终都是当前执行的代码所在环境的变量对象,如果环境是函数,则将 其活动对象作为变量对象。 4. 如何延长作用域链?作用域链是可以延长的。 延长作用域链: 执行环境的类型只有两种,全局和局部(函数)。但是有些语句可以在作用域链的前端临时增加一个变量对象,该变量对象会在代码执行后被移除。 具体来说就是执行这两个语句时,作用域链都会得到加强
5. src 和 href 的区别是?src(source)指向 href(hypertext reference/超文本引用)指向 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:27:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |