第十八天前端浅记录

118 阅读4分钟

今天一上来,就做了一些关于之前数组方法的练习,在老师提的几个小需求之下,用学过的方法解决问题。但是很无奈,有绝大部分方法还是想不起来的,练习的太少导致用的不熟练,希望在以后操纵数组、对象的时候,多想一想这种方法,没准可以减少我们很多时间以及优化我们的代码量。今天开始讲数字有关的方法了,我们继续。

数字相关知识

  • parseIne && parseFloat
console.log(parseInt(3.5));
console.log(parseFloat(3.5));

返回结果

image.png 有C语言基础的兄弟们应该不难理解这个,int就是取整,Float取小数。

  • isNaN
console.log(isNaN(20));
console.log(isNaN(NaN));
console.log(isNaN(+'ss'));
console.log(isNaN(undefined));

返回结果

image.png

他的作用判断所需要检查的值是否为数字,不是就返回true。NaN也会返回true,但NaN的类型为number。

  • isFinite
console.log(isFinite(10));
console.log(isFinite('20'));
console.log(Number.isFinite('20'));
console.log(isFinite(NaN));
console.log(isFinite(23 / 0));

返回结果

image.png

他的作用是判断所检查的值是否为数字,是返回true。但是值得注意的一点,全局isFinite是默认把检测住转换为Number类型在判断,而Number.isFinite是直接判断。

  • Number.isInteger
console.log(Number.isInteger(20));
console.log(Number.isInteger(20.1));

返回结果

image.png

他的作用是判断缩减插值是否为整数,是返回true。注意isInteger没有全局的,必须要在number之后使用。

  • sqrt && max && min && PI
console.log(Math.sqrt(25));
console.log(Math.max(2, 5, 9, 12, 3));
console.log(Math.min(2, 5, 9, 12, 3));
console.log(Math.PI);

返回结果

image.png

有点犯懒了,也确实这小点太碎了。挨着解释。sqrt是开方。max和min就是找最大值和最小值。PI就是圆周率Π。

  • trunc && random
console.log(Math.random());
console.log(Math.trunc(Math.random() * 6) + 1);

返回结果

image.png

trunc就是取整,删除小数部分。random就是0-1之间的随机数。第二个例子是1-6之间随机数(骰子)。

  • round && ceil && floor
console.log(Math.round(23.3));
console.log(Math.round(23.9));
console.log(Math.ceil(23.3));
console.log(Math.ceil(23.9));
console.log(Math.floor(23.3));
console.log(Math.floor(23.9));

返回结果

image.png

round是四舍五入,ceil是直接五入,floor是直接四舍,和trunc很像。但是对于负数floor和trunc就有区别了。

  • toFixed
console.log((2.7).toFixed(0));
console.log((2.7).toFixed(3));
console.log(+(2.7).toFixed(3));

返货结果

image.png

他的作用是控制保留几位小数,默认四舍五入,需要注意他返回的是字符串,如果需要数字得更改数据类型。

  • % 取余符号
const aaa = a => a % 2 === 0;
console.log(aaa(23));
console.log(aaa(4));
console.log(aaa(872));

返回结果

image.png

使用它最广泛的应该就在判别奇数偶数上了,当然他的作用肯定不止于此。

  • _
console.log(287_460_000_000);
console.log(Number('230000'));
console.log(Number('230_000'));

返回结果

image.png

这是在ES2021中新添加的数字分隔符,可以让我们更清晰的看到一个数字,但是在类型转换时使用会使数字转换为NaN,并且此分隔符不可以在一个数首尾,小数点前后使用,会报错。

BigInt

七大类型之一,在ES2020新加入的。

console.log(2 ** 53 - 1);
console.log(Number.MAX_SAFE_INTEGER);

console.log(2341545672547247541543567n);
console.log(110000n + 11n);
console.log(1000n * 17777777n);
console.log((11n / 3n));
console.log(124874951364907491467n + 'is REALLY big!!!');

返回结果

image.png

在js中,原来最大的数字就是前两个,自从BigInt加入之后,我们只要在数字后面加n就可以获取到任意数字了,他们可以像正常数字一样进行加减法,乘法,除法,但是触发的时候会自动舍去小数点后面的值。此类型下的数字不可以使用Math方法,不然会报错,但是他们可以进行字符串的拼接。要想用此类型值与number类型值做运算时必须进行类型转换。

Date()一些方法

常见的表示时间的方法

const future = new Date()
console.log(future);
console.log(future.getFullYear());
console.log(future.getMonth());
console.log(future.getDate());
console.log(future.getDay());
console.log(future.getHours());
console.log(future.getMinutes());
console.log(future.getSeconds());
console.log(future.toISOString());
console.log(future.getTime());
console.log(Date.now());

返回结果

image.png

这做一些简单解释吧,先获取了一下时间,getFullYear就是获取当年年份,getMonth就是获取当年月份,getDate就是获取当前日期,getDay是获取当前星期几,getHours是获取当前的小时,getMinutes获取当前分钟,getSeconds获取当前秒,toISOString是ISO表示时间格式,最后两个都是获取当前时间戳的方法。

最后老师讲了一下定时器的用法,setTimeout()只执行一次,setInterval()循环执行,也不是很难而且不好演示,用的时候百度一下,用两次就熟了。好了,今就到这了,加油。