先看题目

1、结果是 undefined

    console.log(a)var a = 1
复制代码

2、报错 Uncaught ReferenceError: Cannot access 'a' before initialization

    console.log(a)let a = 1
复制代码

3、报错 Uncaught ReferenceError: a is not defined

    console.log(a)a = 1
复制代码

4、结果 ƒ a() {a=4}、 1 、1、 3、 3

    console.log(a)var a = 1console.log(a)function a() {a=2}console.log(a)var a = 3console.log(a)function a() {a=4}console.log(a)
复制代码

5、结果 ƒ a() {console.log(a=4)} 、 1 、1 、3 、3、 Uncaught TypeError: a is not a function

    console.log(a)var a = 1console.log(a)function a() {a=2}console.log(a)var a = 3console.log(a)function a() {console.log(a=4)}console.log(a)a()
复制代码

6、1

<script>var a = 1
</script>
<script>console.log(a)
</script>
复制代码

7、Uncaught ReferenceError: a is not defined

   <script>console.log(a)</script><script>var a = 1</script>
复制代码

8、undefined、 1

   var a = 1function f() {console.log(a)var a = 2}f()console.log(a)
复制代码

9、1、 2

    var a = 1function f() {console.log(a)a = 2}f()console.log(a)
复制代码

10、undefined、1

    var a = 1function f(a) {console.log(a)a = 2}f()console.log(a)
复制代码

11、1、1

    var a = 1function f(a) {console.log(a)a = 2}f(a)console.log(a)
复制代码

浏览器解析过程

1、预解析

找 var function 参数,变量赋予undefined,function为整个函数块 script自上而下 函数由里到外

2、逐行解读代码

表达式(+ - * / % ++ -- ! 参数)可以修改预解析出来的值,函数声明不是表达式,函数调用也是局部的域

转载于:https://juejin.im/post/5ce4e808518825333d1b9248

几道题目理解JavaScript作用域、作用域链、预解析规则、表达式相关推荐

  1. this指向-作用域、作用域链-预解析 变量提升-Vue组件传值 父子 子父 非父子-Vue数据双向绑定原理

    目录 this指向 作用域.作用域链 预解析 变量提升 Vue组件传值 父子 子父 非父子 Vue数据双向绑定原理 1.this指向 函数的this指向 看调用.不看声明 (1)普通函数调用 ①函数名 ...

  2. 内置对象的API Array数组对象 String字符串对象 json字符串 JSON对象 js作用域及变量预解析 引用类型与值类型区别 共享引用 基本包装类型 数组去重

    01-内置对象的API a.Date对象获取时间 b.Array对象数组加工 c.String对象字符串加工 d.json字符串的语法格式 e.JSON对象的字符串与对象转换应用 02-JS作用域 a ...

  3. JavaScript变量作用域和内存问题(js高级程序设计总结)

    1,变量 ECMAScript和JavaScript是等同的吗?个人认为是否定的.我的理解是这样的,ECMAScript是一套完整的标准或者说协议,而JavaScript是在浏览器上实现的一套脚本语言 ...

  4. javascript之作用域与预解析

    js之预解析 在谈js的预解析之前,先看一段c++程序 #include <iostream> using namespace std;void useGreet(){greet(); } ...

  5. JS函数声明和预解析的理解

    JS函数声明方法 今天看到了一个自己关注了的大神给我回了私信,觉得自己仿佛摸到了大神的裤腿,哈哈,而且人还特别好,居然会给小菜鸟回私信,特别开心呀,一个菜鸟的小激动,言归正传啦 1.最为常见的函数声明 ...

  6. JavaScript 开发进阶:理解 JavaScript 作用域和作用域链(上)

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...

  7. JavaScript 开发进阶:理解 JavaScript 作用域和作用域链

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...

  8. 深入理解Javascript作用域和作用域链

    什么是作用域 作用域是代码运行时某些特定的部分中变量.函数和对象的可访问性,换句话说,作用域决定了代码块中变量和其他资源的可见性 作用域共有两种工作模型 词法作用域(静态作用域) 动态作用域 词法作用 ...

  9. [未完整]JavaScript 开发进阶:理解 JavaScript 作用域和作用域链

    转载:http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html 作用域是JavaScript最重要的概念之 ...

最新文章

  1. liunx查看python的site-packages路径
  2. php 编程祝新年快乐_AnyCodes:免费的在线编程神器
  3. mui框架中dialog框的实现
  4. C语言中指针的地址和内容
  5. 目前市场上的电脑一体机从计算机种类,一体机电脑与普通电脑的区别
  6. hive double 转decimal_大白话详解大数据hive知识点,老刘真的很用心(3)
  7. python中inspect的用法(这个难懂,后期再补)
  8. 蓝桥杯 ALGO-159 算法训练 P0103
  9. C语言子程序调用的入口参数和出口参数,C语言与DOS系统接口技术
  10. nginx 配置文件详解 深入理解nginx配置文件
  11. 程序员日报周报月报 模板
  12. rar、zip、7z等压缩率的测试
  13. python量化策略——混合择时策略(动量效应+pe_ttm、pb估值+美林时钟)——股债轮动
  14. Java之IO流技术详解
  15. 用Qt搭建图书管理系统(三)
  16. 云上数据保护,你以为挡住黑客就够了?
  17. lamp mysql什么意思_什么是lampapache+mysql+php
  18. ACP敏捷认证考试及格线以及考试知识占比分析
  19. C语言文件的打开与关闭
  20. 如何 linux x86 还是64位

热门文章

  1. Python必须要掌握的高端语法
  2. android焦距跟实际距离,手机等效焦距一算便知_nubia Z5S Mini_手机Android频道-中关村在线...
  3. SAP RETAIL 事务代码RWBE查询界面上的Plant Group
  4. SAP MM VL09试图取消收货报错说某个HU负库存
  5. 64岁Python之父:退休生活太无聊,我要加入微软,将开源进行到底
  6. 10年卖下28家AI公司 苹果的AI吸星大法!
  7. 休斯顿大学研究人员构建具有神经功能的软体机器人
  8. 一图看懂所有机器学习概念
  9. 「模型解读」深度学习网络只能有一个输入吗
  10. 「机器学习速成」分类,评估指标(TP、FP、TN、FN),ROC曲线和AUC