浅谈JavaScript--Variables

1>:可以为变量声明任何类型,且同一变量被声明多次也是合法的。
  i = 10;
  i = "ten";
上面的声明方式在JavaScript中是全局变量(JavaScript会默认的给出声明),通常非常不习惯于这中方式,也不推荐使用这种方式,而推荐使用以下这中方式:
 var  i = 10;
 var  i = "ten";
注意:
  1:这种方式是永久性(持久性)声明,当试图使用delete操作符删除时是错误的。
  2:当声明局部变量时必须使用这种方式。
  3:在强类型语言像C、C++、java......这样声明是不合法的,但是局部变量和全局变量同名局部变量的有先级将高于成员变量,局部变量将覆盖成员变量,这点通用样也适合于JavaScript。
  如下:在全局和局部中都有声明变量scope,局部变量将全局的清掉而前一个alert()取的值将是局部变量的值而此时还没有声明局部变量,所以会有下面的结果
    var scope = "global";
    function f( ) {
    alert(scope);         // 显示的结果是"undefined",而不是"global"
    var scope = "local";  // 变量在此声明,但是在全局变量有定义它
    alert(scope);         // 这里输出 "local"
    }
   f();
 
2>:变量的有效范围
  1:从声明方式来看
     name="A!SEN" 将是一个全局变量,它放的位置将不影响它的有效范围
     var name="A!SEN" 它的有效范围将受限有它所处的位置,变量所处的位置有两种函数体内或者函数体外,如果是在函数体内它的有效范围将是整个函数体
  例如:
  var scope = "global scope";        //全局变量
  function checkscope( ) {
    var scope = "local scope";       //局部变量
    function nested( ) {
        var scope = "nested scope";  //有效范围为这个函数体
            name="dengsenhua";       //全局变量
        document.write(scope);       //输出 "nested scope"
    }
    nested( );
    document.write(name);            //输出 "dengsenhua"
  }
  checkscope( );
  2:JavaScript变量的有效方位没有块的概念(这点不同于强类型语言)
  如:j的有效范围不是if块内,k的有效范围不是For块,变量: i、j、k:有效范围是一样的(有效范围将都是整个函数体)。   
   function test(value) {
    var i = 0;                      
    if (typeof value == "object") {
        var j = 0;                  
        for(var k=0; k < 10; k++) { 
            document.write(k);
        }
        document.write(k);         
    }
    document.write(j);             
   }

理解一句话:当声明一个全局变量时,实际上所做的是创建了一个全局变量的属性

3>:两种基本的数据大类型Primitive Types ,Reference Types很想强类型语言的值类型和引用类型.
1:Primitive:Numbers, boolean values, null and undefined。
 Primitive:这种数据类型在内存的分配过程中有固定的长度
   number:它是Primitive中最长的数据类型在内存中站8个字节
   Boolean:在内存中只占一个位.
2:Reference:Objects, arrays, and functions。
 Reference:它没有固定的长度,这就是JavaScript的数组可以改变长度的原因
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值