JavaScript词法结构
2016-11-26 本文已影响0人
佩吉秋
图解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 }