JavaScript词法结构

图解javascript犀牛书-chapter2 Lexical Structure

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

core js.png

字符集 charset

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

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

区分大小 case sensitive

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

横向拓展:

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

<button onClick="alert('hello world!')">click</button>

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

<script> window.onload = function() { alert('hello world!') } </script>

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
     }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容