`
weigang.gao
  • 浏览: 467439 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

变量,作用域和内存问题(3)

 
阅读更多

       按照ECMA-262的定义,JavaScript的变量与其他语言的变量有很大的区别。JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定的值的一个名字而已。由于不存在定义某个变量必须保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变。

      ECMAScript变量可能包含两种不同数据类型的值:基本类型的值和引用类型值。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。

      引用类型的值是保存在内存中的对象。与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。

 

1.我们不能给基本类型的值添加属性,尽管这个做不会导致任何错误。eg:

       var name = “gaoweigang”;

       name.age  = 27;

       alert(name.age);//undefined

      说明我们只能给引用类型值动态添加属性,以便将来使用

 

2.区分:

a.引用传递



b.值传递


 

参考:C++中引用底层实现:

http://www.cnblogs.com/hoodlum1980/archive/2012/06/19/2554270.html    

 

3.检测某个值是什么类型的对象,ECMAScripti提供了instanceof

 

重点:执行环境及作用域

1.执行环境是JavaScript中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为

  • 大小: 7.9 KB
  • 大小: 13.2 KB
分享到:
评论

相关推荐

    JavaScript变量作用域及内存问题实例分析

    主要介绍了JavaScript变量作用域及内存问题,结合实例形式分析了javascript全局变量、局部变量、块级作用域等概念及内存优化问题相关操作技巧,需要的朋友可以参考下

    第12章 变量、作用域及内存1

    1.变量及作用域 2.内存问题 1.基本类型和引用类型的值 2.动态属性 3.复制变量值 4.传递参数 5.检测类型 5.执行环境及作用域 6.没有块级作用域

    简单谈谈javascript中的变量、作用域和内存问题

    主要介绍了简单谈谈javascript中的变量、作用域和内存问题的相关资料,需要的朋友可以参考下

    黑马程序员 - Java基础教学 - 03 - 变量的作用域、for循环、break、continue、内存结构

    黑马程序员 - Java基础教学 - 03 - 变量的作用域、for循环、break、continue、内存结构

    javascript 的变量、作用域和内存问题

    主要介绍了javascript 的变量、作用域和内存问题的相关资料,需要的朋友可以参考下

    4.1 变量 作用域 内存问题

    4.1.1 基本类型和引用类型的值 复制变量值: 基本类型的复制:复制的是值 var num1 = 5; var num2 = num1; 引用型变量的复制:复制的是引用,改变其中一个变量,就会影响另一个变量 var obj1 = new Object(); var ...

    JavaScript 变量、作用域及内存

    主要介绍了JavaScript 变量、作用域及内存,需要的朋友可以参考下

    js变量、作用域及内存详解

    本文主要详细分析了JS变量,作用域以及内存问题,同时附上非常多的实例,方便大家理解这3个概念,是篇不可多得的文章,希望对大家有所帮助

    Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例

    外层函数内部嵌套内部函数,外层函数分割变量作用域,并返回内部函数的引用。 # 外层函数负责分割作用域,内层函数才是闭包提供的功能。 外层函数返回内层函数的引用,供外部使用。 def my_line(k, b): # k,b只在my_...

    浅谈PHP变量作用域以及地址引用问题

    作用域的概念: 在PHP脚本的任何位置都可以声明...3、静态变量:用static修饰只存在于函数作用域的变量,函数执行结束后其值并不消失。注:初始化后不能再次进行初始化,不能用表达式来赋值。 复制代码 代码如下:functi

    全局变量、静态全局变量、静态局部变量和局部变量的区别2.pdf

    变量可以分为全局变量、静态全局变量、静态局部变量和局部变量 按存储区域分:全局变量、静态全局变量和静态局部变量都存放在内存的全局数据区,局部变量存放在内存的栈区 按作用域分:全局变量在整个工程文件内都...

    C++变量总结 说明各种变量

    在C语言中,变量是对程序中数据所占用内存空间的一种抽象,定义变量时,用户定义变量的名,变量的类型,这是变量的操作属性。...由此决定了变量的值保留的时间和变量的作用范围,这就是生存期和作用域的概念。

    十三、python基础:变量的作用域1(内存引用和释放)

    十三、python基础:变量的作用域1(内存引用和释放) 在谈到变量的作用域之前,我们先对python解释器运行时代码的执行顺序、内存分配、内存引用、内存释放机制先了解一下。 1、运行一个py文件时,python解释器是怎么...

    什么是Python变量作用域

    在程序中定义一个变量时,这个变量是有作用范围的,变量的作用范围被称为它的作用域。 根据定义变量的位置,变量分为两种: 局部变量:在函数中定义的变量,包括参数,都被称为局部变量。 全局变量:在函数外面、...

    C++中的extern声明变量详解

    从内存分配角度来说,声明和定义的区别在于声明一个变量不会分配内存,而定义一个变量会分配内存。一个变量可以被声明多次,但是只能被定义一次。 基于以上前提,我们可以把声明和定义类比为指针和内存的关系。我们...

    java内存分配详解

    栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动 释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。 堆内存用来存放由 new ...

Global site tag (gtag.js) - Google Analytics