名字/标识符

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

 

名字不只是用于变量,也常用于常量、子程序、形参等。

标识符一词常常与名字概念互换使用。

 

一、名字的长度

早期的程序设计主要用来解决数学问题,数学中常用的就是单个字符的变量。如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,剩下字符可以是字母、下划线、美元符号和数字

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值