JSON Modules, JavaScript modül sistemine JSON dosyalarını doğrudan içe aktarma (import) desteği ekler. Bu sayede, JSON dosyaları bir modül olarak kullanılabilir ve içerdikleri verilere doğrudan erişilebilir. Bu özellik, özellikle yapılandırma dosyaları, statik veri setleri veya API yanıtları gibi JSON verilerini kullanırken büyük kolaylık sağlar.
Sync Iterator Helpers, senkron iteratörlere yeni metodlar ekleyerek, iterasyon işlemlerini daha kolay ve okunabilir hale getirir. Bu metodlar, map
, filter
, reduce
, take
, drop
gibi işlemleri iteratörler üzerinde uygulama imkanı sunar. Bu sayede, iterasyon işlemleri daha fonksiyonel bir şekilde gerçekleştirilebilir.
Promise.try
, bir fonksiyonu hemen bir Promise olarak çalıştırmak için kullanılan bir yöntemdir. Bu, özellikle senkron ve asenkron kodlar arasında tutarlı hata yönetimi sağlamak için kullanışlıdır. Geleneksel olarak, bir fonksiyonun senkron veya asenkron olup olmadığını bilmiyorsanız, hata yönetimi karmaşık hale gelebilir. Promise.try
, bu sorunu ortadan kaldırır.
Makale Detaylı Anlatımı ve Örnek Kullanımı:
Bu öneri, JavaScript'te 16-bit kayan nokta sayılarını (Float16) desteklemek için yeni bir Float16Array
türü, DataView
üzerinde Float16 desteği ve Math.f16round
metodu ekler. Bu özellikler, özellikle bellek kullanımının kritik olduğu uygulamalarda büyük avantajlar sağlar.
Float16Array
, 16-bit kayan nokta sayılarını depolamak için kullanılan yeni bir türdür. Bu, Float32Array
ve Float64Array
gibi mevcut türlere benzer, ancak daha az bellek kullanır.
const float16Array = new Float16Array([1.5, 2.3, 3.7]);
RegExp.escape
, TC39 tarafından önerilen bir özelliktir ve düzenli ifadelerde (regex) özel karakterlerin kaçışını kolaylaştırmayı amaçlar. Bu özellik, bir dizedeki özel karakterleri otomatik olarak kaçış karakteri (\
) ile önceler, böylece bu dizeyi bir regex ifadesinde güvenle kullanabilirsiniz.
- Amaç: Düzenli ifadelerde kullanılan özel karakterlerin (örneğin
[
,]
,(
,)
,*
,+
,?
,.
,\
,^
,$
,|
,{
,}
) otomatik olarak kaçışını sağlamak. - Kullanım Senaryoları: Kullanıcı girdilerini regex ifadelerinde kullanırken güvenliği artırmak, dinamik regex oluştururken hataları önlemek.
- Durum: Şu anda TC39'nin öneri aşamasında (proposal stage) ve henüz resmi olarak ECMAScript standardına dahil edilmemiş.
Aşağıda RegExp.escape
özelliğinin nasıl kullanılabileceğine dair bir örnek bulunmaktadır:
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>MediaSource Demo</title> | |
</head> | |
<body> | |
<script> | |
const video = document.createElement("video"); | |
document.body.append(video); | |
video.autoplay = true; |
Özellik | Runtime | onreadystatechange | DOMContentLoaded | onload | rAF |
---|---|---|---|---|---|
Inline/Src | loading | interactive/complete | interactive | complete | complete |
Async | interactive | complete | - | complete | interactive / complete (yavaş bağlantı) |
Defer | interactive | complete | interactive | complete | complete |
Dinamik Ekleme (src/async/defer) | interactive | complete | - | complete | interactive / complete (yavaş bağlantı) |
Inline | interactive | - | interactive | complete | complete |
Async Script:
// mqtt örneği | |
// mqtt paketini dahil edin | |
const mqtt = require('mqtt'); | |
// Broker'a bağlanın | |
const client = mqtt.connect('mqtt://test.mosquitto.org'); // Örnek olarak, test.mosquitto.org üzerindeki ücretsiz bir MQTT broker kullanılabilir | |
// Bağlandığında gerçekleşecek olayı dinleyin | |
client.on('connect', () => { |
class AsyncLock { | |
private _lock = new Int32Array(new SharedArrayBuffer(4)) // SharedArrayBuffer for multi-threading, 4 bytes for 32-bit integer | |
static INDEX = 0 | |
static UNLOCKED = 0 | |
static LOCKED = 1 | |
lock() { | |
while (true) { | |
console.log("lock") |
function createExpDate(year, month) { | |
const expDate = (year - 2000) * 12 + month - 1; | |
} | |
function createRndNumber(min, max) { | |
return Math.floor(Math.random() * (max - min + 1)) + min; | |
} | |
function CompileString(str) { | |
result = new Uint32Array(1); |