Latest Javascript features, not supported by all broswers, but can use with babel.

# try-catch-finally, Promise finally:

async function fetchAndDisplay({url, element}) {

    showLoadingSpinner();
try {
const response = await fetch(url);
const text = await response.text();
element.textContent = text;
} catch(error) {
element.textContent = error.message;
} finally {
hideLoadingSpinner();
}
}
function getStarsNumber(username, reponame) {
startLoadingAnimation(); return fetch(`https://api.github.com/repos/${username}/${reponame}`)
.then(res => res.json())
.then(data => data.stargazers_count)
.catch(() => `Couldn't get the stars number`)
.finally(stopLoadingAnimation);
}

# Regex:

1. Lookbehind:

// Positive lookbehind:
const partten = /(?<=\$)\d+/u; //looking for any number after $
const res = pattern.exec('$42');
// res[0] === '42' // Negative lookbehind:
const pattern = /(?>!\$)\d+/u; // looking for any number which is not after $
const res = pattern.exec('£42');
// res[0] === '42'

2. Lookahead:

// Positive lookahead:
const pattern = /\d+(?= dollars)/u; // looking for any number before dollars
const res = pattern.exec('42 dollars');
// res[0] === '42' // Negative lookahead:
const pattern = /\d+(?! dollars)/u; // looking for any number which is not before dollars
const res = pattern.exec('42 rupees');
// res[0] === '42'

3. Named group catch:

const pattern = /(?<year>\d{})-(?<month>\d{})-(?<day>\d{})/u;
const res = pattern.exec('2018-05-09');; // res.group.year === '2018'
// res.group.month === '05'
// res.group.day === '09'

4. Find whole words with line break:

using: 's', pretty much you can add 'us' to all regex.

# Javascript module:

<link rel = "modulepreload" href="lib.mjs">  <!-- preload module -->
<link rel = "modulepreload" href="main.mjs">
<script type="module" src="main.mjs"></script> <!-- javascript module file-->
<script nomodule src="fallback.js"></script> <!-- fallback to normal js file -->

Talk

[Javascript] Highlights from IO18 Javascript new features的更多相关文章

  1. 【JavaScript】javascript中伪协议(javascript:)使用探讨

    javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行. 比如下面这个死链接: <a href="javasc ...

  2. javascript实用技巧、javascript高级技巧

    字号+作者:H5之家 来源:H5之家 2016-10-31 11:00 我要评论( ) 三零网提供网络编程. JavaScript 的技术文章javascript实用技巧.javascript高级技巧 ...

  3. Javascript学习笔记3 Javascript与BOM简介

    什么是BOM BOM是browser object model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象 ...

  4. Javascript学习笔记1 javascript的特点

    ..对于网页而言,Javascript无处不在,对于英语不好的人它简直是噩梦般的存在,但形式所逼,今天开始着手学习!希望自己能坚持下去.从什么地方着手,我的目标是从大处着眼,从应用着眼,不抠细节,反正 ...

  5. javascript:void(0)和javascript:;的用法

    一.JavaScript:void(0) 我们经常会使用到 javascript:void(0) 这样的代码,那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢 ...

  6. JavaScript中伪协议 javascript:研究

    将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中.这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的 ...

  7. 如何选择Javascript模板引擎(javascript template engine)?

    译者 jjfat 日期:2012-9-17  来源: GBin1.com 随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下: ...

  8. JavaScript学习笔记(4)——JavaScript语法之变量

    一.变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume). 变量必须以字母开头 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做 ...

  9. Javascript:再论Javascript的单线程机制 之 DOM渲染时机

    Javascript:再论Javascript的单线程机制 之 DOM渲染时机 背景 Javascript是单线程事件驱动的,所有能看到的Javascript代码都是在一个线程执行,定时器回调和AJA ...

随机推荐

  1. Coursera Algorithms week1 算法分析 练习测验: Egg drop 扔鸡蛋问题

    题目原文: Suppose that you have an n-story building (with floors 1 through n) and plenty of eggs. An egg ...

  2. js仿新浪游戏频道导航条

    js仿新浪游戏频道导航条 在线演示本地下载

  3. MTK刷机工具Flash_Tool部分4032错误解决办法

    MTK刷机工具Flash_Tool部分4032错误解决办法 先说明一点,这个办法不是万能的,我测试解决了以下两种情况下的4032: 1.本来正常的开发板,因为一次刷机失败后就一直变4032了 2.新开 ...

  4. JavaScript中赋值运算符的使用

    JavaScript中的赋值运算可以分为简单赋值运算和复合赋值运算.简单赋值运算是将赋值运算符(=)右边表达式的值保存到左边的变量中:而复合赋值运算混合了其他操作(例如算术运算操作)和赋值操作.例如: ...

  5. KVO的使用及底层实现

    1.概念 KVO(Key-Value-Observer)也就是观察者模式,是苹果提供的一套事件通知机制.允许对象监听另一个对象特定属性的改变,并在改变时接收到事件,一般继承自NSObject的对象都默 ...

  6. sql server like 在将值转换成数据类型int失败

    select * from table where title like '%'?'%'; 采用? 传参会报错:sql server like 在将值转换成数据类型int失败 select * fro ...

  7. windows下安装Python-Whl文件

    原文链接:http://blog.sciencenet.cn/home.php?mod=space&uid=1181151&do=blog&id=865515 Note1. 整 ...

  8. DOCKER - J2EE中容器:WEB容器、EJB容器

    转自:http://www.voidcn.com/article/p-yizkqdxp-zg.html

  9. anaconda安装的TensorFlow版本没有model这个模块

    一.采用git bash来安装,确认已经安装了git 二.手动找到TensorFlow的模块文件夹地址,若不知道,输入以下两行代码: import tensorflow as tf tf.__path ...

  10. eas之EAS手工打包及快速部署工具

    EAS手工打包及快速部署工具:jar包的命名是项目名就好了.   1. 在eas的工作空间下:E:\Easworkspace\Project_0 有classes和deployed_metas这两个文 ...