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.查询标识符:从作用域链的前端开始,向上逐级查询直到找到需要的标识符(变量)
 
 
 
 
 
 
 
 
 
 
 
 

最新文章

  1. 判断是否为mac电脑 、还是windows操作系统
  2. SQL Server2016 新功能实时查询统计信息
  3. storm基础系列之一----storm并发度概念剖析
  4. 【Solr】索引库查询界面详解
  5. IIS7 IIS7.5 配置备份
  6. android中的EditView控件
  7. WAF SSI
  8. Objective-C 中的方法回掉
  9. (转)IOS中获取各种文件的目录路径的方法
  10. PHP - php汉字转拼音
  11. Controller.RedirectToAction 方法
  12. C# 截取图片区域,并返回所截取的图片
  13. 移动端(H5)弹框组件--简单--实用--不依赖jQuery
  14. ZooKeeper之(五)集群管理
  15. 01_MUI之Boilerplate中:HTML5示例,动态组件,自定义字体示例,自定义字体示例,图标字体示例
  16. leetCode83. 删除排序链表中的重复元素
  17. 斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)
  18. Consul部署架构
  19. VS2015 使用 Visual Studio Emulator For Android 调试无法命中断点的解决办法?
  20. 微信开发 invalid openid

热门文章

  1. spark job, stage ,task介绍。
  2. Magento1.9批量修改产品 Attribute Set
  3. Netezza SQL Analytic Functions 分析函数
  4. Xcode导航栏不显示模拟器选择框ToolBar
  5. 在Android开发中如何判读当前设备是否连接网络
  6. Java(数组)动手动脑
  7. 写单独页面的一些通用css样式,做了一点点兼容
  8. 金蝶K/3 Cloud 界面解析过程
  9. asp - Session
  10. Sanarus Medical --国外一家研究乳腺癌治疗的科技公司