几道题目理解JavaScript作用域、作用域链、预解析规则、表达式
先看题目
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作用域、作用域链、预解析规则、表达式相关推荐
- this指向-作用域、作用域链-预解析 变量提升-Vue组件传值 父子 子父 非父子-Vue数据双向绑定原理
目录 this指向 作用域.作用域链 预解析 变量提升 Vue组件传值 父子 子父 非父子 Vue数据双向绑定原理 1.this指向 函数的this指向 看调用.不看声明 (1)普通函数调用 ①函数名 ...
- 内置对象的API Array数组对象 String字符串对象 json字符串 JSON对象 js作用域及变量预解析 引用类型与值类型区别 共享引用 基本包装类型 数组去重
01-内置对象的API a.Date对象获取时间 b.Array对象数组加工 c.String对象字符串加工 d.json字符串的语法格式 e.JSON对象的字符串与对象转换应用 02-JS作用域 a ...
- JavaScript变量作用域和内存问题(js高级程序设计总结)
1,变量 ECMAScript和JavaScript是等同的吗?个人认为是否定的.我的理解是这样的,ECMAScript是一套完整的标准或者说协议,而JavaScript是在浏览器上实现的一套脚本语言 ...
- javascript之作用域与预解析
js之预解析 在谈js的预解析之前,先看一段c++程序 #include <iostream> using namespace std;void useGreet(){greet(); } ...
- JS函数声明和预解析的理解
JS函数声明方法 今天看到了一个自己关注了的大神给我回了私信,觉得自己仿佛摸到了大神的裤腿,哈哈,而且人还特别好,居然会给小菜鸟回私信,特别开心呀,一个菜鸟的小激动,言归正传啦 1.最为常见的函数声明 ...
- JavaScript 开发进阶:理解 JavaScript 作用域和作用域链(上)
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...
- JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...
- 深入理解Javascript作用域和作用域链
什么是作用域 作用域是代码运行时某些特定的部分中变量.函数和对象的可访问性,换句话说,作用域决定了代码块中变量和其他资源的可见性 作用域共有两种工作模型 词法作用域(静态作用域) 动态作用域 词法作用 ...
- [未完整]JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
转载:http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html 作用域是JavaScript最重要的概念之 ...
最新文章
- liunx查看python的site-packages路径
- php 编程祝新年快乐_AnyCodes:免费的在线编程神器
- mui框架中dialog框的实现
- C语言中指针的地址和内容
- 目前市场上的电脑一体机从计算机种类,一体机电脑与普通电脑的区别
- hive double 转decimal_大白话详解大数据hive知识点,老刘真的很用心(3)
- python中inspect的用法(这个难懂,后期再补)
- 蓝桥杯 ALGO-159 算法训练 P0103
- C语言子程序调用的入口参数和出口参数,C语言与DOS系统接口技术
- nginx 配置文件详解 深入理解nginx配置文件
- 程序员日报周报月报 模板
- rar、zip、7z等压缩率的测试
- python量化策略——混合择时策略(动量效应+pe_ttm、pb估值+美林时钟)——股债轮动
- Java之IO流技术详解
- 用Qt搭建图书管理系统(三)
- 云上数据保护,你以为挡住黑客就够了?
- lamp mysql什么意思_什么是lampapache+mysql+php
- ACP敏捷认证考试及格线以及考试知识占比分析
- C语言文件的打开与关闭
- 如何 linux x86 还是64位
热门文章
- Python必须要掌握的高端语法
- android焦距跟实际距离,手机等效焦距一算便知_nubia Z5S Mini_手机Android频道-中关村在线...
- SAP RETAIL 事务代码RWBE查询界面上的Plant Group
- SAP MM VL09试图取消收货报错说某个HU负库存
- 64岁Python之父:退休生活太无聊,我要加入微软,将开源进行到底
- 10年卖下28家AI公司 苹果的AI吸星大法!
- 休斯顿大学研究人员构建具有神经功能的软体机器人
- 一图看懂所有机器学习概念
- 「模型解读」深度学习网络只能有一个输入吗
- 「机器学习速成」分类,评估指标(TP、FP、TN、FN),ROC曲线和AUC