标签:02 变量 作用域 声明 宝典 scope var 犀牛 local
一、变量声明
Python、Ruby、js动态语言在赋值的时候确认变量数据类型,c/c++、java是在编译时检查数据类型;
全局变量:给一个没有声明变量赋值在严格模式下会报错,非严格模式会增加一个全局变量;
局部变量:es3中调用对象的属性,es5中声明上下文对象的属性;
js没有块级作用域,即花括号的范围以外的变量在同一个作用域下都可以被访问;
变量声明会提升至函数顶部,所以请将变量声明写至函数顶部;
var
用var可以声明多个变量
eg:var i,sum;
也可以初始化赋值与声明变量写一起;
eg:var i=0,j=0
二、变量作用域
全局变量:全局范围内都起作用的变量;
局部变量:局部内起作用的变量,一般在函数体内;
eg1:
var scop="global";//全局 function cheeckscope(){ var scope="local"; //局部变量 return scope; } checkscope() =>local
eg2:
scope = "global"; // 声明 一个 全局 变量, 甚至 不用 var 来 声明
function checkscope2() {
scope = "local"; // 糟糕! 我们 刚 修改 了 全局 变量
myscope = "local"; // 这里 显 式 地 声明 了 一个 新的 全局 变量
return [scope, myscope];// 返回 两个 值
}
checkscope2() // => ["local", "local"]: 产生了 副作用
scope // => "local": 全局 变量 修改 了
myscope // => "local": 全局 命名 空间 搞乱 了
每个函数都有它的作用域,函数可以嵌套,因此会出现作用域嵌套的情况
var scope = "global scope"; // 全局 变量
function checkscope() {
var scope = "local scope"; //局部 变量
function nested() {
var scope = "nested scope"; // 嵌套 作用域 内 的 局部 变量
return scope; // 返回 当前 作用域 内 的 值
}
return nested();
}
checkscope() // => "嵌套 作用域"
标签:02,变量,作用域,声明,宝典,scope,var,犀牛,local 来源: https://www.cnblogs.com/ma-ke-wang/p/16441293.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。