范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

33个非常实用的JavaScript一行代码,建议收藏

  最近在国外技术社区看到了一些关于一行代码的文章,感觉很有意思,就整理了一下来分享给大家,希望对你有所帮助~
  这些方法使用到了一些API,简化了操作,但是有些方法写一行属实不太优雅,所以这里主要还是学习API的使用技巧!一、日期处理1. 检查日期是否有效
  该方法用于检测给出的日期是否有效:const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());  isDateValid("December 17, 1995 03:24:00");  // true 复制代码2. 计算两个日期之间的间隔
  该方法用于计算两个日期之间的间隔时间:const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000)      dayDif(new Date("2021-11-3"), new Date("2022-2-1"))  // 90 复制代码
  距离过年还有90天~3. 查找日期位于一年中的第几天
  该方法用于检测给出的日期位于今年的第几天:const dayOfYear = (date) => Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);  dayOfYear(new Date());   // 307 复制代码
  2021年已经过去300多天了~4. 时间格式化
  该方法可以用于将时间转化为hour:minutes:seconds的格式:const timeFromDate = date => date.toTimeString().slice(0, 8);      timeFromDate(new Date(2021, 11, 2, 12, 30, 0));  // 12:30:00 timeFromDate(new Date());  // 返回当前时间 09:00:00 复制代码二、字符串处理1. 字符串首字母大写
  该方法用于将英文字符串的首字母大写处理:const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1)  capitalize("hello world")  // Hello world 复制代码2. 翻转字符串
  该方法用于将一个字符串进行翻转操作,返回翻转后的字符串:const reverse = str => str.split("").reverse().join("");  reverse("hello world");   // "dlrow olleh" 复制代码3. 随机字符串
  该方法用于生成一个随机的字符串:const randomString = () => Math.random().toString(36).slice(2);  randomString(); 复制代码4. 截断字符串
  该方法可以从指定长度处截断字符串:const truncateString = (string, length) => string.length < length ? string : `${string.slice(0, length - 3)}...`;  truncateString("Hi, I should be truncated because I am too loooong!", 36)   // "Hi, I should be truncated because..." 复制代码5. 去除字符串中的HTML
  该方法用于去除字符串中的HTML元素:const stripHtml = html => (new DOMParser().parseFromString(html, "text/html")).body.textContent || ""; 复制代码三、数组处理1. 从数组中移除重复项
  该方法用于移除数组中的重复项:const removeDuplicates = (arr) => [...new Set(arr)];  console.log(removeDuplicates([1, 2, 2, 3, 3, 4, 4, 5, 5, 6])); 复制代码2. 判断数组是否为空
  该方法用于判断一个数组是否为空数组,它将返回一个布尔值:const isNotEmpty = arr => Array.isArray(arr) && arr.length > 0;  isNotEmpty([1, 2, 3]);  // true 复制代码3. 合并两个数组
  可以使用下面两个方法来合并两个数组:const merge = (a, b) => a.concat(b);  const merge = (a, b) => [...a, ...b]; 复制代码四、数字操作1. 判断一个数是奇数还是偶数
  该方法用于判断一个数字是奇数还是偶数:const isEven = num => num % 2 === 0;  isEven(996);  复制代码2. 获得一组数的平均值const average = (...args) => args.reduce((a, b) => a + b) / args.length;  average(1, 2, 3, 4, 5);   // 3 复制代码3. 获取两个整数之间的随机整数
  该方法用于获取两个整数之间的随机整数const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);  random(1, 50); 复制代码4. 指定位数四舍五入
  该方法用于将一个数字按照指定位进行四舍五入:const round = (n, d) => Number(Math.round(n + "e" + d) + "e-" + d)  round(1.005, 2) //1.01 round(1.555, 2) //1.56 复制代码五、颜色操作1. 将RGB转化为十六机制
  该方法可以将一个RGB的颜色值转化为16进制值:const rgbToHex = (r, g, b) => "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);  rgbToHex(255, 255, 255);  // "#ffffff" 复制代码2. 获取随机十六进制颜色
  该方法用于获取一个随机的十六进制颜色值:const randomHex = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")}`;  randomHex(); 复制代码六、浏览器操作1. 复制内容到剪切板
  该方法使用 navigator.clipboard.writeText 来实现将文本复制到剪贴板:const copyToClipboard = (text) => navigator.clipboard.writeText(text);  copyToClipboard("Hello World"); 复制代码2. 清除所有cookie
  该方法可以通过使用 document.cookie 来访问 cookie 并清除存储在网页中的所有 cookie:const clearCookies = document.cookie.split(";").forEach(cookie => document.cookie = cookie.replace(/^ +/, "").replace(/=.*/, `=;expires=${new Date(0).toUTCString()};path=/`)); 复制代码3. 获取选中的文本
  该方法通过内置的 getSelection 属性获取用户选择的文本:const getSelectedText = () => window.getSelection().toString();  getSelectedText(); 复制代码4. 检测是否是黑暗模式
  该方法用于检测当前的环境是否是黑暗模式,它是一个布尔值:const isDarkMode = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches  console.log(isDarkMode) 复制代码5. 滚动到页面顶部
  该方法用于在页面中返回顶部:const goToTop = () => window.scrollTo(0, 0);  goToTop(); 复制代码6. 判断当前标签页是否激活
  该方法用于检测当前标签页是否已经激活:const isTabInView = () => !document.hidden;  复制代码7. 判断当前是否是苹果设备
  该方法用于检测当前的设备是否是苹果的设备:const isAppleDevice = () => /Mac|iPod|iPhone|iPad/.test(navigator.platform);  isAppleDevice(); 复制代码8. 是否滚动到页面底部
  该方法用于判断页面是否已经底部:const scrolledToBottom = () => document.documentElement.clientHeight + window.scrollY >= document.documentElement.scrollHeight; 复制代码9. 重定向到一个URL
  该方法用于重定向到一个新的URL:const redirect = url => location.href = url  redirect("https://www.google.com/") 复制代码10. 打开浏览器打印框
  该方法用于打开浏览器的打印框:const showPrintDialog = () => window.print() 复制代码七、其他操作1. 随机布尔值
  该方法可以返回一个随机的布尔值,使用Math.random()可以获得0-1的随机数,与0.5进行比较,就有一半的概率获得真值或者假值。const randomBoolean = () => Math.random() >= 0.5;  randomBoolean(); 复制代码2. 变量交换
  可以使用以下形式在不适用第三个变量的情况下,交换两个变量的值:[foo, bar] = [bar, foo]; 复制代码3. 获取变量的类型
  该方法用于获取一个变量的类型:const trueTypeOf = (obj) => Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();  trueTypeOf("");     // string trueTypeOf(0);      // number trueTypeOf();       // undefined trueTypeOf(null);   // null trueTypeOf({});     // object trueTypeOf([]);     // array trueTypeOf(0);      // number trueTypeOf(() => {});  // function 复制代码4. 华氏度和摄氏度之间的转化
  该方法用于摄氏度和华氏度之间的转化:const celsiusToFahrenheit = (celsius) => celsius * 9/5 + 32; const fahrenheitToCelsius = (fahrenheit) => (fahrenheit - 32) * 5/9;  celsiusToFahrenheit(15);    // 59 celsiusToFahrenheit(0);     // 32 celsiusToFahrenheit(-20);   // -4 fahrenheitToCelsius(59);    // 15 fahrenheitToCelsius(32);    // 0 复制代码5. 检测对象是否为空
  该方法用于检测一个JavaScript对象是否为空:const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object; 复制代码
  今天的文章就到这里,如果觉得有用就点个赞吧!
  作者:CUGGZ
  链接:https://juejin.cn/post/7025771605422768159

