对象
对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合
对象的增删改查

属性的遍历:for...in 循环
for...in循环用来遍历一个对象的全部属性。

两个使用注意点
· 它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
· 它不仅遍历对象自身的属性,还遍历继承的属性。
总结:一般情况下,都是只想遍历对象自身的属性,所以使用for...in的时候,应该结合使用hasOwnProperty方法,在循环内部判断一下,某个属性是否为对象自身的属性。

for...in循环不仅可以遍历对象,也可以遍历数组,毕竟数组只是一种特殊对象。(不推荐)

推荐使用for循环或while循环
数组最前面增加一个对象
https://blog.csdn.net/qq_41702660/article/details/81436725
splice方法splice(开始位置,删除个数,要添加的)
在最前面增加一个成员,直接unshift(要添加的)
那么shift就是删掉最前一位
push()最后一位增加
trim() 删除两端空格
parseInt() 转化为整数
parseFloat方法用于将一个字符串转为浮点数。
isNaN方法可以用来判断一个值是否为NaN
toString() 转化为字符串
typeof返回的数据类型
使用JSON.parse()方法来转化json对象
函数
JavaScript 有三种声明函数的方法。
1.function 命令函数的声明

2.函数表达式

3.Function 构造函数

arguments 对象
由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数。这就是arguments对象的由来。
arguments对象包含了函数运行时的所有参数
你知道三元运算符吗?怎么用?
问号之前做判断,为 true 返回 冒号前的,为false返回冒号后面的
如何判断 NaN?
isNaN()
JS有几种数据类型
https://blog.csdn.net/lgno2/article/details/111659563
数据类型可以分为两类:原始数据类型(基础数据类型)和 引用数据类型(对象类型)
共8种
原始数据类型
· number
· string
· boolean
· null
· undefined
· symbol(ES6)这种数据类型主要用于创建一个独一无二的标识
· bigint(ES10)
引用数据类型
· object
Js 中的原始值和引用值:
https://www.cnblogs.com/ay-a/p/8698259.html
== 跟 === 的不同
https://www.zhihu.com/question/31442029
==是相等运算符,===是全等/严格运算符,前者判断数据的值,后者先判断数据类型再判断值
js中使用==会造成类型转换,对后续代码会造成意外的影响
JavaScript中var、let和const的区别
1. var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
var 声明的变量存在提升
2. let是块级作用域,函数内部使用let定义后,对函数外部无影响。
在同一个块级作用域,不能重复声明变量。
let 声明的变量不存在变量提升,换一种说法,就是 let 声明存在暂时性死区(TDZ)。
3. const定义的变量不可以修改,而且必须初始化。
const 声明方式,除了具有 let 的上述特点外,其还具备一个特点,即 const 定义的变量,一旦定义后,就不能修改,即 const 声明的为常量。
例如:

但是,并不是说 const 声明的变量其内部内容不可变,如:

所以准确的说,是 const 声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。
总结
1. var 声明的变量属于函数作用域,let 和 const 声明的变量属于块级作用域;
2. var 存在变量提升现象,而 let 和 const 没有此类现象;
3. var 变量可以重复声明,而在同一个块级作用域,let 变量不能重新声明,const 变量不能修改。
4. var 和 let 用以声明变量,const 用于声明只读的常量;
5. var 声明的变量,不存在块级作用域,在全局范围内都有效,let 和 const 声明的,只在它所在的代码块内有效;
6. let 和 const 不存在像 var 那样的 “变量提升” 现象,所以 var 定义变量可以先使用,后声明,而 let 和 const 只可先声明,后使用;
7. let 声明的变量存在暂时性死区,即只要块级作用域中存在 let,那么它所声明的变量就绑定了这个区域,不再受外部的影响。
8. let 不允许在相同作用域内,重复声明同一个变量;
9. const 在声明时必须初始化赋值,一旦声明,其声明的值就不允许改变,更不允许重复声明;
10. 如 const 声明了一个复合类型的常量,其存储的是一个引用地址,不允许改变的是这个地址,而对象本身是可变的。
由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数。这就是arguments对象的由来。