JS高级学习笔记 —— 071 JS高级之作用域
程序员文章站
2022-07-15 10:46:43
...
/*
作用域
在JS中,函数嵌套是非常普遍的,
在函数嵌套中,
对变量是如何寻找的?
答:首先在函数内寻找
寻找不到,则往外层寻找
…
直到…全局(window)区域
*/
<script type="text/javascript">
var c = 5;
function t1() {
var d = 6;
function t2() {
var e = 7;
// var d = 3;
alert(c+d+e);
}
t2();
}
t1(); //15,18
</script>
/*
关于声明变量 var
var是用来声明一个变量
如果不加var,就是一个赋值操作
但不能狭隘地理解为 声明了一个全局变量
*/
<script type="text/javascript">
alert(window.d); //undefined
alert(window.e); //undefined
function t() {
d = 5;
var e = 6;
}
t();
alert(window.d); //5
//d没有加var,仅仅是一个赋值操作,寻找t域内的函数,没找到,继续找-->window.d = 5
alert(window.e); //undefined
</script>
<script type="text/javascript">
function t1() {
var d;
function t2() {
d=5;
e=6;
}
t2();
}
t1();
console.log(e); //6
console.log(d); //undefined
console.log(window.d); //undefined
</script>
/*
注意:
以window.xx引用全局变量,寻找不到,作为某个属性不存在,返回undefined
直接以xx引用某命题,寻找不到,就报xx is not defined错误
*/
//词法分析
/*
解释:
js代码自上而下执行!
但是—–
js代码在整体运行分:
词法分析期
运行期
自上而下的执行叫词法分析过程!
*/
推荐阅读
-
JS高级---作用域,作用域链和预解析
-
Angular.Js之Scope作用域的学习教程
-
js基础学习之执行环境及词法作用域
-
荐 javascript从入门到跑路-----小文的js学习笔记(18 —1)------作用域以及作用域链
-
JS高级学习笔记 —— 071 JS高级之作用域
-
Vue.js 源码分析(二十六) 高级应用 作用域插槽 详解
-
js关于“变量提升、作用域、私有作用域等知识点”高级解题思路
-
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)_基础知识
-
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)_基础知识
-
JavaScript高级程序设计(第3版)学习笔记10 再访js对象_基础知识