zoukankan      html  css  js  c++  java
  • javascript权威指南第六版学习

    第二章 语法结构

    2.1 字符集

      什么是字符集?各种字符集什么关系?unicode,utf-8是什么关系?

      字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Characterset)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。http://baike.sogou.com/v291629.htm

      各种字符集的出现时为了满足不同地区,不同语言,不同环境的使用。

      http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html这个连接详细写了字符集和字符编码方式。

    Unicode是字符集,UTF-32/ UTF-16/ UTF-8是三种字符编码方案。

    2.11 大小写

      前端中,html是不区分大小写的,但是js是区分大小写的,也就是说,关键字,变量,函数名和所有的标识符都必须采用一致的大小写形式。

    2.12 空格,换行符和格式控制符

      token:前几节课snl汇报的时候说到token当时第一次听说,后来查了一下,暂时理解为一种口令式的字符串。常用于session验证或者其他的验证,就是附加在主要信息的一段字符,达到验证的目的。

      js中会自动忽略所有的空格和换行,这样编码的时候可以缩进。

    2.13 unicode转义序列

      

      在有些计算机硬件和软件里,无法显示或输入Unicode字符全集。为了支持那些使用老旧技术的程序员,JavaScript定义了一种特殊序列,使用6个ASCII字符来代表任意16位Unicode内码。这些Unicode转义序列均以u为前缀,其后跟随4个十六进制数(使用数字以及大写或小写的字母A~F表示)。这种Unicode转义写法可以用在JavaScript字符串直接量、正则表达式直接量和标识符中(关键字除外)。例如,字符é的Unicode转义写法为u00E9,如下两个JavaScript字符串是完全一样的:

    "café" === "cafu00e9" // => true 

      Unicode转义写法也可以出现在注释中,但由于JavaScript会将注释忽略,它们只是被当成上下文中的ASCII字符处理,而且并不会被解析为其对应的Unicode字符。

    2.2 注释

      JavaScript支持两种格式的注释。在行尾“//”之后的文本都会被JavaScript当做注释忽略掉的。此外,“/*”和“*/”之间的文本也会当做注释,这种注释可以跨行书写,但不能有嵌套的注释。

      

    var a = null;//a是变量
    
    var a = null;
    /*
       a是变量 
    */
    

      养成良好的注释习惯是一个程序员必备的素质之一,单行注释前边空格,多行变量开始行和结束行没有注释内容,中间每注释一条都以*开头,切注意缩进。如下

    /*
     * a是变量
     */
    

    2.3 直接量

      所谓直接量,就是在程序中直接使用的数据值,包括数字、字符串、布尔值、表达式,数组和对象等。http://www.cnblogs.com/coolicer/archive/2010/10/14/1851173.html

    2.4 标识符和保留字

      在JavaScript中,标识符用来对变量和函数进行命名,或者用做JavaScript代码中某些循环语句中的跳转位置的标记。JavaScript标识符必须以字母、下划线(_),$开头,后续可以是字母、数字、$、_,(数字是不允许作为首字母出现的,以便于区分数字和标识符)

      出于可移植性和易于书写的考虑,通常我们只使用ASCII字母和数字来书写标识符。然而需要注意的是,JavaScript允许标识符中出现Unicode字符全集中的字母和数字。(从技术上讲,ECMAScript标准也允许在标识符的首字符后面出现Unicode字符集中的Mn类、Mc类和Pc类译注7)。由此,程序员也可以使用非英语语言或数学符号来书写标识符:

    var sí = true;  
    var π = 3.14; 

      保留字。JavaScript把一些标识符拿出来用做自己的关键字。因此,就不能再在程序中把这些关键字用做标识符了:

    break   delete  function    return  typeof  
    case    do  if  switch  var  
    catch   else    in  this    void  
    continue    false   instanceof  throw   while  
    debugger    finally     new     true    with  
    default for null    try 

    这里面值得注意的是:this,用_this代替,new,do,continue,delete,debugger等容易出错。直接定义会报错:Unexpected token

    http://book.51cto.com/art/201206/343060.htm关于其他的保留字介绍。

    2.5 可选的分号

      js中分号是可以省略的,解析的时候会自动填补。换行读取解析的原则是:如果当前语句和随后的非空格字符不能当成一个整体来解析的话,JavaScript就在当前语句行结束处填补分号。

      下面几个特殊注意的:

      1,如果一条语句以“(”、“[”、“/”、“+”或“-”开始,那么它极有可能和前一条语句合在一起解析。以“/”、“+”和“-”开始的语句并不常见,而以“(”和“[”开始的语句则非常常见,至少在一些JavaScript编码风格中是很普遍的。有些程序员喜欢保守地在语句前加上一个分号,这样哪怕之前的语句被修改了、分号被误删除了,当前语句还是会正确地解析

      2,两个例外:

       第一个例外是在涉及return、break和continue语句(参见第5章)的场景中。如果这三个关键字后紧跟着换行,JavaScript则会在换行处填补分号。例如,这段代码:

      1.   return  
      2.   true; 

       

       第二个例外是在涉及“++”和“--”运算符(见4.8节)的时候。这些运算符可以作为表达式的前缀,也可以当做表达式的后缀。如果将其用做后缀表达式,它和表达式应当在同一行。否则,行尾将填补分号,同时“++”或“--”将会作为下一行代码的前缀操作符并与之一起解析,例如,这段代码:

      1.   x  
      2.   ++  
      3.   y 

       这段代码将解析为“x; ++y”,而不是“x++; y”。

  • 相关阅读:
    CentOS命令找不到
    Docker原理之rootfs
    Docker原理之Namespace
    Docker原理之Cgroups
    Docker目录
    Docker基本使用
    Linux命令之防火墙
    Linux命令目录
    Rancher之主机添加
    oracle-decode函数用法
  • 原文地址:https://www.cnblogs.com/siwy/p/5033507.html
Copyright © 2011-2022 走看看