没有合适的资源?快使用搜索试试~ 我知道了~
javascript函数作用域学习示例(js作用域)
0 下载量 116 浏览量
2020-12-01
09:47:02
上传
评论
收藏 36KB PDF 举报
温馨提示
试读
1页
在一些类似c语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明他们的代码段之外是不可见的,我们称为块级作用域(block scope),而javascript中没有块级作用域。取而代之的javascript使用的是函数作用域(function scope):变量在声明它的函数体以及这个函数体嵌套的任意函数体内都是有定义的。 在如下代码中,在不同位置定义的i,j和k,他们再同一个作用域内都是有定义的 代码如下:function text(o) { var i=0; alert(typeof o); if(typeof o == “s
资源推荐
资源详情
资源评论
javascript函数作用域学习示例函数作用域学习示例(js作用域作用域)
在一些类似c语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明他们的代码段之外是不可见
的,我们称为块级作用域(block scope),而javascript中没有块级作用域。取而代之的javascript使用的是函数作用域
(function scope):变量在声明它的函数体以及这个函数体嵌套的任意函数体内都是有定义的。 在如下代码中,在不同位置
定义的i,j和k,他们再同一个作用域内都是有定义的
代码如下:
function text(o)
{
var i=0;
alert(typeof o);
if(typeof o == “string”)
{
var j=0;
for(var k=0;k<10;k++)
{
alert(k);//输出0-9
}
alert(k);//输出10
}
alert(j);//输出0
}
javascript的函数作用域指在函数内部声明的所有的变量在函数体内始终是可见的。有意思的是,这意味着变量在声明之前甚
至已经可用。javascript的这个特性被非正式的称为声明提前(hoisting),即javascript的函数体内声明的所有的变量(不涉及
赋值)都被“提前”至函数体的顶部。看以下代码
代码如下:
var global=”globas”;
function globals()
{
alert(global);//undefined
var global=”hello QDao”;
alert(global);//hello QDao
}
由于函数作用域的特性,局部变量在整个函数体始终是有定义的,也就是说在函数体内部变量遮盖了同名的全局变量。尽管如
此在程序执行到var语句的时候,局部变量才会被真正的赋值,因此,上述过程等价于:将函数内的变量声明“提前”至函数体顶
部,同事变量初始化留在原来的位置:
代码如下:
var global=”globas”;
function globals()
{
var global;
alert(global);//undefined
global=”hello QDao”;
alert(global);//hello QDao
}
资源评论
weixin_38726193
- 粉丝: 12
- 资源: 936
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功