php 变量作用域:js变量作用域

请先看一下代码:
var scope = "global";
function f() {
alert(scope);//dispaly "undefined" not "global"
var scope = "local";//Vaeiable initized here,but defined everywhere
alert(scope);//display "local"
}
f();为什么了?
局部变量在整个函数体都是有定义的,这意味着在整个函数体中隐藏了同名的全局变量。虽然局部变量在整个函数体都是定义的,但在执行var语句钱,他是不会被初始化的,因此上面的函数f和下面的函数等价
function f() {
var scope;//局部变量在函数头声明
alert(scope); //此处该变量有定义,但值为 "undefined"
scope = "local"; //初始化变量并赋值
alert(scope);//此处该变量具有值
}
本文链接http://www.cxybl.com/html/wyzz/JavaScript_Ajax/20121203/34637.html

时间: 2024-10-01 00:05:09

php 变量作用域:js变量作用域的相关文章

js变量、作用域及内存详解_基础知识

基本类型值有:undefined,NUll,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,他们的值保存在栈空间,我们通过按值来访问的. (1)值类型:数值.布尔值.null.undefined. (2)引用类型:对象.数组.函数. 如果赋值的是引用类型的值,则必须在堆内存中为这个值分配空间.由于这种值的大小不固定(对象有很多属性和方法),因此不能把他们保存到栈内存中.但内存地址大小是固定的,因此可以将内存地址保存在栈内存中. <script type="

javascipt中的作用域与变量

1.JavaScript的变量类型 JavaScript的变量分为基本类型和引用类型.基本数据类型是直接存在栈空间的简单数据段,这种类型直接将值保存在内存的某个位置.引用数据类型存储的是指向实际存储于堆内存中的对象的地址. JavaScript中的基本数据类型共有五种:Number,Null,Undefined,Boolean和String.需要注意的是,js中的String是基本数据类型. 对于基本类型变量的访问,是按值访问的,而对于引用变量的访问是按引用访问的. 2.动态属性 对于引用数据类

深入理解javascript作用域第二篇之词法作用域和动态作用域_javascript技巧

前面的话 大多数时候,我们对作用域产生混乱的主要原因是分不清楚应该按照函数位置的嵌套顺序,还是按照函数的调用顺序进行变量查找.再加上this机制的干扰,使得变量查找极易出错.这实际上是由两种作用域工作模型导致的,作用域分为词法作用域和动态作用域,分清这两种作用域模型就能够对变量查找过程有清晰的认识.本文是深入理解javascript作用域系列第二篇--词法作用域和动态作用域 词法作用域 第一篇介绍过,编译器的第一个工作阶段叫作分词,就是把由字符组成的字符串分解成词法单元.这个概念是理解词法作用域

js变量以及其作用域详解

一.变量的类型  Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量.例如: i=100;//Number类型  i="variable";//String类型  i={x:4};//Object类型  i=[1,2,3];//Array类型 JS的这种特性虽然让我们的编码更加灵活,但也带来了一个弊端,不利于Debug,编译器的弱检测让我们维护冗长的代码时相当痛苦

js变量作用域及可访问性的探讨

js|变量|访问 每一种语言都有变量的概念,变量是用来存储信息的一个元素.比如下面这个函数:  1function Student(name,age,from) 2{ 3 this.name = name; 4 this.age = age; 5 this.from = from; 6 this.ToString = function() 7 { 8  return "my information is name: "+this.name+",age : "+thi

js变量以及其作用域详解_javascript技巧

一.变量的类型 Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量.例如: 复制代码 代码如下: i=100;//Number类型 i="variable";//String类型 i={x:4};//Object类型 i=[1,2,3];//Array类型 JS的这种特性虽然让我们的编码更加灵活,但也带来了一个弊端,不利于Debug,编译器的弱检测让我们维护冗长的

js变量的作用域详解

量的作用范围又称为作用域,是指某变量在程序中的有效范围.根据作用域,变量可以分为全局变量和局部变量. 1  全局变量的作用域是全局性的,即在整个网页特效程序中,全局变量处处都在. 2  而在函数内部声明的变量,只在函数内部起作用.这些变量是局部变量,作用域是局部性的:函数的参数也是局部性的,只在函数内部起作用. 相信大家都知道,javascript中变量作用域只有两种,全局作用域与函数中的局部作用域(有人认为不同script节点间也存在一种作用域,称之为段作用域,理由是在后面的script的节点

js变量作用域及可访问性的探讨_javascript技巧

每一种语言都有变量的概念,变量是用来存储信息的一个元素.比如下面这个函数:  复制代码 代码如下:  function Student(name,age,from)  {   this.name = name;    this.age = age;   this.from = from;    this.ToString = function()   {    return "my information is name: "+this.name+",age : "

关于JS变量和作用域详解_javascript技巧

ECMAScript 变量: 1.基本类型值(简单数据段) 2.引用类型值(可能由过个值构成的对象) → 保存在内存中的对象 ------ 动态属性: 只能给引用型值动态添加新属性,以便将来使用. ------ 复制变量值 : 基本类型值的复制 → 在变量对象上创建一个新值 → 复制给新变量(互不影响) 引用类型值的复制 → 将存储在变量对象中的值复制到新变量分配空间中(复制的是一个指针,指向同一个对象,相互影响) ------ 传递参数: ECMAScript中所有函数的参数都是按值传递 .