at メソッドの引数の扱いが話題になってました

最近追加された配列や文字列の at メソッド
最後の要素など後ろからのインデックスを使ったアクセスで便利な機能です
整数以外の値を渡したときは変換されてから扱われるようです

"abcd".at(null)
// a
"abcd".at(undefined)
// a
"abcd".at(1.9)
// b

null や undefined は 0 で 1.9 は 1 と扱われてる結果になってます
「~~value」 でキャストしてそうですが

~~Infinity
// 0

"abcd".at(Infinity)
// undefined

となってるあたり 完全にこの方法ではないようです

[n] でのアクセスと同じではなく .slice(n)[0] のシンタックスシュガーらしく slice を使えば Infinity は文字列なら空文字で配列なら空配列になりそうですし そう言われるとわかりやすいと言えます
「"abcd".at(index)」 というコードを見ると [index] と同じ動きになりそうに見えるのでわかりづらい感はありますが 整数以外を渡すことはまずないですし 実装ミスのときにどう動くかなのでどっちでもいいところです
想定外の動きだったときの原因探しのために 頭の片隅に記憶しておいたほうがいいかもくらいですね

自分が使うケースを考えてみても 基本は -1 リテラルがほとんどで その他は index や length と足し算引き算したくらいで整数が以外が入ることはまずないです
仮に入る可能性があっても at に整数以外を入れる意味がないので ~~index で整数化して渡すので動作的には一緒です
それにこれまでは .slice(-index)[0] だったので at に置き換えた場合の挙動はこれまでと同じになります

見たときの直感とは違いますが この挙動でいいんだとは思います