其他分享
首页 > 其他分享> > 前端宝典【犀牛书】02

前端宝典【犀牛书】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