1.选A
首先Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问

关于location对象的各个属性实例
javascript-一篇搞懂location对象!!(建议收藏)_半糖冰的博客-CSDN博客_js銝衍ocation撖寡情
关于location.pathname和location.href的区别location.href/location.search/location.pathname区别及用法_谁动了我的bug的博客-CSDN博客l
另外注意区分host和hostname(hostname只是域名,host是域名+端口号)
2.选C
关于canvas标签canvas基本用法_生菜骨灰级爱好者的博客-CSDN博客_canvas使用

3.选A
关于super方法
①super首先可以作为父类的构造函数,在子类的constructor中this之前调用
②super也可以作为对象,调用父类的方法。并且在普通函数里时,super指的是父类的原型对象,在静态方法中时,super指的是父类
4.
column-gap只是各个列之间的间距是40px
分割线属性设置:
5.
6.
- var arrToTree = (arr) => {
- var treeData = []
- arr.forEach(item => {
- treeData.push(item)
- // 找当前节点的子节点
- let kidsOfCurNodeArr = arr.filter(data => {
- return data.parentId === item.id
- })
- item.children = kidsOfCurNodeArr
-
- })
- return treeData
- }
-
- // 目标:
- let arr = [
- { id: 0, value: 'A', parentId: -1 },
- { id: 1, value: 'B', parentId: 0 },
- { id: 2, value: 'C', parentId: 0 },
- { id: 3, value: 'D', parentId: 1 },
- { id: 4, value: 'E', parentId: 1 },
- { id: 5, value: 'F', parentId: 2 }
- ]
- const treeData = arrToTree(arr)
- console.log(treeData);
7.数组去重函数
- // 数组去重函数
-
- // 法一:利用set的元素唯一性的特性
- var deleteSame1 = (arr) => {
- let tmp = new Set(arr)
- return Array.from(tmp)
- }
-
- // 法二:利用一个空数组装不重复的元素
- var deleteSame2 = (arr) => {
- let res = []
- arr.forEach(ele => {
- if (res.indexOf(ele) === -1) {
- res.push(ele)
- }
- })
- return res
- }
-
- //
-
- let arr = [1, 1, 1, 2, 3, 4, 4, 4, 5, 6, 7]
- console.log(deleteSame2(arr));
8.
- // 求两个日期中间的有效日期
- // 示例:
- // 输入: 2020-9-29~2020-10-3
- // 输出:['2020-9-29','2020-9-30','2020-10-1','2020-10-2','2020-10-3']
-
- var validDate = (str) => {
-
- var monthArr = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
-
- var tmp = str.split('~')
- // console.log(tmp);
- var startYear = parseInt(tmp[0].split('-')[0])
- var startMonth = parseInt(tmp[0].split('-')[1])
-
- var endYear = parseInt(tmp[1].split('-')[0])
- var endMonth = parseInt(tmp[1].split('-')[1])
-
- var beginDay = parseInt(tmp[0].split('-')[2])
- var endDay = parseInt(tmp[1].split('-')[2])
-
- var res = []
- // res.push(tmp[0])
- // res.push(tmp[1])
-
- for (let y = startYear; y <= endYear; y++) {
- let startm = 1
- let endm = 12
- if (y === startYear) {
- startm = startMonth
-
- }
- if (y === endYear) {
- endm = endMonth
- }
-
- var initStr = []
-
- for (let m = startm; m <= endm; m++) {
- // 得到当前月份的天数
- let days = monthArr[m]
-
- var initStr = [y, m]
-
- if (isRunYear(y) && m === 2) {
- days += 1
- }
-
- let begindD = 1
- let endD = days
-
- if (m === startMonth) {
- begindD = beginDay
-
- }
- if (m === endMonth) {
- endD = endDay
- }
- for (let d = begindD; d <= endD; d++) {
- initStr[2] = d
- let r = initStr.join('-')
- res.push(r)
- }
-
- }
- }
- console.log(res);
- }
-
- var isRunYear = (curYear) => {
- if (curYear % 4 === 0 && curYear % 100 !== 0) {
- return 1
- }
- else if (curYear % 400 == 0) {
- return 1
- }
- return 0
- }
-
-
- validDate('2020-9-29~2020-10-3')
-