js里使用中文变量名有哪些缺点?


Ecma262规定标识符中可以使用ASCII扩展字符和Unicode字符:


 var 安静的美男子 = {高: 149, 富: 0, 帅: undefined};

var ಠ_ಠ = 安静的美男子.帅;

写这样萌的代码,真的不好吗?
在浏览器中执行类似这样的代码有什么隐患吗?
使用中文或颜文字做变量名除了不支持驼峰格式外,还有那些缺点?

命名 JavaScript 变量

白、夜茶ぃ默 9 years, 7 months ago

没装输入法就不能写代码

诺德皇家卫士 answered 9 years, 7 months ago

用中文多不方便

tengfy answered 9 years, 7 months ago

如果能做到比较智能,其实也没大家想的那么噁心,起码在某些非专业的又需要部分编程开发的领域可以降低学习门槛

因为没有关键字高亮,所以我就手动高亮下


 如果 我的年龄 大于 十八 那么
    我的类型 是 成年人

魔法G莓莓 answered 9 years, 7 months ago

虽然是行得通,但是你还要考虑文件编码问题的话,中文就不合适了

一般会社員 answered 9 years, 7 months ago

有时使用中文反而方便,比如多语言切换:


 var lang={
    locale: 'zh-cn',
    '首页':'首页',
    '菜单':'菜单'
}

var lang={
    locale: 'en-us',
    '首页':'Home',
    '菜单':'Menu'
}

<li><%= lang['首页'] %></li>
<li><%= lang['菜单'] %></li>

通过其他的手段引入不同的 lang 变量,使用的时候使用中文属性,可以增加可读性,也不会因为词汇量匮乏或者命名不规范造成误解

从来不蛋疼 answered 9 years, 7 months ago

打起来麻烦读起来也麻烦。

xysyc answered 9 years, 7 months ago

因为大家都不这么写!

Neria、 answered 9 years, 7 months ago

挺有意思的问题。不过既然楼主是问缺点,那就专门谈谈缺点。

  1. 首先,有的答案已经指出了,软件开发是一项国际化很高的工作,先谈比较远的,比如某天你们团队招了个老外,老外还要不要做开发了?
  2. 或者你远走他乡,去了个周围都是老外的地方,还要不要复用以前的代码?
  3. 或者,你的代码进到了某个unicode或者中文处理不当的地方(比如某些变态的浏览器,或者很低版本的Node.js或者某些单片机,甚至或者是别人自己写的解释程序),有可能会挂掉,当然也有可能让别人的程序挂掉。
  4. 你的代码进到了某台没有中文字体的机器,如何查看??(和第3点是不同的问题哦)
  5. 或者进到没有中文输入法的机器,如何编辑??
  6. 或者进到编码设置错误的机器(比如Linux),如何查看编辑??
  7. 打起来麻烦
  8. 中文产生混淆的概率比英文要大得多,比如 var 一=1,——=2;var 二=一-——; 你知道 是多少么?
  9. 符号组合做变量容易引入空格或者其它空白字符混淆,比如 var 对象={};对象["^_^ "]=1;对象["^_^"]=2; 你真的分得清么?
  10. 差不多了,如果被鄙视也算的话,刚好凑够10条
便当当当当当 answered 9 years, 7 months ago

这是完成中华民族伟大复兴的必经之路。

这是中国崛起的前奏。

“使用汉字做变量名,从我做起”

使用中文做变量名的程序,在运行时,通常都会弹出一句话: 不赞不是中国人

宅男拯救世界 answered 9 years, 7 months ago

你在项目里试试,保证打不死你。

超级大烂人 answered 9 years, 7 months ago

其实没什么不好,但是

软件开发应该是国际化程度非常高的一个职业,相对于约定成俗的编程习惯,中文在此谈不上有任何优势,而且根本没这个必要。

还有一个很复杂的问题,中文输入法一般都是默认使用全角字符的。我们在使用英文写代码的时候并不需要切换语言,但是用中文变量名在输入一部分符号的时候还是要切换成英文(或者是半角字符),挺麻烦的。【如果说非要设置成在中文状态下默认就使用半角符号,作为强迫症我认为这种行为不能忍受,需要打死】

私下里用用可以,但是我还是倾向于,我希望外国友人也能看懂我的代码。

DIO爷的飞刀 answered 9 years, 7 months ago

Your Answer