打印

SJ9008: 仅 IE 支持使用含中文标点符号的变量名

作者:周涛

标准参考

Javascript 中使用 var 语句来声明变量,变量名(即标识符)需要遵守两条简单的规则:

  1. 第一个字符必须是字母、下划线(_)或美圆符号($)。
  2. 余下的字符可以是下划线、美圆符号或任何字母或数字字符。

以下都是合法的标识符:

var test;
var $test;
var $1;
var _test;
var 中文字符;

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

问题描述

IE 中允许变量名中出现 ',' 等中文标点符号,而其他浏览器则不允许。

造成的影响

变量声明可能失败,造成后续代码执行错误。

受影响的浏览器

IE6 IE7 IE8

问题分析

分析以下代码:

var 中国,北京=["海淀","朝阳","东城","西城"];
alert(中国,北京);

以上代码在各浏览器中的运行结果如下:

IE 其他浏览器
弹出提示框:海淀,朝阳,东城,西城 报语法错误:非法字符

可见:只有 IE 允许变量名中出现中文逗号。

将上述代码中的逗号 ',' 替换为中文顿号 '、',句号 '。' 等,效果一致。

解决方案

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

参见

知识库

相关问题

测试环境

操作系统版本: Windows 7 Ultimate build 7600
浏览器版本: IE6
IE7
IE8
Firefox 3.6
Chrome 4.0.302.3 dev
Safari 4.0.4
Opera 10.51
测试页面: ...
本文更新时间: 2010-07-02

关键字

标识符 变量 中文 逗号 句号 顿号 标点符号