[Javascript] Highlights from IO18 Javascript new features

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{4})-(?<month>\d{2})-(?<day>\d{2})/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

posted @   Zhentiw  阅读(239)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2016-05-21 [PWA] 16. Clean IDB
2015-05-21 [AngularJS] angular-formly: Extending Types
点击右上角即可分享
微信分享提示