setter和getter
set有且仅有一个参数
get不允许有任何参数
如果仅有set,没有get,这个属性就是只写属性
如果仅有get,无set 这个属性就是只读属性
用于设置静态变量
对象在创建时就产生set get 属性
定义对象的属性 Object.defineProperty 追加属性
当使用push时 删除添加都不能
数据结构
普通数组类型 注意创建时给入长度,数组的内容数据类型相同,尽量向尾部插入 不在前面终极那插入
二维数组类型 二维数组多用于二位表格类型数据
Set WeakSet
不重复 插入和删除速度快 遍历和查找速度一般
Map
查找速度快 可以key是引用地址 有长度
无法查找上下级关系
树
链表 单向和双向
查找慢
参数
1.参数是局部变量 优先级高于同名的变量
2.是为了解决函数的抽象化,多态化。具备模块化功能
3.js因为是弱引用语言,参数可以多样化改变 但因此造成函数中需要做大量的判断
4.参数也可以为函数中的初始变量
5.在多个函数中,参数可以作为中介来回传递 并且处理 减少
6.js中参数没有初始值(ES5),参数是没有类型区分(大量判断) 参数的先后问题(必须参数在前,不必须参数在后) (ES5)参数没有若干但是有arguments ES6 ...
return
1.使用return跳出函数 条件作用时 ,使用return可以 解决多分支结构
return使用跳出时直接跳出循环或者条件,返回undefined
使用return可以在setInterval或者快速连续调用时用于防抖
使用reurn可以完成函数的开关操作
2.工厂模式
3.单例模式(简单)(复杂)
4.返回参数对象
5.如果参数是函数 返回的是回调函数
6.返回数组或者对象,用于返回多个函数
7.返回函数体
闭包
定义:闭包有权访问另一个函数作用域中的变量的函数
1.为了解决变量污染
2.为了得到私有变量
缺点:会造成内存泄漏