◆ Ctrl-A > Ctrl-X > "a = " > Ctrl-V
  ◆ 文字列が少ないときには多分ベスト
  ◆ただし文字列が多いと重い
◆ メソッドチェーンでコールバック関数を実行してそこで代入もしくは直接処理
  ◆ 配列などメソッドがある場合のみ
  ◆メソッドがない型はできない
◆ Object のメソッドに this を指定の変数名に代入する機能を作る
  ◆ コンソールに自分で毎回メソッド追加するのは手間
  ◆ 自動で全ページに常に追加する拡張機能でも作ればマシにはなるけど……
◆ $_ や右クリックのグローバルに保存機能で直前の評価結果を変数に保存
  ◆ 一度評価必要で長いテキストだと表示が重い
  ◆ 一時保存の扱いがオブジェクトだと向いてる
◆ Ctrl-Home がすぐ押せるキーボードなら迷わずこれでいいと思う


式を書いたあとに変数に入れたいことがある

単純なテキスト処理をブラウザのコンソールですることが多いのですが メソッドチェーンなどで書いていて 途中で一旦変数に代入したいと思うことが少なくないです

ただ 一番最初に戻って 「a = 」 みたいなのを追加するのも面倒です
そのままの流れで 最後に ◯◯ に代入とできればなと思います

`
long
long
...
...
long
long
text
`.trim().split("\n").map(e => [...e])

一行ならともかく テキスト部分が長いことが多いので一番上まで戻るのは思ったより疲れます
スクロールしてると 切れ目が見つからず いつのまにか一つ前の実行結果に入ってたりしますし

Ctrl-A → Ctrl-X で切り取って 「a = 」 と打って Ctrl-V という方法も使いますが テキストがかなり長いと全選択と切り取りから貼り付けするだけでけっこう重いんですよね
特に改行がなくて折り返しの JSON なんかだとスクロールでさえ重いです

コールバック実行できるメソッドを利用する

そこで解決策がこれ

.some((a,b,c) => (window.value = c) || true)

チェーンの最後にくっつけます

`
long
long
...
...
long
long
text
`.trim().split("\n").map(e => [...e]).some((a,b,c) => (window.value = c) || true)

こういう感じです

配列の各要素に対して処理したいわけでなくとりあえず 1 回任意の関数を実行したいと言うだけの目的です
1 回だけでいいので some を使って true を返します

c を window に代入しています
3 つめの引数はは配列自身を指すので 全体が代入されることになります

ちゃんとしたコードならグローバル変数に代入したり わかりづらい some の使い方するとかは避けるべきですが 使い捨てのコンソールに書くだけのコードなので気にしません

他には 変数への代入じゃなくて結果としてコピーしたいときには こういうこともできます

.every((a, b, c) => copy(c))

copy は必ず undefined を返すので every にしておくと少し楽です

コールバックの中で処理するのもあり

代入して次の処理としなくてもこのコールバック関数内で代入済み変数として扱えるので コールバック関数内でやりたいことを書いてしまってもいいです
配列の最初と最後の要素の長さを足したものが欲しくて 一旦配列を変数に保存したいのならこういうふうに使えます

.every((a, b, c) => {
console.log(c[0].length + c[c.length - 1].length)
})

代入メソッドを作る

ここまでは 配列を前提にしてましたが 配列以外の値となることもあります
そういうときは

Object.prototype.assignTo = function(key){ "use strict";window[key] = this }

というメソッドを追加しておいて

"str".assignTo("x")
x
// "str"

"a,b,c".split(",").assignTo("y")
y
// ["a", "b", "c"]

というふうに 代入させることができます
とは言っても assignTo メソッドを作らないとダメで 使い捨てのコンソールに毎回追加するのも面倒です

use strict してるのは strict モードじゃないとプリミティブ値を this にしたときに強制オブジェクト化されるのでその対処用です

評価した値を変数に

意図せず変わってしまうなど使いづらい部分もありますが 最後に評価した結果を取得できる $_ が向いてる気もします

1 + 1
// 2
a = $_
a
// 2

注意するところは なにか評価をすると値が変わってしまうところです
そのまま使わずなにかの変数に入れておくと安心です

それと コンソールでは「評価した」はエンター押して実行した単位です
前回の実行結果として出力されたものが $_ に入っています

1 + 1
// 2

10 * 10
a = $_
a
// 2

このように 直前の式というわけではありません
100 じゃなくて 2 が $_ に入っています

一時的な変数など最終的に欲しいものではなく 出力が長すぎる場合はコンソールが固まることがあるので出力を抑えるために

returnLongValue(), null

と null を出力にすることもあるのですが そうすると $_ が使えません

ちょっと固まるのが許容できるなら 上に書いた切り取って代入式の途中に貼り付けでいいですし 特にどの方法が特別優れてるとも言えずどれでもいい気がします

$_ の代入はタイプするのが面倒なら右クリックで store as global variable を選べばグローバル変数に代入できます
昔はちゃんと動いてないこともありましたが 流石に今はもう大丈夫でしょう

Home キーがすぐ押せるなら

ここまで 最初にカーソルを移動するショートカットキーには触れてませんでしたが Ctrl-Home で戻れます
Ctrl-Home のあとに 「a = 」と書いてエンターすればそれでいいです

私の場合は Home が打ちやすくないキーボードのため それするなら切り取って貼り付けたほうが早いとなって しかしそれも大きなテキストだと動作が重いのでメソッドのチェーンとして最後に代入できればいいなと快適な方法を探した結果です
Ctrl-Home がすぐ押せるならこう言う面倒なことはせず Ctrl-Home 押せばいいと思います