例如:
var Class = (function() {
var UPPER_BOUND = 100//定义了常量
var Test={}
// 定义了一个静态方法 获取常量的方法
Test.getUPPER_BOUND=function() {
return UPPER_BOUND
}
return Test
})()
用法:
var k=Class.getUPPER_BOUND()
alert(k)//
2.多个常量的情况下:
var Class = (function() {
// Private static attributes.
var constants = {//定义了两个常量
UPPER_BOUND: 100,
LOWER_BOUND: -100
}
var Test={}
// 定义了一个静态方法
Test.getConstant=function(name){//获取常量的方法
return constants[name]
}
return Test
})()
用法:
var k=Class.getConstant('UPPER_BOUND')
alert(k)
for...in每次循环中的value并不是同一个value,for(const value in iterable){
console.log(value)
}
相当于每次都用const重新定义了一个新的value存储iterable中的值,并打印到控制台上;
如果你这样写就会报错,告知你const不可以修改
const value = 1//const定义常量必须有默认值
for(value in iterable){
}
常规数组: 数组元素内容是一种类型的元素,如const arr = [1,2,3,4],在存储空间是连续内存的
JS数组: 数组元素内容不是同一种类型的元素,如const arr = ['haha', 1, {a:1}],则在存储上是一段非连续空间。此时,JS 数组不再具有数组的特征,其底层其实是由链表来实现的
总结
链表的插入/删除效率较高,而访问效率较低;
数组的访问效率较高,而插入效率较低