33个非常实用的JavaScript一行代码

一、日期处理

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
复制代码
阅读全文 »

判断是否为移动端浏览器

const flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
if(flag){
    // 移动端
} else {
    // PC端
}
阅读全文 »

多种数组去重性能对比 有更新!

测试模板

// 创建一个 1 ~ 10w 的数组,Array.from为ES6语法
let arr1 = Array.from(new Array(1000000), (x, index) => { 
  return index
})

let arr2 = Array.from(new Array(500000), (x, index) => {
  return index + index
})

let start = new Date().getTime()
console.log('开始数组去重')

// 数组去重
function distinct(a, b) {
  let arr = a.concat(b);
  // 去重方法
}



console.log('去重后的长度', distinct(arr1, arr2).length)
let end = new Date().getTime()
console.log('耗时', end - start + 'ms')
阅读全文 »

CentOS 7下安装JDK1.8

CentOS 7下目前默认是jdk1.6和1.7。若需要更高版本的1.8,我们就需要一点额外的手段了。 首先,我们需要从这个页面下个最新版本的jdk. Oracle提供rpm包和tar.gz包.为了省事,直接下载个rpm包完事.

若远程直接用wget下载,有时候有一点问题,需要加点参数来帮忙.参考此处.

阅读全文 »

npm package.json属性详解

概述

package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象。其中很多属性可以通过npm-config来生成

name

package.json中最重要的属性是nameversion两个属性,这两个属性是必须要有的,否则模块就无法被安装,这两个属性一起形成了一个npm模块的唯一标识符。模块中内容变更的同时,模块版本也应该一起变化。
name属性就是你的模块名称,下面是一些命名规则:

  • name必须小于等于214个字节,包括前缀名称在内(如 xxx/xxxmodule)。

  • name不能以"_"或"."开头

  • 不能含有大写字母

  • name会成为url的一部分,不能含有url非法字符

    下面是官网文档的一些建议:

  • 不要使用和node核心模块一样的名称

  • name中不要含有"js"和"node"。 It's assumed that it's js, since you're writing a package.json file, and you can specify the engine using the "engines" field. (See below.)

  • name属性会成为模块url、命令行中的一个参数或者一个文件夹名称,任何非url安全的字符在name中都不能使用,也不能以"_"或"."开头

  • name属性也许会被写在require()的参数中,所以最好取个简短而语义化的值。

  • 创建一个模块前可以先到后边的网址查查name是否已经被占用. https://www.npmjs.com/

阅读全文 »

CentOS7编译安装Git 有更新!

环境

系统硬件:CPU : 2 * 4核,内存 2G
系统版本:CentOS-7.2.1511 Core

安装步骤

1.显示服务器版本

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) 
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux```

2.安装git

2.1 下载git-2.11.0.tar.gz

[root@localhost ~]# cd /usr/local/src
[root@localhost ~]# wget https://www.kernel.org/pub/software/scm/git/git-2.11.0.tar.gz
阅读全文 »

Oracle使用EXPDP和IMPDP数据泵进行导出导入的方法

使用expdp和impdp时应该注重的事项:

  1. exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
  2. expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
  3. imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
  4. 对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。
阅读全文 »

npm常用命令 有更新!

npm是跟随node一起安装的包(模块)管理器。常见的使用场景有以下几种:

  • 允许用户从npm服务器下载别人编写的第三方包到本地使用。
  • 允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。
阅读全文 »

世界,你好!

Solo 博客系统已经初始化完毕,可在管理后台 - 工具 - 偏好设定中调整更多细节设置。如果需要导入已有博客文章,请参考文档 Solo 支持 Hexo/Jekyll 数据导入

对了,出于安全考虑请尽快完成如下操作:

  1. 登录链滴社区后,在个人设置 - B3 中更新 B3 Key
  2. 在 Solo 管理后台 - 工具 - 用户管理中也进行同样的 B3 Key 更新

另外,如果你需要开启评论系统,请参考 Solo 集成 Gitalk 评论系统

最后,如果你觉得 Solo 很赞的话,请到项目主页 Watch、Star、Fork 三连 😍

阅读全文 »