Javascript 标识符及同名标识符的优先级

一、定义

  标识符(Identifier)就是一个名字,用来对变量、函数、属性、参数进行命名,或者用做某些循环语句中的跳转位置的标记。

//变量
var Identifier = 123;
//属性
(new Object).Identifier = 'test';
//函数及参数
function IdentifierName(Identifier1){};
//跳转标记
Identifier:
for(var i = 0; i < 5; i++){
    if(i == 3){
        break Identifier;
    }
}

  

二、命名规则

  标识符可以是按照下列格式规则组合起来的一或多个字符:

  • 第一字符必须是一个字母、下划线(_)、或一个美元符号($);
  • 其它字符可以是字母、下划线、美元符号或数字;
//错误示范
  6num  //开头不能用数字
  %sum //开头不能用除(_ $)外特殊符号,如(%  + /等)
  sum+num //开头中间不能使用除(_ $)外特殊符号,如(%  + /等)

  

  javascript是一门区分字母大小写的语言,所以标识符 Identifier 和标识符 identifier 是2个不同的值。

  javascript保留了一些标识符为自己所用,不能把关键字、保留字、true、false和null用作标识符。

//关键字
break
do instanceof typeof case else new var catch finally return void continue for switch while debugger function this with default if throw delete in try
//保留字 abstract enum
int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public
//ES6 非严格模式 class enum extends super const export import
//EW6 严格模式 implements package public interface private static let protected yield

  javascript允许标识符中出现 Unicode字符全集中的字母和数字(包括中文)。因此,程序员也可以使用非英语语言或数学符号来书写标识符. 但出于可移植性和易于书写的考虑,通常我们不使用扩展的ASCII或Unicode字符

//不推荐
var 测试文字 = 'test';

三、最佳实践

  1.通常驼峰格式是标识符命名的首选格式,第一个字母小写,剩下的每个单词的首字母大写

var myMoodToday = 'happy';

  2.根据不同的数据类型进行命名

类型                    后缀            示例        
数组(Array)          Arr         itemsArr
布尔值(Boolean)        Boo         isCompleteBoo
浮点数(Float)          Fl          priceFl
函数(Function)       Fn           handlerFn
整数(Integer)        Int         itemCountInt
对象(Object)         Obj         dIv1Obj
正则表达式(RegExp)       Reg         emailCheckReg
字符串(String)         Str         userNameStr
变量(Variant)        Var         anythingVar 

  3.一般来说,变量的命名要使用名词,而函数应该是动词+名称的形式,且尽量要在变量名中体现出值的数据类型。比如,命名count、length和size表明数据类型是数字,而命名name、title和message表明数据类型是字符串。用单个字符命名的变量诸如i、j、k通常在循环中使用

var count = 10;
var myName="xiaohuochai";
var found = true;
function getName(){
  return 123;  
}

  而对于函数和方法命名来说,第一个单词应该是动词,下面是一些使用动词常见的约定

can    函数返回一个布尔值
has    函数返回一个布尔值
is     函数返回一个布尔值
get    函数返回一个非布尔值
set    函数用来保存一个值

四、同名标识符的优先级

猜你喜欢

转载自www.cnblogs.com/dyqblog/p/10235047.html