前端宝典【犀牛书】02
作者:互联网
一、变量声明
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