javascript 词法结构小结

作为一名前端程序员,自然学习了一些框架,但是学的越多越发现自己基础的不足,于是想系统的学习一下js基础,然后把它记录下来。

如其他编程语言一样,词法结构是一门语言的基础,它规定了诸如如何给变量起名字、如何写注释、如何断句等。

字符集

JavaScript 所使用的是Unicode字符集编码。和HTML不同,JavaScript 是区分大小写的。也就是说变量、函数名、关键字和所有的标识符都必须使用一致的大小写形式。比如我们可以使用 var 来定义一个变量,而不能使用 VAR 或者 Var 来定义。JavaScript 解释器会忽略空格类字符(空格符、水平制表符、垂直制表符、换页符、不中断空白、字节序标记等)和换行类字符(换行符、回车符、行分隔符、段分隔符)。因此我们可以使用空格空行来格式化代码,提高代码可读性。

注释

注释不是 JavaScript 代码的必要部分,但是注释不仅可以增加代码可读性,还方便程序测试。JavaScript 支持两种格式的注释。第一种是单行注释,由双斜杠构成,在一行中Javascript 解释器会忽略第一个“//”之后的文本,直到本行结束。第二种是多行注释 JavaScript 将忽略 “/*”至“*/” 之间的文本,但是多行注释是不支持嵌套的(也没有嵌套的意义)。

// 这里是单行注释

/* 
*  这里是多行注释
*/

直接量

直接量又叫做字面量,它是程序中直接可以使用的数据值。下面是一些直接量(字面量)的例子:

12 // 数字直接量(字面量)
'zhangsan' //字符串直接量(字面量)
true //布尔直接量(字面量)
/\b[1,6]/g //正则直接量(字面量)
{ a: 1, b: 2 } //对象直接量(字面量)
[ 1, 3, 5 ] //数组直接量(字面量)

标识符、关键字、保留字

JavaScript 标识符其实就是一个名字,可以用这个名字命名变量和函数,也可以用作语句标记。JavaScript 是由数字、字母、下划线(_)和美元符号($)组成,但是不能以数字开头。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

同时 JavaScript 还保留了一些标识符。尽管这些标识符目前还不是关键字,但是在不久后可能成为关键字。这些标识符称作保留字,这样我们在编程时就要避免使用这些保留字,以免发生一些不必要的bug。

语句分隔符

 JavaScript 使用分号 ( ; )作为语句分隔符。但是这个( ; )不是必须的。当不写这个( ; )时,JavaScript 解释器试图将两条语句放在一起解释,当 js 发现无法解释通的时候,它就会在一行结尾添补分号。例如:

a = 5
b = 10
// js解释器先会解释成 a = 5 b = 10;发现无法解释通后会在末尾填不上分号,于是解释成下列语句:
a = 5;
b = 10;

var x = y + z
( m + n ).toString()
// js解释器先会尝试把 z(m+n)当做是函数调用表达式,然后解释为:
var x = y + z ( m + n ) .toString();

但是凡事都有例外,有两种情况 js 会出乎意料。第一种当使用return、continue、break关键字时,如果他们后面紧跟着换行,那么js解释器将不会尝试和下一行放在一起解释,而会直接添补分号;例如:

return
true
// js会将这两行语句解释成
return ;
true;
//而其本意应该是
return true;

第二种情况遇到 ++、-- 这样的运算符,他们的特点是结合性从右向左,并且操作数是1,例如:

a
++
b

看上面的代码,当 JavaScript 解释器解释道第二行 ++ 的时候会先解释其右面的语句,于是将 b 作为++的操作数,因为++的操作数为1,因此无法向前解释,于是将上面代码解释成:

a ;
++ b;

JavaScript 的词法结构比较简单,并且现代的编辑器功能都比较出强大。在日常编程的时候很少出现错误,但是我们还是要注意这些基本问题。

 

转载请注明地址:JavaScript 词法结构小结

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值