成都车展上市,冒险家推PHEV车型,纯电续航64km!为了紧跟时代潮流,目前很多品牌都推出了插电混合车型。在豪华品牌中,林肯汽车进入国内时间较晚,但这几年发展趋势很快,在即将开展的成都车展中,冒险家PHEV将会正式亮相并上市。对于喜欢坦克600官图发布,成都车展将亮相,配3。0T9AT!有一些车型,在正式上市前会显得神神秘秘,坦克600就是如此,之前只是公布了草图,根本看不出具体模样。不过最近坦克300公布了全新官方图片,主要是因为成都车展即将到来,坦克600会在锐程CC试驾1。5T自动炫锐型,7月卖出1125台实力如何?10万左右的价格,想要大空间以及运动性不错的外观并不是一件容易的事。在国产品牌中长安旗下锐程CC算是两者兼具的车型,厂商指导售价在9。4912。89万之间,配备1。5T高低功率引擎瑞虎7PLUS新车将亮相成都车展,配1。6T引擎三大屏!对于瑞虎7PLUS很多消费者已经等了许久,但一直没有正式上市,从目前消息来看,8月29号开幕的成都车展将会看到瑞虎7PLUS。并且9月初左右的时间,瑞虎7PLUS将会开启预售,对比极狐阿尔法S掀背设计近5米长,顶配用双电机百公里加速4。2秒!极狐汽车作为造车新势力之一,推出的第2款车型阿尔法S从定位上讲是一款中大型纯电动轿车,目前一共推出4款车型,补贴后售价在25。1934。49万之间。从续航能力角度来看,分为三个标准坦克新车更名坦克500,将在成都车展亮相,3。0T9AT成看点!在成都车展开展前,有一件大事件公布,作为坦克家族第二款车型,即将上市的坦克600名字改了,新车名并没有发生太大变化,只是从坦克600变成了坦克500。家族第一款车型,已经跟我们证明本田冠道实拍370TURBO豪华版,配大五座2。0T引擎实力如何?在合资中型SUV领域,本田冠道凭借不错的空间以及颜值,一直很受消费者欢迎。从定价上来看,是一款厂商指导售价2233。28万的车型,目前终端市场有一定优惠幅度,但不是特别高。作为一个技术解析北京现代伊兰特,相对于颜值动力才是看点!第七代伊兰特,凭借较高的颜值,上市后有着不错的表现。作为一款厂商指导售价9。9814。18万的车型,动力上分为两个标准,分别是1。5L自然吸气引擎以及1。4T涡轮增压引擎,今天重点智己L7天使轮车型开抢,售价40。88万配39英寸智慧屏造车新势力越来越多,智己汽车作为一个全新品牌,一开始就把目光聚焦到高端纯电动市场。目前智己L7正式亮相,并且开放了天使轮版本车型抢购,官方指导价格在40。88万,相信正式版在今年也张家人与武汉的故事及加油的来历张家人与武汉的故事及加油的来历我们现在天天喊中国加油,武汉加油,你知道加油的来由吗?清朝嘉庆年间,有个人叫张瑛,退职还乡。天天晚上,张瑛和仆人背着油篓子,走在街巷,看到哪家有书生点微信小程序实战004各种生命周期函数详解什么是生命周期指一个对象从创建到销毁的一系列过程,从实例创建到销毁期间伴随着各种各样的事件触发。比如Vue实例在被创建时要经过一系列的初始化过程中需要设置数据监听编译模板将实例挂载
人民日报连发两弹点评阿里事件,释放把资本关进笼子的信号?一天之内,人民日报旗下新媒体和人民日报评论接连发声,锐评阿里女员工被灌酒遭侵犯事件如果女员工爆料都确定为真,那么这已经不是阿里巴巴,这是四十大盗。人民日报旗下踏浪青年的第一波檄文已扫描iPhone所有照片,苹果自辩保护儿童引众怒本文经授权转载自新智元(IDAIera)原标扫描iPhone所有照片,苹果自辩保护儿童引众怒!6000多人联名抵制来源macrumors编辑yaxin,su新智元导读说好的用户隐私字节跳动面试官SpringBoot统一接口返回和全局异常处理怎么玩?现在大多数公司项目框架,基本都是属于前后端分离模式,这种模式会涉及到一个前后端对接问题,无论是对前端或者是后台服务,维护一套完善且规范的接口是非常有必要的,这样不仅能够提高对接效率快手2021年Q1财报内容VS广告电商,谁是一家之主?图片来源视觉中国文竞核又到财报季。B站腾讯网易前脚披露,快手(1024。HK)后脚在5月24日公布了2021年Q1财报。根据财报显示,2021年第一季度中,快手营收达170。19亿美法院解除小米中军方公司认定特斯拉在中国建立数据中心1特斯拉国产Model3和ModelY零部件国产化超90据国外媒体报道,特斯拉中国一直在努力让供应链本地化,这是因为供应链本地化有很多优势,比如,降低运输成本生产成本,缩短交付周期192号段发放在即中国广电5G渐近本报记者谭伦北京报道距离获得5G运营牌照近两年后,第四大通信运营商中国广电的5G服务终于呼之欲出。在5月17日举行的世界电信和信息社会日大会上,中国广播电视网络有限公司党委副书记总不能全听美国的!荷兰光刻机巨头警告停止出口中国将掌握技术随着中国经济的不断发展,美国十分担心中国赶超自己,因此一直对中国进行技术封锁。尤其是在半导体行业,更是进行围堵。今年拜登上台后,并没有减轻对中国的打压,还是一样对我国的半导体产业进贾跃亭为什么一定要到美国造车,在中国就不能造车吗?贾跃亭到美国已经半年有余,不管是FF公司的融资还是量产都没有新的消息,更是有媒体报道大量资产被抵押和转移,难道贾跃亭所谓全力投入另有深意?这里不得不进行一个猜测,贾跃亭极有可能正在监管出手刺破泡沫比特币频现瀑布行情比特币未能延续今年以来一路高歌猛进的牛市势头,从5月中旬开始,连续出现多次大幅下跌,在5月19日更是一度跌至单枚29000美元左右的低点,几乎等同于一夜回到年初。尽管在5月24日有首发999元起,RedmiNote10系列发布5月26日下午,RedmiNote10Pro和RedmiNote10正式发布。前者是天玑1100,首发起步价1499元。后者是天玑700,首发是999元起步。发布会主角是Redmi华为Mate20测评,三年前的华为Mate系列表现如何?20X的6128路过,正常使用,原始版本,没升级过。电池耐用,信号好,滚了几次楼梯,没坏。2018年入手的我买的mate20,664点,除了空间不够用,其他很流畅,觉得还能再用个两