var 在很多语言中都比较常见,到底var是什么,如何应用,下面就笔者常用的javascript、c#对var进行说明:
var 是 variable(变量,可变物)的简写。在多种计算机编程语言中,var 被用作定义变量的关键字,在一些操作系统中也能见到它的身影。
- JavaScript
var a=10; //正确 a=10; //正确 在javascript中,以上两种方法都是定义变量的正确方法。微软的Script56.CHM中是这样解释的: 尽管并不安全,但声明语句中忽略var关键字是合法的 JScript 语法。这时,JScript 解释器给予变量全局范围的可见度。当在过程级中声明一个变量时,它不能用于全局范围;这种情况下,变量声明必须用var关键字。 从上面的描述看来,对待这两种定义方法要区分以下两种情况: ⒈在一个过程级中(即位于function的定义范围内,无论是函数,还是类)的任何地方,包括在一个区块里(for,while,if……),定义变量时,使用var定义,则此变量只在这个过程级内起作用,反之为全局变量。 ⒉在过程级外定义变量时,无论是否忽略var,都将定义一个全局变量。 从这点看来,JS和其他语言有不一样的地方,变量的范围不以“{}”作为边界,而是以"function(){}"为边界,而且在过程内可以很轻松的定义全局变量。如果不注意这个问题的话,是很容易产生不可预知的错误的。 对于使用var,我的建议是要养成好的使用习惯: ⒈在程序的开头,统一定义全局变量; ⒉所有的变量在定义时都要加上var; ⒊尽量不要在不同的过程中使用相同的变量名。
- C#
从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型VAR。隐式类型的本地变量是强类型变量,但由编译器确定类型。 VAR可代替任何类型 编译器会根据上下文来判断你到底是想用什么类型的 什么情况下用到VAR: 当你无法确定自己将用的是什么类型,就可以使用VAR 类似OBJECT,但是效率比OBJECT高点 使用var定义变量时有以下四个特点: ⒈ 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式: var s; s = “abcd”; ⒉ 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。 ⒊ var要求是局部变量。 ⒋ 使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。