Javascript学习笔记(二)Javascript核心之变量

  Javascript是无类型的,这就意味着它的变量可以存放任何类型的值。必要时可以快速,自动的转换类型。
  变量声明用var,一个var可以声明多个变量,用逗号隔开,也可以将变量声明和变量初始化绑定在一起。
  重复的声明和遗漏的声明:var多次声明同一变量是合法的。尝试读一个未声明的变量的值,会生成一个错误,若给一价目未用var声明的变量赋值,javascript会隐式声明该变量,但是隐式声明的变量总是被创建为全局变量。所以无论是全局还是局部变量最好都用var语句创建。如:
scope = "global";             //声明一个全局变量
function checkscope( ) {
    scope = "local";          // 改变了全局变量
    document.write(scope);    // 使用的是全局变量
    myscope = "local";        // 隐式声明新的全局变量
    document.write(myscope);  // 使用新的全局变量
  }
checkscope( );                 // 输出"locallocal"
document.write(scope);        // 输出"local"
document.write(myscope);      // 输出"local"
  函数定义可以嵌套
  没有块级作用域
  未定义的变量和未赋值的变量:读未声明的变量会产生错误,读已声明但未被赋值的变量,将得到一个默认值undefined.
  基本类型和引用类型:数值,布尔值,null和未定义的值属于基本类型,对象,数组和函数属于引用类型。
  无用存储单元的收集:它是自动进行的,是不可见的。如:
var s = "hello";          // 为一个字符串分配内存空间
var u = s.toUpperCase( );  // 创建一个新的字符串
s = u;                    // 覆盖对原始字符串的引用
  作为属性的变量:变量基本上和对象的属性是一样的。
  全局对象:当Javascript的解释器开始运行时,首先创建一个全局对象,这个对象的属性就是程序中的全局变量。
  局部变量:调用对象。在执行一个函数时,函数的参数和局部变量是作为调用对象的属性而存储的。
  Javascript的执行环境:
  深入理解变量作用域:下图是作用域链和变量解析




posted on 2007-07-09 19:20  蹲在路边写代码  阅读(209)  评论(0编辑  收藏  举报

导航