2021-10-01から1ヶ月間の記事一覧

Object.assign 活用

Object のマージ const ab = { a: 1, b: 2 } const cd = { c: 3, d: 4 } Object.assign(ab, cd) // {a:1,b:2,c:3,d:4} ab // {a:1,b:2,c:3,d:4} 第一引数にあたえた変数に、後続の引数の内容がマージされるミュータブルな処理 変更を避けるには空のオブジェ…

TypeScript ループ内でオブジェクトのプロパティに変数を使ってアクセスしたい場合

CSSをtsで直書きしようとした際に問題発生。 スタイル指定をオブジェクトにしてループまわし、 要素.style[prop] でアクセスしようとしたが、以下エラー。 インデックス式が型 'number' ではないため、要素に 'any' 型が暗黙的に指定されます。 propに型アサ…

絵文字を含む文字列の分割

テキストを一文字ずつ配列にいれて操作する処理をつくっていたら、 "⛄".length // 5 JSON.stringify("⛄".split('')) // '["\ud83d","\udc7b","⛄","\ud83e","\udd69"]' まじか 3文字にならない? 絵文字を含む場合に予期せぬ挙動になることに気づいた Array.f…

変数の再代入はなぜ避けたほうが良いのか、ようやくわかるようになってきた

2020年からjsを書く機会が急増して、これまでいかに初歩的な組み方しかしてこなかったか知った。 2020年の春ごろまではPromiseの使い方も知らなかったし、jQueryなしで書くのはハードル高いと思っていたし…。 人のコード見て顧みる 自分以上に経験少ない方の…

TypeScript HTML要素取得時の型引数指定と型アサーション(キャストのようなもの)

HTML要素をdocument.querySelectorAll()で取得してforEachかけ、要素の属性値を確認しようとしたところ プロパティ 'dataset' は型 'Element' に存在しません。 と怒られた。Element? HTMLElementにキャストとかすればいいのか、と思って検索すると、型アサ…

正規表現の覚え書き

忘れそうなやつをメモ 先読み・後読み たまにしか使わないので混乱する… 先読みは「指定パターンの先(前方)の位置」をあらわし 後読みは「指定パターンの後(後方)の位置」をあらわす 「肯定先読み」という記法の呼び名の語順に沿って一覧 (「先読み肯定…

PHP クラス定数取得

php

クラス定数ってstatic変数みたいに、インスタンス化しなくてもクラスから直でとれるんだ…。 どちらも::で呼び出すの一緒だなと思ってはいたけど。 定数はインスタンス化しないととれないものと思い込んでいた。 余談:静的メンバって呼び方基本とするなら、…

PHP クラスの静的メンバ挙動を通して諸々覚える

php

ダブルコロンのスコープ定義演算子 $foo::BAR とか Foo::$bar とか PHPのコロンふたつの記法、なんとなく得体がしれずスルーし続けてきたが、自作クラスに定数を定義した際はじめて、定数や静的メンバの呼び出しに用いるものと知る。 インスタンスメンバへの…