问题代码
JS代码:
JScript code
var 中文字符;
var 面食、包子=[包子,包子,面条,茄子];
见过正常的变量名,没见过中文的正常的变量名。
所以…… 以上代码可用吗??
带着问题,我们来看看 ECMAScript 的规定。
变量的定义
对于变量的定义,在ECMAScript 规范中规定有这么两点:
1. 第一个字符必须是字母、下划线(_)或美圆符号($)。
2. 余下的字符可以是下划线、美圆符号或任何字母或数字字符。
以上可用的字符集中没有提到汉字和中文字符。
关于标识符的更多信息,请参考 ECMAScript 规范 7.6 Identifier Names and Identifiers中的内容。
变量名可以包含是汉字吗?
做个测试,test.html(文件编码为 UTF-8):
HTML code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><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
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><META http-equiv=Content-Type content="text/html; charset=utf-8">
<script type="text/javascript">
var 中文、字符 = "你好,世界";
alert(中文、字符);
</script>
这次,除了 IE 之外,其他浏览器无一幸免。
再试一下英文和中文字符的混合变量:
HTML code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><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
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><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。
所以,要警惕这个中文的逗号:,。
解决方案
避免在变量名(即标识符)中出现中文标点,以保证兼容各浏览器。
分享到:
相关推荐
js把字符串转换成变量js把字符串转换成变量
Javascript新手入门之字符串拼接与变量的应用 1. 课程大纲 字符串拼接(+)的学习和应用 坐标变换在飞机大战游戏中的应用 2.1 字符串的拼接 在JS中使用“+"号,连接字符串、变量、数值等。 2.2 在警告框...
JS判断字符串变量是否含有某个字串的实现方法 varCts = bblText; if(Cts.indexOf(Text) > 0 ){ alert('Cts中包含Text字符串'); } indexOf用法: 返回 String 对象内第一次出现子字符串的字符位置。 ...
包括数据库迁移,增量抽取,多表合成一张表,一个字段拆分成多字段,数据正则过滤、kitchen部署调优等案例,内含相应数据库的SQL脚本、kjb、ktr文件,以及使用过程中会经常遇到的bug注意事项
大家应该都知道,对于JavaScript,有3种不同方法可以将变量转换为字符串。这篇文章将详细介绍这些方法,并比较他们的优劣。下面话不多说了,来一起看看详细的介绍吧。 3种方法 将变量转换为字符串的3种方法如下: ...
今天在写js的时候碰到了难题,我又一个页面需要生成很多的变量。但是变量的名称是根据参数的不同而区分的。 例如可能需要生成 date_1,date_2,datet_3… (后面的数字是根据参数来的)。 所以我的函数名 应该由 var ...
在JS中使用“+”号,连接字符串、变量、数值等。 2.2 在警告框上显示朋友的数量 在警告框上显示朋友的数量,显示效果如下 声明变量 friends表示朋友的数量,在警告框上显示“我的朋友数量为:7″,使用字符串拼接符...
下面小编就为大家分享一篇js判断数组是否包含某个字符串变量的实例,具有很好的参考价值,希望对大家有所帮助
本例是PHP和javascript交互的例子,php中的值赋给js变量中,前提是这个php变量必须有值才行,就算是假分支中。比如php中的$flags在本例中为true,如果js中false语句写成:$title_1[removed] = “<?php echo $...
JScript 是一种区分大小写的语言。 第一个字符必须是一个 ASCII 字母(大小写均可),或一个下划线(_)。注意第一个字符不能是数字。...Smith&Wesson // “与”符号(&)字符用于变量名称是无效的。
著名的变量命名规则Camel 标记法首字母是小写的,接下来的字母都以大写字符开头。例如: 代码如下:var testValue = 0, secondValue = “hi”;Pascal 标记法首字母是大写的,接下来的字母都以大写字符开头。例如: ...
Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将其置于Java、C和JavaScript之上,真的非常荣幸了 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统管理...
1.js变量 2.数据类型 3.两个变量交换的三种方法 4.查看数据类型的方法 5.string int方法 6.数据长度 7.变量名的命名规则和规范 8.关键字保留字 标识符
Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将其置于Java、C和JavaScript之上,真的非常荣幸了 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统管理...
这篇笔记呢,咱记录下变量和数据类型的基础知识,因为两者有联系 所以放在一起记录 1 如何声明变量 变量声明使用var关键字,下面举一些变量声明的例子: <!DOCTYPE html> <html> <head> <title&...
本文实例讲述了JavaScript变量基本使用方法。分享给大家供大家参考,具体如下: JavaScript 是一种弱类型语言,javascript的变量类型由它的值来决定。 定义变量需要用关键字 ‘var’ var iNum = 123; var sTr = '...