Math
JavaScript的Math
对象是一个内置对象,它提供了一组用于执行数学计算的方法和常量。Math
对象中的方法和属性都是静态的,也就是说我们可以直接使用它们而不需要先创建一个Math
对象实例。
以下是Math
对象中常用的一些方法:
Math.abs(x)
:返回一个数的绝对值。Math.ceil(x)
:返回一个数向上取整的值。Math.floor(x)
:返回一个数向下取整的值。Math.max(x1, x2, ..., xn)
:返回一组数中的最大值。Math.min(x1, x2, ..., xn)
:返回一组数中的最小值。Math.pow(x, y)
:返回一个数的指定次幂。Math.round(x)
:返回一个数四舍五入后的值。Math.sqrt(x)
:返回一个数的平方根。
除了这些方法之外,Math
对象还提供了一些常量,例如:
Math.PI
:圆周率(π)的近似值,约为3.14159。Math.E
:自然对数的底数。
以下是一个示例代码,演示了如何使用Math
对象中的一些方法:
let x = -10.5;
let y = 4;
console.log(Math.abs(x)); // 输出: 10.5
console.log(Math.ceil(x)); // 输出: -10
console.log(Math.floor(x)); // 输出: -11
console.log(Math.max(x, y)); // 输出: 4
console.log(Math.min(x, y)); // 输出: -10.5
console.log(Math.pow(y, 3)); // 输出: 64
console.log(Math.round(x)); // 输出: -11
console.log(Math.sqrt(y)); // 输出: 2
需要注意的是,Math
对象中的方法和属性都是静态的,所以我们不能使用new
关键字来创建一个Math
对象实例。同时,Math
对象中的方法和属性都是全局可用的,也就是说我们可以在任何地方直接使用它们。
>>
在 JavaScript 中,>>
是位运算符之一,用于右移操作。
右移操作将二进制数的所有位向右移动指定的位数,并用符号位进行扩展填充。具体操作如下:
- 将要进行右移操作的数转换为二进制表示。
- 将二进制数的所有位向右移动指定的位数。
- 对于有符号整数,如果最左边的位(符号位)是 1,则在右移时会用 1 进行扩展填充;如果最左边的位是 0,则在右移时会用 0 进行扩展填充。
例如,对于表达式 x >> y
,其中 x
和 y
是数字变量:
- 如果
x
的二进制表示为10101010
,而y
的值为3
,则x >> y
的结果为00010101
,即将所有位向右移动三位,并用符号位进行扩展填充。 - 如果
x
的二进制表示为11110000
,而y
的值为2
,则x >> y
的结果为11111100
,即将所有位向右移动两位,并用符号位进行扩展填充。
需要注意的是,右移操作对于有符号整数和无符号整数有不同的行为。对于有符号整数,右移操作会保留符号位,而对于无符号整数,右移操作会用 0 进行扩展填充。
左移运算符这里就不展示了,把右改成左就ok
map
let map = new Map()
代码创建了一个空的 Map 对象。Map 对象是一种键值对集合,其中每个键和每个值都可以是任何类型(包括对象、原始类型等)。下面是一个使用 Map 对象的例子:
let map = new Map();
// 向 Map 中添加键值对
map.set('name', 'John');
map.set('age', 25);
// 从 Map 中获取键值对
console.log(map.get('name')); // "John"
console.log(map.get('age')); // 25
// 检查 Map 中是否存在某个键
console.log(map.has('name')); // true
console.log(map.has('address')); // false
// 从 Map 中删除键值对
map.delete('name');
// 遍历 Map 中的键值对
for (let [key, value] of map) {
console.log(key + ' = ' + value);
}
// 输出:
// "age = 25"
在上面的例子中,我们创建了一个空的 Map 对象,并向其中添加了两个键值对。我们使用get()
方法从 Map 对象中获取键值对,并使用has()
方法检查 Map 中是否存在某个键。我们还使用delete()
方法从 Map 中删除了一个键值对。最后,我们使用 for...of 循环遍历了 Map 对象中的所有键值对。
希望这个例子可以帮助您理解如何使用 Map 对象。如果您有任何进一步的问题,请随时提问!
set 哈希表常用
Set
是 JavaScript 中的一种数据结构,用于存储唯一值(无重复)。它可以包含任何类型的值,但存储的值在 Set 中必须是唯一的。
创建 Set
你可以通过以下方式创建一个 Set:
// 创建一个空的 Set
let set = new Set();
// 使用数组初始化 Set
let set = new Set([1, 2, 3, 4, 4]);
// 注意:重复的值在 Set 中只会出现一次,所以最终的 Set 是 [1, 2, 3, 4]
添加和删除元素
使用 add()
方法向 Set 中添加新元素,使用 delete()
方法删除元素:
mySet.add(1); // 添加元素
mySet.add(2);
mySet.add(3);
mySet.delete(2); // 删除元素
检查值是否存在
你可以使用 has()
方法检查 Set 中是否包含特定值:
console.log(mySet.has(1)); // 输出: true
console.log(mySet.has(2)); // 输出: false
获取 Set 的大小
你可以使用 size
属性获取 Set 中元素的数量:
console.log(mySet.size); // 输出 Set 的大小
遍历 Set
你可以使用 forEach
方法或者 for...of
循环遍历 Set:
// 使用 forEach 遍历
mySet.forEach(value => {
console.log(value);
});
// 使用 for...of 遍历
for (let item of mySet) {
console.log(item);
}
Set 提供了一种有效存储唯一值的方式,并且具有处理集合操作的方法。
parseInt
JavaScript的parseInt
函数是用于将字符串转换为整数的方法。它接受两个参数:要转换的字符串和可选的基数(进制)。
基本语法如下:
javascriptCopy Code
parseInt(string, radix);
string
:要转换为整数的字符串。radix
:可选参数,表示要使用的进制。默认是10进制。
parseInt
会从字符串的开头开始解析,直到遇到无法解析为数字的字符为止。它会忽略字符串前面的空格,直到找到第一个非空格字符为止。如果字符串以非数字字符开头,则会返回NaN(Not a Number)。
示例:
javascriptCopy Code
console.log(parseInt("123")); // 输出 123
console.log(parseInt("10", 2)); // 使用二进制解析,输出 2
console.log(parseInt("0xFF", 16)); // 使用十六进制解析,输出 255
console.log(parseInt("15px")); // 遇到非数字字符,输出 15
console.log(parseInt("hello")); // 字符串开头就是非数字字符,输出 NaN
需要注意的是,parseInt
在解析字符串时会自动忽略开头的零。因此,如果要解析的字符串以零开头,并且指定了进制,可能会导致意外的结果。例如:
javascriptCopy Code
console.log(parseInt("010")); // 输出 10,而不是 8
console.log(parseInt("010", 8)); // 使用八进制解析,输出 8
在ES5之后的JavaScript版本中,还引入了Number.parseInt
静态方法,它与parseInt
功能相同,但不需要通过全局对象来调用。使用方式如下:
javascriptCopy Code
console.log(Number.parseInt("123")); // 输出 123
总结起来,parseInt
是JavaScript中用于将字符串转换为整数的函数,可以指定进制参数进行不同进制的解析。