[Javascript] Highlights from IO18 Javascript new features
JavaScript from New Features
2023-09-14 08:59:17 时间
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 -->
相关文章
- Javascript之旅——第四站:parseInt中要注意的坑
- 【JavaScript】underscore
- [Javascript] Avoiding Mutations in JavaScript with Immutable Data Structures
- [WASM] Access WebAssembly Memory Directly from JavaScript
- [Javascript] bukld 'SQL' like object tree
- [Javascript] Decorators in JavaScript
- [Javascript] Proper use of console.assert in JavaScript
- [Javascript] Understanding the difference between .prototype and .__proto__ in JavaScript
- [Javascript] Avoiding Mutations in JavaScript with Immutable Data Structures
- [Javascript] Use a Pure RNG with the State ADT to Select an Element from State
- [Rust] Pass a JavaScript Function to WebAssembly and Invoke it from Rust
- [Javascript Crocks] Recover from a Nothing with the `alt` method
- [Javascript] Creating an Immutable Object Graph with Immutable.js Map()
- javascript面向对象之Javascript 继承
- 你真的会用ABAP, Java和JavaScript里的constructor么?
- 快速排序(Quicksort)的Javascript实现
- 强类型 JavaScript 的解决方案
- Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制
- 接入 百度地图(web开发) JavaScript API
- 【 华为OD机试 2023】 微服务的集成测试(C++ Java JavaScript Python)
- chromium-embedded-how-to-execute-a-javascript-callback-from-c
- web前端框架Javascript开发基础之JavaScript作用域