分隔符(空白符)就是各种不可见字符的集合,如空格(\u0020)、水平制表符(\u0009)、垂直制表符(\u000B)、换页符(\u000C)、不中断空白(\u00A0)、字节序标记(\uFEFF)、换行符(\u000A)、 回车符(\u000D)、行分隔符(\u2028)、段分隔符(\u2029)等。

在 JavaScript 中,分隔符不被解析,主要用来分隔各种记号,如标识符、关键字、直接量等信息。

在 JavaScript 脚本中,常用分隔符来格式化代码,以方便阅读。

示例1

对于下面一行代码:

function toStr(a){return a.toString();}

可以使用分隔符格式化显示:

function toStr(a){
return a.toString();
}

一般 JavaScript 编辑器都会提供代码格式化的功能。

分隔符使用时需要注意以下几点:

  1. 分隔符虽然无实际意义,但是在脚本中却不能缺少。

如果在标识符与关键字之间不使用分隔符分隔,JavaScript 就会抛出异常

示例2

在下面代码中,把关键字 function 与标识符 toStr 连在一起,以及把关键字 return 与 toString 标识符连在一起都是错误的。

functiontoStr(a){returna.toString();}  //错误写法
function toStr(a){return a.toString();} //正确写法
  1. JavaScript 解析器一般采用最长行匹配原则,不恰当地换行显示一句代码,容易引发异常或错误。

示例3

下面代码会返回意外的结果。

function toStr(a){
return
a.toString(); //错误的换行
}
document.write(toStr("abc")); //实际返回 undefined,应该返回"abc"

这是因为 return 作为一条独立语句,JavaScript 解析器可以正确解析它,虽然它后面没有分号,解析器在正确解析的前提下会自动为其补加一个分号,以表示该句已经结束。

这样换行显示的 a.toString();就是下一句待执行的命令,而不是被返回的值。

  1. 不能在标识符、关键字等内部使用分隔符。

示例4

在下面函数中使用空格把 toString() 分为两部分,JavaScript 会因无法识别而抛出异常。

function toStr(a){
return a.to String(); //错误分隔符
}
  1. 在字符串或者正则表达式内,分隔符是有意义的,不能够随意省略或替换。

示例5

在下面代码中,变量 a 和 b 被赋予相同的字符串,但是变量 b 中插入了空格,则比较结果是不相等的。

var a = "空格";
var b = "空格 ";
document.write((a==b)); //返回 false,说明不相同

最新文章

  1. 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
  2. android 使用静态变量传递数据
  3. MVC 全站开启缓存,缓解服务器的请求压力
  4. 使用JS制作一个鼠标可拖的DIV(三)——移动带图片DIV
  5. C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想
  6. CSS笔记——padding,margin为百分比计算时的参照对象
  7. TCP服务端和客户端的框架
  8. [Gauss]POJ3185 The Water Bowls
  9. centos nginx install openssl
  10. Tcxtreelist动态控制列或行是否能够编辑
  11. USB 各型插座插头引脚分布
  12. MPMoviePlayerController
  13. Xcode极速代码,征服Xcode
  14. WinForm中使用DDE技术(含源码)
  15. MemCache详细解读
  16. JS sort() 方法
  17. [转]MySQL修改时区的方法小结
  18. 使用swig工具为go语言与c++进行交互
  19. 【Android端 adb相关】adb相关总结
  20. 安装chrome

热门文章

  1. 第二节: Vuejs常用特性1
  2. 使用YII缓存注意事项
  3. Mockito 中文文档 ( 2.0.26 beta )
  4. word2vec生成后缀名model文件处理
  5. Plastic Sprayer Manufacturer - How Does The Sprayer Work?
  6. js判断对象中是否存在某一项和判断是否是对象
  7. Servlet详细介绍
  8. selenium 获取table数据
  9. spring mvc web应用启动时就执行特定处理(线程启动)
  10. IDEA启动项目的时候,控制台中显示的都是乱码