JavaScript词法结构

图解javascript犀牛书-chapter2 Lexical Structure

本章是js一些基础词法结构,简单易懂,下面的思维导图基本可以概括所有内容。后面的文字只针对图做一些简单说明。

JavaScript词法结构_第1张图片
core js.png

字符集 charset

JavaScript程序使用Unicode字符集编写。(Unicode是ASCII和Latin-1的超集,几乎支持当前在地球上使用的每一种书写语言。)

JavaScript使用Unicode字符集的UTF-16编码

区分大小 case sensitive

js区分大小写,a 不等于 A

横向拓展:

HTML不区分大小写,BODY === body , 但是XHTML区分大小写。
因此,在标签里定义事件时,可以这么写:

但是在js中,必须全小写:

css标签选择也不区分大小写

div {color:red} === DIV {color: red}

注释

//当行注释

/ * 多行注释 * /

字面量 Literal

故名思意,字面量就是字面上是什么变量,就是什么变量,已经定义好值。

eg:"hello", [1,2,3], {x: 1}

标识符 Identifiers

  • A name 标识符就是一个名字,用来标识变量、函数、循环语句块等
  • 命名规则:首字母必须是字母、下划线或者$符,不可以是数字;非首字母可以是字母数字下划线、$符。
    这里可以拓展一下,css 给元素添加样式时,html id 或者class不可以以数字开头,否则样式无效。

拓展

null 和 undefined的使用场景:

null表示"没有对象",即该处不应该有值。典型用法是:
  • 变量回收,将一个变量赋值为null.var a = null;
  • 作为对象原型链的终点,Object.getPrototypeOf(Object.prototype) //null
  • call, apply时,只是想借用一个函数功能,因此将上下文环境context设置为null,eg:Math.max.apply(null,[1,2,4]) //4
  • ....
null表示"暂未赋值”,典型的用法是:
  • 在js变量提升特性中,变量的定义会被提升至函数顶部,此时变量的值为undefined,eg:

    function foo() {
        console.log(a);  // undefined
       var a = 1;`
       console.log(a);  //1
     }
    

你可能感兴趣的:(JavaScript词法结构)