javascript中的变量
来源:互联网 发布:从事大数据需要学什么 编辑:程序博客网 时间:2024/05/16 15:09
在javascript中,变量可以用来存放任何类型的值。
变量声明
在使用一个变量前,可以使用var来声明一个变量。这样被声明的变量会被自动添加到与它最接近的环境中。即,假如在全局环境中使用var声明一个变量,那么它就属于全局环境,是一个全局变量;假如在一个函数内部,使用var声明一个变量,那离它最近的环境固然是该函数对象,那么它就是一个局部变量。
如果一个变量在初始化时没有使用var声明,那它将被添加到全局环境中,将成为一个全局变量。
建议,都使用var来声明变量,以免造成不必要的错误。
还有一点需要注意的是,使用var声明的变量是永久性的,不能用delete运算符来删除它,否则将会引发错误。
变量的作用域
在全局环境中所定义的变量是全局变量;
在函数内部定义的变量是局部变量。
没有块级作用域
javascript没有块级作用域,在函数内部声明的变量,在整个函数中都是有定义的,但是在执行var语句之前,它不会被初始化,值始终为undefined。
建议将变量集中在函数开头进行声明。
作用域链
当代码在一个环境中执行时,会创建变量对象的一个作用域链。
作用域链的前端,始终是当前执行的代码所在环境的变量对象。而全局环境的变量对象始终是作用域链中的最后一个对象。
变量的解析是从从作用域的前端开始,然后逐级向上搜索,直到找到要搜索的变量为止。假如在全局环境中也没能搜索到该变量,则表明该变量尚未声明,通常会引发错误。
由上面可以看出,局部变量的优先级高于与它同名的全局变量。
延长作用域链
with语句和try-catch语句中的catch块,可以在作用域的前端临时增加一个变量对象,该变量对象会在代码执行后被移除。
这样,当执行流进入语句时,作用域链就会被加长。
基本类型和引用类型
数值、布尔值、null和undefined属于基本类型;
函数、数组和对象属于引用类型值。
基本类型和引用类型的区别
- 值的存储。基本类型在内存中的固定大小的,变量存储的是基本类型的值;引用类型在内存中没有固定大小,变量存储的是对这个值的引用(指针或内存地址)。
- 动态的属性。由于基本类型的值是不能改变的,所以我们不能动态的为其添加属性和方法;对于引用类型,我们可以动态的为其添加、修改或删除属性和方法。
- 值的复制。基本类型的值的复制,是创建了一个值的副本,然后赋给新变量,两个变量是完全独立的,不会相互影响;而引用类型的复制,是复制了该变量的一个引用。复制结束后,两个变量是指向同一个对象的,所以改变其中一个变量,会影响到另一个变量。
检查类型
基本类型的变量,可以使用typeOf操作符来确定它是属于那个数据类型的。假如是引用类型,执行typeOf操作,将只会返回Object或function。不能确定它是哪个给定的引用类型。
instanceof()操作会告诉我们,传入的参数是属于什么类型的对象。如果对象是给定引用类型的实例,那么将返回true。
传递参数
在javascript中,函数的参数是按值传递的。函数的参数相当于局部变量。
- javaScript中的隐藏变量
- javascript 中的变量范围
- javascript中的变量
- JavaScript中的变量
- Javascript中的特殊变量
- JavaScript中的变量
- javascript中的变量
- JavaScript中的变量声明
- JavaScript中的变量
- JavaScript 中的变量提升
- javascript中的变量
- JavaScript中的变量
- JavaScript中的变量和变量作用域
- JavaScript中的变量及数据类型
- javascript中的变量作用域
- javascript中的变量作用域
- javascript中的变量、作用域
- 关于JavaScript中的堆变量
- form的onsubmit事件--表单提交前的验证最佳实现方式(
- struct和typedef struct彻底明白了
- 浅谈UML中类之间的五种关系及其在代码中的表现形式
- 我跑得快摔的疼 跑得慢 吃不到
- hadoop中map和reduce的数量设置
- javascript中的变量
- 定制一个Linux发行版ROM
- JAVA基础③
- android 多线程数据库读写分析与优化
- Accelerated C++ 习题解答 第0章
- Qt5.2.1 + VS2012 环境配置
- uses-sdk
- java实现斐波那契数列
- OJ_1066