目录
1、JavaScript中document.getElementById()返回值的类型为?
2、下列选项中,不属于JavaScript继承的方式的一项是()
1、以数字的形式返回第一个参数数组中第二个参数所在的首个索引值
一、选择题
1、JavaScript中document.getElementById()返回值的类型为?
A、Array
B、Object
C、String
D、Function
正确答案:B
解析:
(1)getElementById 有括号 和 没有括号 的区别:
①有括号:document.getElementById('id'); 返回一个Element对象,返回值类型是Object
getElementById 是document 对象下的一个函数,后面加 () 就是调用了 getElementById 这个函数,得到函数的返回值,而函数的返回值就是一个元素节点对象
②没有括号:document.getElementById; 返回一个函数,返回值类型是Function
getElementById 是 document 对象下的一个函数,函数用法:给函数传入一个 id,这个函数就会把页面上第一个 id 对应的 dom 节点也就是一个 element 对象返回给我们,如果没有 id 对应的 dom 节点,则返回 null
(2)document.getElementById() 和 document.getElementsByName() 的区别:
①document.getElementById() 返回的是单个元素,document.getElementsByName() 返回的是元素的数组
②因为一个文档中的 name 属性可能不唯一,(如 HTML 表单中的单选按钮通常具有相同的 name 属性), 所以 getElementsByName() 方法返回的是元素的数组,而不是一个元素
(3)document对象下常见的获取dom节点的方法
- document.getElementsByClassName():返回文档中所有指定类名的元素集合,作为 NodeList 对象(伪数组)
- document.getElementsByName():返回带有指定名称的对象集合
- document.getElementsByTagName():返回带有指定标签名的对象集合
- document.querySelectorAll():返回文档中匹配的CSS选择器的所有元素节点列表,是 HTML5 中引入的新方法
注意:以上四个返回的都是集合,都是getElements,而不是getElement,数组里每一项是相应的dom节点
document.getElementById():返回对拥有指定 id 的第一个对象的引用
document.querySelector():返回文档中匹配指定的CSS选择器的第一元素
注意:以上两个返回的都是单个dom节点对象
2、下列选项中,不属于JavaScript继承的方式的一项是()
A、原型链继承
B、构造函数继承
C、组合继承
D、关联继承
正确答案:D 你的答案:C
解析:
(1)js 常见的继承方式包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承,以及ES6新增的class继承,但不包括关联继承
(2)对这些继承的详细描述
https://www.cnblogs.com/Leophen/p/11401734.html
3、以下哪些表达式的值为0?
A、(()=>{}).length
B、1 & 2
C、+[]
D、[1,2,-3].reduce((a, b) => a - b, 0)
正确答案:ABCD 你的答案:ACD
解析:
(1)A选项:(()=>{}).length; 获取方法形参个数,形参为0
- 如果是((a)=> {}).length,形参有一个所以函数的length为1
- 如果是((a,b)=> {}).length,形参有两个所以函数的length为2
(2)B选项:按位与运算,同为1才为1,否则返回0,1=0001、2=0010,1&2 结果是0000 ,转成10进制也就是0
(3)C选项:+[] 隐式类型转换,+会让 [] 隐式转换成 Number,因为 [] 是对象,所以toPrimitive->valueOf->toString为 '' 字符串,Number('') 得 0
(4)D选项:reduce累加器,对数组中的每个元素执行一个 reduce 函数,将其结果汇总为单个返回值。a为累计器累计回调的返回值,b为数组的每一项元素,传入初始值0->0-(1)->(-1)-2->(-3)-(-3)->0
reduce()实例描述,可看小编这篇文章:ES6篇(上)_五秒法则的博客-CSDN博客
二、编程题
1、以数字的形式返回第一个参数数组中第二个参数所在的首个索引值
注意:如果数组中不存在目标值,则返回-1
解析:
(1)indexOf()方法
<script>
let array = [35,24,88,23,67,35,63,24,72]
value = 24
function _indexof(array,value){
return array.indexOf(value)
}
console.log(_indexof(array,value));
</script>
(2)findIndex()方法
<script>
let array = [35,24,88,23,67,35,63,24,72]
value = 24
function _indexof(array,value){
return array.findIndex(e=>e === value)
}
console.log(_indexof(array,value));
</script>
(3)for()循环
<script>
let array = [35,24,88,23,67,35,63,24,72]
value = 24
function _indexof(array,value){
for(let i in array){
if(array[i] === value){
return +i
}
}
return -1
}
console.log(_indexof(array,value));
</script>