JavaScript-语法与对象20221126

128 阅读3分钟

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