OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

ourjs

让Select选择框可编辑可输入可自动补全可下拉选择

Html5 by ourjs 1503025980370
Datalist是HTML5的原生标签,用于向input提供下拉和自动提示选项,支持输入和下拉选择两种方式。但是目前IE10及其以下浏览器并不支持, 并且IE11无法触发input和change事件。如果仅支持Chrome或Eletron桌面的应用则可以放心使用。
好处不需要引用额外的JS/CSS文件支持,示例:

<input list="cookies" placeholder="Type of Cookie"/>

<datalist id="cookies">
    <option value="Chocolate Chip"/>
    <option value="Peanut Butter"/>
    <option value="Raisin Oatmeal"/>
</datalist>

Bootstrap 4.0 Beta发布,不支持IE8/IE9,更新特性一览

分享 by ourjs 1502980161896
Bootstrap 4.0新特性一览:
  • 从 Less 迁移到 Sass。因为 Libsass Bootstrap编绎得更快。
  • Flexbox和一个改进的Grid网格系统。几乎完全迁移到了flexbox。
  • 添加 cards 并移除 wells, thumbnails, panels。Card是一个全新的 Boostrap 组件。
  • Reboot: 一个normalize.css新的分支。
  • 全新的定制选项。如果要禁用圆角?只需更改一个变量并重新编译即可。
  • 放弃IE8和IE9的支持。
  • 用ES6重写所有的JavaScript插件。
  • 参考 Popper.js 改进自动提示插件,如tooltips, popovers, and dropdowns。
  • 使用Markdown重写使用帮助文档。
  • 新的build工具:使用 npm 脚本代替 Grunt。
  • 还有更多!自定义表单控件,新的 carousel,导航栏,HTML5的表单验证方式等等。

正则中test、exec、match的简单区别,以及括号的用法

JavaScript by ourjs 1502528052409

1、当正则表达式无子表达式,并且定义为非全局匹配时,exec和match执行的结果是一样,均返回第一个匹配的字符串内容;

2、当正则表达式无子表达式,并且定义为全局匹配时,exec和match执行,做存在多处匹配内容,则match返回的是多个元素数组;

3、当正则表达式有子表示时,并且定义为非全局匹配,exec和match执行的结果是一样如上边的第5种情况;

4、当正则表达式有子表示时,并且定义为全局匹配,exec和match执行的结果不一样,此时match将忽略子表达式,只查找全匹配正则表达式并返回所有内容,如上第6种情况;

也就说,exec与全局是否定义无关系,而match则于全局相关联,当定义为非全局,两者执行结果相同

好与坏的程序员

分享 by ourjs 1501467978523

有感于知乎上的一篇关于程序员的讨论。让我突然之间心有戚戚然的感觉。最近一段时间有点江郎才尽的感觉,写不了大的主题,就写点小东西吧。

我们从知乎上面引用的这段小故事开始:

魏文王问扁鹊家里三兄弟谁的医术最好。扁鹊回答说大哥最好,二哥次之,他自己最差。魏文王疑惑了,又问道,为什么扁鹊最有名呢?扁鹊回答说因为大哥治病的时候人没病就防止了,所以毫无名气。二哥呢,病刚起来的时候,就给治好了,大家以为只能治小病。而自己呢,能耐不够,非要到了病的很厉害了才能看出来,治起来的动静就大了。好在还不至于庸医能治好,结果大家看到每次治的都是顽疾,反而出名了。

2017 开发者报告:Java最流行的语言,JavaScript最常用的语言,Go最有前途的语言

分享 by ourjs 1500252304886

JetBrains 在 2016 年底至 2017 年初期间,对 5000 多名开发人员进行了调查,以研究最新的开发生态。

最近,调查结果已公布:Java 被评为最流行的语言,JavaScript 是最常用的语言,而 Go 被认为是最有前途的语言。



用JavaScript获取当月第一天和最后一天

JavaScript by ourjs 1496734243458

获取当月的第一天和当月的最后一天其实还挺麻烦的,因为每个月天数可能不一样。不过借助 Date 对象则很容易实现:

当月第一天和最后一天

var date = new Date(), y = date.getFullYear(), m = date.getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);

Node.JSv8的5个新特性:支持string padding与async/await和object参数省略

Node.JS by ourjs 1496650697334

async/await 没有第三方依赖,写法更直观,再也不用写回调嵌套了:

const fetch = require('node-fetch');

async function getUser(username) {
  const res = await fetch(`https://api.github.com/users/${username}`);
  const json = await res.json();
  return json;
}

async function start() {
  const user = await getUser('github');
  console.log(user); // prints out info about ‘github’ user on GitHub
}

start();

比特币的技术缺陷:区块链信息越来越大怎么办?

分享 by ourjs 1495686750694
因为分布式存储和验证机制的设计,比特币需要存储历史交易来验证交易合法性,但随着交易量越来越大,区块链也越来越大,扩容已经不能从根本上解决这个问题,比特币会不会因技术问题崩盘?以下是转自知乎:

区块链的一个很大问题在于其中会包含所有的历史交易,这样下去整个链的信息会越来越大,我昨天下载区块链的完整信息已经要大于20G了。这样下去肯定不是个办法啊,这个问题有没有好的解决办法?如果不能解决的话会成为区块链协议的最大问题。

1,交易数据量越来越大,安装一个比特币客户端,光钱包数据就要同步好几天,以后会越来越大。
2,交易确认速度太慢,交易处理能力也很弱,每秒钟能处理的交易数无法满足大规模的使用。
3,比特币自身强调分散和去中心化,但是目前越来越依赖中心化

数年来,随着比特币的蓬勃发展,比特币交易数量越来越多,而单个区块体积有1MB的最大值限制,因此区块空余空间显得越来越小。如图所示,区块体积中位数在2015年里得到了翻番,从1月份的292KB快速增长至12月份的749KB。

命令行的艺术:linux bash命令大全详解

分享 by ourjs 1495522840801
熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。

这篇文章是许多作者和译者共同的成果。 这里的部分内容 首次 出现 于 Quora, 但已经迁移到了 Github,并由众多高手做出了许多改进。 如果你在本文中发现了错误或者存在可以改善的地方,请贡献你的一份力量

Node.JS通过读取PATH环境变量获取可执行文件的安装地址

分享 by ourjs 1494577596745
有暑假我们可能需要获取某些可执行程序的安装地址,比如说git,node.js等。

此时我们可以直接读取环境变量来获取。

在node.js中可以通过 process.env来获取所有环境变量,如:

console.log(process.env)


分享到