服务器之家

服务器之家 > 正文

13 行 JavaScript 代码让你看起来像是高手

时间:2021-12-21 00:59     来源/作者:夜色镇歌

Javascript 可以做许多神奇的事情,也有很多东西需要学习,今天我们介绍几个短小精悍的代码段。

13 行 JavaScript 代码让你看起来像是高手

获取随机布尔值(True/False)

使用 Math.random() 会返回 0 到 1 的随机数,之后判断它是否大于 0.5,将会得到一个 50% 概率为 True 或 False 的值

  1. const randomBoolean = () => Math.random() >= 0.5;
  2. console.log(randomBoolean());

判断一个日期是否是工作日

判断给定的日期是否是工作日

  1. const isWeekday = (date) => date.getDay() % 6 !== 0;
  2. console.log(isWeekday(new Date(2021, 0, 11)));
  3. // Result: true (周一)
  4. console.log(isWeekday(new Date(2021, 0, 10)));
  5. // Result: false (周日)

反转字符串

有许多反转字符串的方法,这里使用一种最简单的,使用了 split(),reverse() 和 join()

  1. const reverse = str => str.split('').reverse().join('');
  2. reverse('hello world');
  3. // Result: 'dlrow olleh'

判断当前标签页是否为可视状态

浏览器可以打开很多标签页,下面 的代码段就是判断当前标签页是否是激活的标签页

  1. const isBrowserTabInView = () => document.hidden;
  2. isBrowserTabInView();

判断数字为奇数或者偶数

取模运算符 % 可以很好地完成这个任务

  1. const isEven = num => num % 2 === 0;
  2. console.log(isEven(2));
  3. // Result: true
  4. console.log(isEven(3));
  5. // Result: false

从 Date 对象中获取时间

使用 Date 对象的 .toTimeString() 方法转换为时间字符串,之后截取字符串即可

  1. const timeFromDate = date => date.toTimeString().slice(0, 8);
  2. console.log(timeFromDate(new Date(2021, 0, 10, 17, 30, 0)));
  3. // Result: "17:30:00"
  4. console.log(timeFromDate(new Date()));
  5. // Result: 返回当前时间

保留指定的小数位

  1. const toFixed = (n, fixed) => ~~(Math.pow(10, fixed) * n) / Math.pow(10, fixed);
  2. // Examples
  3. toFixed(25.198726354, 1); // 25.1
  4. toFixed(25.198726354, 2); // 25.19
  5. toFixed(25.198726354, 3); // 25.198
  6. toFixed(25.198726354, 4); // 25.1987
  7. toFixed(25.198726354, 5); // 25.19872
  8. toFixed(25.198726354, 6); // 25.198726

检查指定元素是否处于聚焦状态

可以使用 document.activeElement 来判断元素是否处于聚焦状态

  1. const elementIsInFocus = (el) => (el === document.activeElement);
  2. elementIsInFocus(anyElement)
  3. // Result: 如果处于焦点状态会返回 True 否则返回 False

检查当前用户是否支持触摸事件

  1. const touchSupported = () => {
  2. ('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch);
  3. }
  4. console.log(touchSupported());
  5. // Result: 如果支持触摸事件会返回 True 否则返回 False

检查当前用户是否是苹果设备

可以使用 navigator.platform 判断当前用户是否是苹果设备

  1. const isAppleDevice = /Mac|iPod|iPhone|iPad/.test(navigator.platform);
  2. console.log(isAppleDevice);
  3. // Result: 是苹果设备会返回 True

滚动至页面顶部

window.scrollTo() 会滚动至指定的坐标,如果设置坐标为(0,0),就会回到页面顶部

  1. const goToTop = () => window.scrollTo(0, 0);
  2. goToTop();
  3. // Result: 将会滚动至顶部

获取所有参数的平均值

可以使用 reduce() 函数来计算所有参数的平均值

  1. const average = (...args) => args.reduce((a, b) => a + b) / args.length;
  2. average(1, 2, 3, 4);
  3. // Result: 2.5

转换华氏/摄氏

再也不怕处理温度单位了,下面两个函数是两个温度单位的相互转换。

  1. const celsiusToFahrenheit = (celsius) => celsius * 9/5 + 32;
  2. const fahrenheitToCelsius = (fahrenheit) => (fahrenheit - 32) * 5/9;
  3. // Examples
  4. celsiusToFahrenheit(15); // 59
  5. celsiusToFahrenheit(0); // 32
  6. celsiusToFahrenheit(-20); // -4
  7. fahrenheitToCelsius(59); // 15
  8. fahrenheitToCelsius(32); // 0

原文链接:https://www.toutiao.com/a7043064329184346661/

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部