您的位置:首页 > Web前端 > JavaScript

JavaScript 作用域 理解

2016-07-05 16:23 316 查看
没有var 声明的变量都是全局变量,而且为window对象的属性 ,可以删除,var 声明的不可以删除;

function fun02()

{

a = "helloworld";

var b = "welcome";

}

fun02();

console.log(a); //     helloworld

console.log(b); //   b is not defined


函数内(函数内的函数除外)声明的变量在整个函数内部有效;(不管在函数内什么位置,顶部or底部都是有效的)

函数内部的变量取代全局同名变量;

函数作用域的嵌套关系是定义时决定的,而不是调用时决定的,也就 是说,JavaScript 的作用域是静态作用域,又叫词法作用域,这是因为作用域的嵌套关系可 以在语法分析时确定,而不必等到运行时确定

Javascript没有代码块作用域的概念,局部作用域是针对函数来说的。

function fun()
{
for( var i = 0 ; i < 10 ; i++)
{}
//如果在Java中i此时应当属于未声明的变量,但是Js中i的作用域依然存在
console.log(i);//10

if(true)
{
var b = "helloworld";
}
console.log(b);//helloworld
}
fun();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript