1.
2.
(1)最后两者de 大小,取决于n。
(2)map的标准写法,只能用for of循环;使用for in会报错。map只能用for of 遍历
var leastInterval = function(tasks, n) {
let map = new Map(),
len = tasks.length,
max = 0,
maxcount = 1;
for(let i = 0; i < len; i++){
let key = tasks[i]
if(map.has(key)){
map.set(key, map.get(key)+1)
}else{
map.set(key,1)
}
}
for(let item of map.values()){
if(item > max){
max = item;
maxcount = 1
}else{
if(item === max){
maxcount++;
}
}
}
return Math.max(len, (n+1)*(max-1)+maxcount)
};
3.
3.11switch&&case
(1)switch一旦匹配成功,没有遇到break就不会停止 // 1,2; 因此多个switch可以共同使用一个break
(2)(3)每一个case的匹配操作是恒等运算,case可以是任何表达式,但是匹配的是时候不会进行任何了类型转换,因为是“===”恒等操作。
(4)当switch在函数内部的时候,return可以代替break
3.12函数
3.13
(1)delete的用法:删除对象中的属性;不能删除var定义的变量
(2)定义在函数内部的变量,是局部变量,var在函数内部声明的变量也是局部变量。
3.14
(1)if语句中声明的变量也会被预编译。如下所示:
也会被预编译。
3.15
(1)for in; for of都可用于数组的遍历,但是遍历map只能用for of;
for in常用来遍历对象;数组本质也是对象,一种特殊的对象,它的key的形式是有序数列;普通对象的key可以自定义;map的也可以自定义。
for in可遍历对象的所有属性,包含原型链上的属性;但是不包含不可枚举的属性
obj.hasOwnProperty(key)用于判断属性是否为自身所有。
let obj = {
a: 1,
b: 2,
c: 3
}
for(let item in obj){
console.log(obj[item]);
}
遍历对象属性值,取属性值的时候不能用".",使用"[ ]"
(2)
3.16
// A
i = j = k = 'Hello Kaivon' :把三个变量的值都初始化为“Hello Karvon”
3.17
(1)强制类型转换之后,字符串会转化为NaN;跟谁比都是false;跟自己比也是。六亲不认
3.19
都对:
(1)类数组fn.arguments.length;只有在函数内部执行时候才可以看到所传递的实参。
(2)只能看到类型。
(3)arguments是一个关于实参列表的类数组;其中包含callee属性;代表函数本身;js中函数可以通过arguments.callee()实现函数回调
https://blog.csdn.net/qq_16339527/article/details/53231725
3.20
(1)字符串对比,只比较开头字符。