CMAScript变量包含两种不同数据类型的值:
基本类型值:简单的数据段;引用类型值:可能有多个值构成的对象。
5种基本类型:Undefined,Null,Bollean,Number,String;
基本类型是按值访问的,因为可以操作保存在变量中额实际的值;
引用类型:引用类型是保存在内存中的对象,js中不能直接访问内存中的位置,操作的对象,实际上是在操作对象的引用,为对象添加属性时,操作的是实际的对象;
动态属性
基本类型不能添加属性和方法;引用类型可以添加属性和方法;
复制变量值
 基本类型复制:相当于重新重新创建一个新值,这两个变量可以参加任何操作互不影响
      var num1 = 5;
      var num2 = num1;
      alert(num2);
引用类型复制:复制的是一个指针,指向堆中的一个对象,复制结束后,两个指针都指向同一个对象,改变其中一个变量,另一个变量也会改变   
      var obj1 = new Object();
      var obj2 = obj1;
      obj1.name = "xiaoming";
      alert(obj2.name)
传递参数
基本类型按基本类型复制传递(被传递的值会被复制给局部变量,就是arguments对象中的一个元素),
function addTen(num){
         num += 10;
         return num;
      }
      var count =20;
      var result = addTen(count);
      alert(count)
      alert(result)
引用类型按引用类型复制传递(把内存中的地址复制给局部变量)
 function setName(obj){
        obj.name = "xiaoming";
        obj = new Object(); //当在函数内部重写obj时,这个变量的引用就是一个局         部对象了;局部对象在函数执行完毕后会立即销毁;
        obj.name = "G"
      }
      var person = new Object();
      setName(person);
      alert(person.name)
 检测类型
typeof 操作符是确定一个变量是字符串,数字,布尔值,还是undefined,如果变量的值是一个对象或null,则typeof会返回object;
instanceof检测引用类型是一个什么类型的对象;
如果变量是给定的引用类型的实例,那个instanceof操作符就会返回true;如果是基本类型会返回false;
所有引用类型的值都是Object的实例
执行环境与作用域
  延长作用域链
     两种方法:try-catch语句中的catch块;with语句;  
               
使用 try…catch…finally 执行例外处理
  在JavaScript中,我们使用try…catch…finally语句来执行例外处理,即通过它来捕捉错误发生后导致的例外或者执行throw语句产生的例外。它的基本语法如下:

 try {

  // 此处是可能产生例外的语句

  } catch(error) {

  // 此处是负责例外处理的语句

  } finally {

  // 此处是出口语句

  }
3)举例  
<script language="javascript">  
<!--  
function Lakers() {  
       this.name = "kobe bryant";  
       this.age = "28";  
       this.gender = "boy";  
}  
var people=new Lakers();  
with(people)  
{  
       var str = "姓名: " + name + "<br>";  
       str += "年龄:" + age + "<br>";  
       str += "性别:" + gender;  
       document.write(str);  
}  
//-->  
</script>  
  没有块级作用域
if,for,while,语句中声明的变量会将变量添加到当前的执行环境
  for(var i = 0;i<10;i++){
           var a=1
       }
       alert(a);
1.使用var声明的变量会自动添加到 最接近的环境中
2.查询标识符:从作用域链的前端开始,向上逐级查询直到找到需要的标识符(变量)
 
 
 
 
 
 
 
 
 
 
 
 

javascript变量问题的更多相关文章

  1. javascript变量的作用域

    javascript变量的作用域 基本类型和引用类型 基本类型值指的是简单的数据段,而引用类型值指的是那个可能由多个值组成的对象  讲一个值赋值给变量时,javascript解析器首先要确定是基本类型 ...

  2. JavaScript 变量声明提前

    <JavaScript权威指南>中指出:JavaScript变量在声明之前已经可用,JavaScript的这个特性被非正式的称为声明提前(hoisting),即JavaScript函数中声 ...

  3. JavaScript 变量

    一,JavaScript 变量(存储信息的容器) 与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比如 z=x+y). 变量可以使用短名称(比如 x 和 y),也可以使用描 ...

  4. javascript变量声明 及作用域

    javascript变量声明提升(hoisting) http://openwares.net/js/javascript_declaration_hoisting.html 可能要FQ一下 java ...

  5. JavaScript 变量作用域

    一. 变量声明 变量用var关键字来声明,如下所示: 变量在未声明的情况下被初始化,会被添加到全局环境. JavaScript执行代码时,会创建一个上下文执行环境,全局环境是最外围的环境.每个函数在被 ...

  6. 【转】javascript变量声明 及作用域

    javascript变量声明提升(hoisting) javascript的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明都提升到当前作用域的最前面. 先看 ...

  7. JavaScript变量和数据类型

    变量 变量就是一个元素,类似于数学中的概念,用来指定表示一个对象.在JavaScript中,用来指定变量的关键字为var.当声明新变量时,可以使用关键词 "new" 来声明其类型 ...

  8. 回归基础: JavaScript 变量提升

    from me: javascript的变量声明具有hoisting机制,它是JavaScript一个基础的知识点,也是一个比较容易犯错的点,平时在开发中,大大小小的项目都会遇到. 它是JavaScr ...

  9. JavaScript - 变量,作用域,内存

    JavaScript 变量可以用来保存两种类型的值:基本类型值和应用类型值.基本类型的值源自以下5种基本数据类型:Undefined.Null.Bollean.Number和String. 所有变量都 ...

  10. 六天玩转javascript:javascript变量与表达式(2)

    本系列内容为本人平时项目实践和参照MDN,MSDN,<javascript语言精粹>,<Effective Javascript>等资料,并且整理自己EverNote的日常积累 ...

随机推荐

  1. Yii;CodeIgniter;thinkphp学习

    http://www.ibm.com/developerworks/cn/opensource/os-cn-yii/ http://codeigniter.org.cn/ http://baike.b ...

  2. Android中的事件传递机制

    Android源码版本:API Level 19(Android 4.4) Android事件构成 在Android中,事件主要包括点按.长按.拖拽.滑动等,点按又包括单击和双击,另外还包括单指操作和 ...

  3. arduino api手册

    本文由博主原创,如有不对之处请指明,转载请说明出处. arduino 函数 api 程序结构 在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数:void se ...

  4. iOS常用库之Masonry

    简单介绍 Masonry 源码地址:https://github.com/Masonry/Masonry Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简 ...

  5. 阿里云 ECS 逻辑卷挂载数据盘

    查看磁盘信息: [root@ixx~]# fdisk -l Disk /dev/xvda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track ...

  6. TCP发消息续传文件

    1.自定义固定协议头部.格式:([head][body][filestream]) /// <summary> /// 数据包头部 /// </summary> [Struct ...

  7. php学习笔记-基础篇

    1."var_dump"函数可以将变量的数据类型显示出来. 2."memory_get_usage"获取当前PHP消耗的内存. 3.php中的字符串型分单引号, ...

  8. 网页链接qq

    <a href="mqqwpa://im/chat?chat_type=wpa&uin=12345678&version=1&src_type=web& ...

  9. JAVA学习笔记(二):eclipse智能提示(转)

    存盘 Ctrl+s(肯定知道)注释代码 Ctrl+/取消注释 Ctrl+\(Eclipse3已经都合并到Ctrl+/了)代码辅助 Alt+/快速修复 Ctrl+1代码格式化 Ctrl+Shift+f整 ...

  10. C#获得客户端IP

    代码: /// <summary> /// 获得当前页面客户端的IP /// </summary> /// <returns>当前页面客户端的IP</retu ...