日別アーカイブ: 2020/12/06

GNOME 3.38 Gjs

すっかり遅くなってしまったけど、GNOME 3.38 の変更点。
筆者に関係ありそうなのは Gjs だけだな。

開発者、システム管理者向けの新規事項

String.replaceAll() なんかはメソッド名で別るんだけーがさぁ。
?? と ?. オペレーターの追加、とあるけど説明無し、何だよコレ。
「 javascript nullish check 」で検索。

JavaScriptのOptional ChainingとNullish Coalescing Operatorでnullやundefinedと戦う

#!/usr/bin/gjs
 
//const p = console?.log ?? print;  // Error
const p = this.console?.log ?? print;
p("SUZUKIS Motorcycle is Cool!");

Gjs には console オブジェクトが無い、ということで単純にやってみた。
オブジェクトを直接 (undefined|null) かどうかは調べられないのね。
プロパティが (undefined|null) かどうかのチェックということね。
グローバルオブジェクトはルートの this から辿れる、いやこんな使い方普通はしない。

#!/usr/bin/gjs

if (typeof console === 'undefined')
    print('print');
else
    console.log('console');

undefined だけなら昔ながらの方法があるし、筆者も使っていた。
null かどうかも調べたい時に or 演算する手間が省けるようです。
というかコレ ES2020 の新規機能ってことみたい。

JavaScriptの次の仕様ES2020で追加されることが決定した新機能まとめ – ICS MEDIA

これ以外の ES2020 も使えるかテスト。
import 関数は使えない。
Promise はエラー、よくわからない。
matchAll は動く、Gjs では詳細は出力されないけど。
globalThis は Gjs では関係ない、てか this でよくね?
BigInt は GNOME 3.36 で既に対応していた。

ということで、今日の木曽川。

tsugumi

ツグミ、でかいスズメじゃないよ冬しかいないよ。

kogera

コゲラ、この可愛らしさでキツツキってのがまた。

enaga

エナガ、シジュウカラやメジロと混群していた。

今日はカメラを持った人を結構見た、巨大な白レンズも何人か。
けれど皆カモばかり撮っていた、小鳥も沢山いるのにもったいない。
てか爺さんばかり、なんか道の駅のバイク置き場カヨって感じ。
若い人も電車やコスプレばかりじゃなく小鳥も撮ろうよ。