• 关于var关键字的详解


    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不同,它在效率上和使用强类型方式定义变量完全一样。
  • 相关阅读:
    HTTP 协议 简述
    Git 远程仓库相关
    Git 冲突问题
    单例模式
    extends Thread 与 implements Runnable 的区别
    正则表达式语法大全
    [Hadoop源码解读](六)MapReduce篇之MapTask类
    [Hadoop源码解读](五)MapReduce篇之Writable相关类
    [Hadoop源码解读](四)MapReduce篇之Counter相关类
    [Hadoop源码解读](三)MapReduce篇之Job类
  • 原文地址:https://www.cnblogs.com/tuqun/p/4155504.html
Copyright © 2020-2023  润新知