西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发javascript|JQuery → 带有中文的JS变量需要谨慎

带有中文的JS变量需要谨慎

相关软件相关文章发表评论 来源:本站整理时间:2010/9/14 9:08:44字体大小:A-A+

作者:不详点击:328次评论:0次标签: JavaScript

  • 类型:电子教程大小:3.3M语言:中文 评分:3.6
  • 标签:
立即下载

问题代码
JS代码:
JScript codevar 中文字符;
var 面食、包子=[包子,包子,面条,茄子];
见过正常的变量名,没见过中文的正常的变量名。
所以…… 以上代码可用吗??
带着问题,我们来看看 ECMAScript 的规定。

变量的定义
对于变量的定义,在ECMAScript 规范中规定有这么两点:
1. 第一个字符必须是字母、下划线(_)或美圆符号($)。
2. 余下的字符可以是下划线、美圆符号或任何字母或数字字符。
以上可用的字符集中没有提到汉字和中文字符。

关于标识符的更多信息,请参考 ECMAScript 规范 7.6 Identifier Names and Identifiers中的内容。

变量名可以包含是汉字吗?
做个测试,test.html(文件编码为 UTF-8):
HTML code<META http-equiv=Content-Type content="text/html; charset=utf-8">
<script type="text/javascript">
var 中文字符 = "你好,世界";
alert(中文字符);

var 中文X字符 = "你好,世界X";
alert(中文X字符);
</script>
注意,一定要用 META 标签确保页面编码和文件编码一致。
可喜可贺,所有浏览器都支持中文变量名。

变量名中可以包含中文字符吗?
看一下的例子:
HTML code<META http-equiv=Content-Type content="text/html; charset=utf-8">
<script type="text/javascript">
var 中文、字符 = "你好,世界";
alert(中文、字符);
</script>
这次,除了 IE 之外,其他浏览器无一幸免。

再试一下英文和中文字符的混合变量:
HTML code<META http-equiv=Content-Type content="text/html; charset=utf-8">
<script type="text/javascript">
var as、you = "你好,世界";
alert(as、you);
</script>
IE 再一次表现力它的“宽容”,而其他浏览器又挂掉了。

看来
只有 IE 中的 Javascript 变量名支持中文字符。

蛊惑之中文逗号
一定要小心中文逗号分隔变量的做法:
HTML code<META http-equiv=Content-Type content="text/html; charset=utf-8">
<script type="text/javascript">
var as,you = "你好,世界";
alert(as,you);
</script>
这段代码的原意是定义两个变量,一个是 as,一个是 you,而且还给 you 赋了初始值。但是,事与愿违,逗号错了。所以,如果这时候你访问 as 或者是 you,对不起,没有…… IE里倒是有这个变量:as,you。

所以,要警惕这个中文的逗号:,。

解决方案
避免在变量名(即标识符)中出现中文标点,以保证兼容各浏览器。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)