• 名字/标识符


    名字 是指代表某些东西的有助于记忆的字符序列。名字可以使我们采用符号形式标识符引用变量、常量、子程序、形参而不用采用更低级的如地址一类的概念。从低级语言到高级语言的发展过程中,名字 是抽象出来的最重要的概念之一。

    名字不只是用于变量,也常用于常量、子程序、形参等。标识符一词常常与名字概念互换使用。

    一、名字的长度

    早期的程序设计主要用来解决数学问题,数学中常用的就是单个字符的变量。如x,y,z。
    Fortran1 打破了使用单个字符名字的传统,它最多允许使用6个字符。直至到Fortran77。
    Fortran95 中变量名字最多允许31个字符。
    C89/Java/JavaScript/Ada/C# 对名字长度没有限制,但Ada中允许施加一种长度限制,这种限制不少于200个字符。
    C99类似于C89,但名字中前63个字符必须有意义。


    二、名字是否区分大小写

    多数语言,如基于C的语言中(Java,JavaScript等),名字是区分大小写的。或者说这些语言中名字大小写是敏感的。
    如 name,Name,NAME 是三个不同的标识符。部分人觉得很疑惑,这明明就是一个东西啊。认为这严重损害了语言的可读性。
    因为看上去十分相似的名字实际上却表达了不同的实体。


    三、特殊的名字-特殊字

    名字中有一些受到特别关注的,称为特殊字。特殊字分为关键字 和保留字 。

    关键字 ,它只在特定的上下文中式特殊的。
    如JavaScript中function内的arguments,它只在function内是特殊的,你仍然可以 使用它作为标识符 ,如变量名,函数名。但显然这样会引起歧义。

    保留字 ,它是程序设计语言中的特殊字,它不能用做变量、形参、子程序等的名字。
    如Java中的class,JavaScript中的var。又或C、Java、JavaScript中的while,for等。这些都不能作为标识符。

    这两个概念其实很清楚,但后续将其模糊了。尤其在ECMAScript5中提出了“keyword”和“Future Reserved Words”的概念。
    如ECMAScript5中将var、break、for、while等称为关键字(keyword),见ECMAScript5 7.6.1.1

    把为语言后续版本预留的,暂未实现的名字称为未来保留字(Future Reserved Words),见ECMAScript5 7.6.1.2

    一些书籍表述也各不同,

    《JavaScript高级程序设计》第二版基本上和ECMAScript 5 一致,称var、break、for,while等是关键字。见该书19页。按最早的概念是不对的,应该称保留字。
    《JavaScript权威指南》第五版亦未分清关键字和保留字,2.8节大标题为“保留字”,表2-1又称“保留的JavaScript关键字”,表2-2又称“ECMA扩展保留的关键字”。实际上这些都是保留字,前者是已经实现的,后者是为语言后续版本预留的暂未实现的。

    当然这一切由于ECMAScript5 自身就没有严格的区分关键字和保留字的概念。


    四、大多语言,名字有以下规则

    1,第一个字符时字母、下划线(_)或美元符号($)
    2,剩下字符可以是字母、下划线、美元符号和数字

  • 相关阅读:
    mode
    文件操作
    深浅拷贝
    基础数据类型补充
    再谈编码 decode和encode
    Python练习题 015:一颗自由落地的球
    Python练习题 014:完数
    Python练习题 013:求解a+aa+aaa……
    Python练习题 012:字符统计
    Python练习题 011:成绩打分
  • 原文地址:https://www.cnblogs.com/snandy/p/1967806.html
Copyright © 2020-2023  润新知