JS语法篇
1.空白
空白通常没有意义,主要用来做分隔字符序列。
如:
const that = this;
const和that之间的空格是不能移除。
注释:行注释与块注释
行注释比块注释不容易引起混乱。
2.标识符
标识符,是由一个字母、下划线或美元符号开头的。
并且不能使用保留字。
3.数字
JavaScript只有一个数字类型。内部被表示为64位的浮点数。
NAN是一个数值。
64位。十进制。8位。16位。这几个是代表什么信息,什么时候用?不熟悉不清楚???
4.字符串
字符串建立后是不可变的。只能通过+号连接再建一个新字符串。
如:const a = 'text'+ 'one'
5.语句
在Script标签提供一个被编译且立即执行的编译单元。
switch、while、for和do语句允许有一个可选的前置标签(lable),它配合break语句来使用。
语句通常按照从上到下的顺序被执行。
JavaScript可以通过条件语句(if和switch)、循环语句(while、for和do)、强制跳转语句(break、return和throw)和函数调用来改变执行序列。
变量要放在函数头部。
下面列出的值被当做假(falsy):
false
null
undefined
空字符串''
数字0
数字 NAN
6.表达式
最简单的表达式是字面量值(数字'number'、字符串'string'、布尔'boolean'、函数'function'、对象'object'、特殊值'undefined/null')
常见运算符:
| 标题 | 注释 |
|---|---|
| . [] () | 提取属性与调用函数 |
| delete new typeof + - ! | 一元运算符 |
| * 、 & | 乘法、除法、求余 |
| + - | 加法/连接、减法 |
| >= <= > < | 不等式运算符 |
| === !== | 等式运算符 |
| && | 逻辑与 |
| II | 逻辑或 |
| ?: | 三元 |
7.字面量
对象字面量是一种可以方便地按指定规格创建新对象的表示法。属性名可以是标识符或字符串。
8.函数
函数字面量定义了函数值。 function a () {}
对象
JavaScript数据类型包括数字、字符串、布尔值、null值和undefined值。其他所有的值都是对象。
数字、字符串、布尔值是不可变的。
对象是可变的键控集合,包括:数组、函数、正则表达式。
对象是属性的容器,其中每个属性都拥有名字和值。属性名字可以是包括空字符串在内的任意字符串。属性值可以是除undefined值之外的任何值。
JavaScript里的对象是无类型(class-free)的。它对新属性的名字和属性的值没有限制。
1.对象字面量
一个对象字面量是包围在一对花括号中的零或多个“名/值”对。
const empty_object = {};
属性名可以是包括空字符串在内的任何字符串。在对象字面量中,如果属性名是一个合法的JavaScript标识符且不是保留字,则并不强制要求用引号括住属性名。
let flight = { "first_name:jake";
"(first-name):bowa";}
2.检索
要检索对象里包含的值,可以采用在[]后缀中括住一个字符串表达式的方法。也可用.表示法代替。
如:stooge["name"]
stooge.name
3.更新
对象里的值可以通过赋值语句来更新。如果属性名已经存在于对象里,那么这个属性的值就会被替换。
4.引用
对象通过引用来传递。它们永远不会被复制。
如:var x = stooge;
x.nickname = 'jack'
var a = stooge.nickname;
//因为x和stooge是指向同一个对象的引用。所以nick为'jack'
5.原型
每个对象都连接到一个原型对象,并且它可以从中继承属性。
当你创建一个新对象时,可以选择某个对象作为它的原型。如果我们尝试去获取对象的某个属性值,但该对象没有些属性名,则会向其父级寻找,依此类推,直到该过程最后到达终点。如无则是undefined值。
如果我们添加一个新的属性到原型中,该属性会立即对所有子级对象可见。
6.反射
typeof操作符是确定属性的类型。
7.删除
delete运算符可以删除对象的属性。
8.减少全局变量污染
最小化使用全局变量的方法之一,只创建一个唯一的全局变量。
全局变量:var