読者です 読者をやめる 読者になる 読者になる

7cc@はてなブログ

JavaScriptとかとか

Windowのコマンドラインでドライブ変更 (Git shell)

その他

普通のコマンドプロンプトと、Git Shellとで書式が異なる。pushd c:/ なら両対応。

普通のコマンドライン

cd /d C:
pushd C:
c:

パスの最後に / or \ を入れても良い。

最後のドライブ名:のコマンドは他とは違う意味を持つ。完全にドライブ切り替えだけを行い、それぞれのドライブでパスを保存する。対して、他はカレントディレクトリを移動する。説明では分かりにくいが、試せばすぐに分かる。

Git Shell

最後に / or \ を必ず入れる。"C:"のみだと、違う場所に移動することがある。

cdにオプション/dは入れられない。

cd C:/
pushd C:/

ニコニコ動画で、ユーザーIDからニックネーム(ユーザーネーム)を取得する

その他

ポイント

  • 公式のAPIが無い&公開されてはいないので、「マイページを直接叩くよりはマシ」という程度の認識で使う。
  • 確実に取得する方法はないので、ユーザーネーム取得に失敗した時のためにダミーテキストを用意してやると良い。 戻り値が空文字やnullでエラーにならないように。
  • メソッドは全てGET, パラメータはIDのみなので省略。
続きを読む

visibility: hidden と display: none の違いは2つ

CSS

この2つのCSSの違いについてはよく、「visibility: hiddenは空白を残す」ということだけ説明されている。しかし、詳しく説明するとそれ以外の違いもある。

続きを読む

多次元配列の再帰の記述

JavaScript

記述の方法が、foriで書くと1通りだが、イテレートメソッドだと2通りある。
どちらでもよいのだけれど、混ざるので整理。

foriとイテレートはすることが少し違うが、それは置いておく

foriでの再帰。(コード1

function fori(arr, fn) {
  for (var i=0, l=arr.length; i<l; i++) {
    Array.isArray(arr[i]) ? all(arr[i], fn) : fn(arr[i])
  }
}

イテレートでの再帰コード2
普通、再帰はその関数自体を呼び出すのでこちらの書き方になる。foriと同じ構造。

function eachOuter(arr, fn) {
  arr.forEach(function(e) {
    Array.isArray(e)? eachOuter(e, fn) : fn(e)
  })
}

しかし、イテレートの再帰はこうも書ける(コード3

function eachInner(arr, fn) {
  arr.forEach(function internal(e) {
    Array.isArray(e)? e.forEach(internal) : fn(e)
  })
}

直接配列をイテレートするならコード3の書き方になる。(コード4

// fnは外部で宣言してもよいし、直接書いてもよい
arr.forEach(function internal(e) {
  Array.isArray(e)? e.forEach(internal) : fn(e)
})

つまり、どちらをベースにするかで書き方が異なる。

  • コード1 => コード2
  • コード4 => コード3

img.width, img.height と img.setAttribute("width"/ "height"

JavaScript

JSからサイズを設定する場合

OK

img.width = "100"
img.setAttribute("width", "100")
img.setAttribute("width", "100px")

NG

img.width = "100px"

IEFirefoxで試して両方こうだった。罠くさい・・・

といっても、本来<image>のwidth, heightに入れられるのは数値なので

img.width = "100"
img.width = Number("100")
img.width = 100

と なり、単位を付けない書き方が一番良い。
px以外の単位(パーセントなど)を指定するならCSSを用いる。