JS生疏抽象知识点,概念和技术总结
本文主要收录前端Javascript学习过程中遇到的一些问题及解决方法
(1)关于数组中一个查询判断元素的方法:indexOf
indexOf()方法是JavaScript中的一个数组方法,用于查找指定元素在数组中的索引位置。它接受一个参数,即要查找的元素,然后返回该元素在数组中首次出现的索引位置(可用于查重)。
语法格式如下:
array.indexOf(searchElement[, fromIndex])
searchElement
:要查找的元素。fromIndex
(可选):指定开始查找的索引位置,默认为0。如果为负数,则从数组末尾开始计算。
该方法的返回值有以下几种情况:
- 如果找到指定元素,则返回该元素在数组中的索引位置(从0开始计数)。
- 如果未找到指定元素,则返回-1。
示例用法:
var fruits = ['apple', 'banana', 'orange', 'apple', 'grape'];
console.log(fruits.indexOf('apple')); // 输出: 0
console.log(fruits.indexOf('orange')); // 输出: 2
console.log(fruits.indexOf('watermelon')); // 输出: -1
console.log(fruits.indexOf('apple', 1)); // 输出: 3
(2)关于一个可对数组中的全部元素进行操作的函数(遍历全部):map();
数组中的map()
方法是一个高阶函数,它用于对数组中的每个元素进行操作,并返回一个新的数组,该数组包含操作后的结果。map()
方法接受一个回调函数作为参数,该回调函数会被应用到数组中的每个元素上。
回调函数接受三个参数:当前元素的值、当前元素的索引和原始数组。你可以在回调函数中对当前元素进行任何操作,并返回操作后的结果。map()
方法会遍历数组中的每个元素,并将回调函数的返回值添加到新的数组中。
下面是一个使用map()
方法的示例:
var numbers = [1, 2, 3, 4, 5];
var squaredNumbers = numbers.map(function(num) { return num * num;});
console.log(squaredNumbers); // 输出: [1, 4, 9, 16, 25]
在上面的示例中,我们定义了一个名为numbers
的数组。然后,我们使用map()
方法对数组中的每个元素进行平方操作,并将结果存储在squaredNumbers
数组中。最后,我们打印出squaredNumbers
数组的内容,得到了每个元素的平方值。
map()
方法非常方便,可以用于对数组中的每个元素进行转换、映射或操作。它提供了一种简洁的方式来处理数组,并生成一个新的数组作为结果。
(3)正确的使用 parseInt
在 JavaScript 中,parseInt()
函数用于将字符串转换为整数。它的语法如下:
1 parseInt(string, radix);
string
参数是要转换的字符串,radix
参数是进制数(可选,默认为 10)。该函数返回解析后的整数。如果无法解析字符串,则返回 NaN。
以下是一些示例:
parseInt("123"); // 返回 123
parseInt("10", 2); // 返回 2,将二进制数 10 转换为十进制数
parseInt("0xF", 16); // 返回 15,将十六进制数 F 转换为十进制数
parseInt("hello"); // 返回 NaN,无法解析字符串
需要注意的是,如果字符串以 0x 或 0X 开头,将被解析为十六进制数。如果字符串以 0 开头,将被解析为八进制数(在 ECMAScript 5 中已经废弃),如果需要解析为十进制数,可以使用 Number()
函数进行转换。
另外,如果字符串包含非数字字符,parseInt()
函数会忽略它们并返回已经解析的整数部分,例如:
1 parseInt("123hello"); // 返回 123
|
需要注意的是,parseInt()
函数有一些坑点,例如:
- 如果省略
radix
参数,则不同浏览器可能会有不同的默认值。因此,为了避免兼容性问题,建议始终明确指定radix
参数。 - 如果字符串以 0 开头且没有指定
radix
参数,则某些浏览器会将其解析为八进制数。在 ECMAScript 5 中,这种行为已经被废弃,但在某些浏览器中仍然存在,因此建议始终指定radix
参数。 - 如果字符串包含浮点数,则
parseInt()
函数会将其截断为整数部分。
综上所述,虽然 parseInt()
函数在某些情况下非常有用,但在使用之前需要注意这些坑点。
(3)关于获取元素的三种方法获取形式的概论
在 JavaScript 中,你可以使用 getElementsByTagName
和 getElementsByClassName
这两个方法来获取多个元素。
- getElementsByTagName:
getElementsByTagName
方法可以通过标签名称获取文档中所有指定标签的元素,并返回一个类似数组的 HTMLCollection 对象。例如,如果你想获取所有的<p>
元素,可以这样做:
var paragraphs = document.getElementsByTagName('p');
- getElementsByClassName:
getElementsByClassName
方法可以通过类名获取文档中所有指定类名的元素,并返回一个类似数组的 HTMLCollection 对象。例如,如果你想获取所有类名为example
的元素,可以这样做:
var elements = document.getElementsByClassName('example');
这两种方法都返回类似数组的对象,你可以通过索引访问其中的元素,或者使用循环来处理每个元素。需要注意的是,返回的是 HTMLCollection 对象,而不是数组,因此某些数组方法可能不适用。
如果你想要将它们转换为数组,可以使用类似 Array.from
或者 Array.prototype.slice.call
这样的方法。
- getElementsByID:
使用getElementByID可以确保获取一个且只有一个元素的方法
转载自:https://juejin.cn/post/7377589884188262410