JavaScript学习第五天笔记(作用域)
作用域
概述
变量和函数都具有作用域 作用域就是变量和函数的可被访问的范围 控制着变量和函数的可见性和生命周期。
变量的作用域可被分为全局作用域和局部作用域(函数作用域) 如果变量是被定义在全局作用域的话 在JavaScript代码中的任何位置都可以访问该变量 如果变量被定义在指定函数内部 在JavaScript代码中只能在该函数内部访问该变量。
函数的作用域也可被分为全局作用域和局部作用域(函数作用域) 被定义在指定函数内部的函数被称为局部函数或内部函数。
全局变量
在所有函数之外声明的变量,叫做全局变量,因为他可被当前文档中的其他代码所访问。
局部变量
在函数内部声明的变量被成为局部变量,它只能在函数的内部进行访问。
声明提前
JavaScript变量的另一个特别之处是,可以小猴声明的变量,而不会引发异常,这一概念被称为生命提前。
示例代码
console.log(num);// undefined var num = 100;/* 定义全局变量 */ /* 定义函数 */ function fun(){ // 全局变量与局部变量同名时 - 在当前函数作用域中只能访问局部变量 console.log(num);// undefined var num = 200;/* 定义局部变量 */ // 就近原则 console.log(num);// 200 } /* 调用函数 */ fun(); // 局部变量在全局作用域中无法访问 - 只能访问全局变量 console.log(num);// 100
按置传递
按置传递就是指将实参变量的值复制一份副本给函数的形参变量。JavaScript中为函数传递参数时,都是按值传递的。如果向函数传递的参数时原始类型数据,则在函数中修稿参数变量的值,不会影响外部实参的变量。
示例代码
var num = 100;/* 定义一个全局变量 */ function fun(num){ num++; console.log('函数内部的值: ' + num);// 101 } fun(num);/* 实参 */ /* 调用指定全局变量 */ console.log('全局作用域的值: ' + num);// 100 101 var v = 200; function fn(){ v++; } fn(); console.log(v);// 201
相关推荐
leowzl 2020-08-15
明天你好 2020-08-03
idning 2020-08-03
liusarazhang 2020-06-28
chenlxhf 2020-06-25
Jonderwu 2020-06-14
shikailonggy 2020-06-05
shangs00 2020-05-09
wanff0 2020-05-04
ChinaGuanq 2020-05-01
whbing 2020-04-21
hyxinyu 2020-04-18
sunlizhen 2020-04-17
amberom 2020-03-28
zgwyfz 2020-03-28
XCMercy 2020-03-26
ThinkingLink 2020-02-29
Livis的开发之路 2020-02-28