javascript的函数作用域
在一些类似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 }
JavaScript实现关键字高亮功能
高亮功能主要是指对页面中指定区域的指定文字进行高亮显示,也就是背景着色。一般在搜索结果页面会经常用到这个功能。下面就为大家提供一种解
a标签的href与onclick事件的区别详解
onclick中javascript的区别一般没用到都没注意,但出错时才有些郁闷,看文本章解释如下:以前一直很随意,后来看.net里的linkbutton似乎是用在ahref="javascrip
Javascript window对象详解
首先看我们的源代码。!DOCTYPEhtmlhtmlheadmetacharset="utf-8"/title深入理解Javascript/titlescripttype="text/javascript"charset="utf-8"console.log(this);/script/headbodyh1深入理解Javasc
编辑:广州鸿名健康科技有限公司
标签:函数,变量,声明,作用,体内