タグ

ブックマーク / nmi.jp (4)

  • Maximum call stack size exceeded について解説

    "Maximum call stack size exceeded" というエラーに関する解説を書きます。JavaScript を前提に解説しております。 ざっくり解説 Uncaught RangeError: Maximum call stack size exceeded これは、関数が何度も深く深く呼ばれてしまった場合に出るエラーです。 大抵は、間違って自分自身の関数を呼んでしまった、もしくは再帰の終了条件をミスった場合に発生します。 ここに検索で来た方は、自分自身を呼んでいたり、関数同士が循環的に呼びあっていたりするミスを犯していないか確認してください 。 図にすると、こんな感じです ちなみに、関数呼び出しがなければこのエラーは発生しません。ただの無限ループでは決して発生しないエラーです。以下、解説を書きます。 「関数を深く呼ぶ」とは? ここでは、関数からリターンせず再度関数を呼び

    PEEE
    PEEE 2023/12/04
  • Chrome の console.log でハマらないために

    JavaScript を書いたことがある人ならば一度は使うであろう console.log ですが、この関数は思ったよりも厄介な性質を持っています。その性質を知らずに console.log を使うと、デバッグ時に大ハマリしてしまうことがあります。この記事では console.log の落とし穴についてお話します。 今回は Chrome に特化して解説しますが、Firefox や Safari でも同じ落とし穴があります。 console.log とは まずはさらっと基をおさらいしましょう。 大前提なのですが、console.logJavaScript の言語仕様(ECMAScript)で定義されていません。ブラウザ向けには whatwg の仕様がありますが、あくまでもそれはブラウザ向けの仕様であり、Node.js を含むほぼ全ての JavaScript 環境で使えるのは cons

    PEEE
    PEEE 2022/11/14
  • JavaScript クイズ解説: NaN === NaN の結果はどうなる?

    先日、このようなツイートを書きました。 久しぶりの JavaScript クイズ。 JavaScript において NaN === NaN の結果は次のうちどれになるでしょうか? — Takuo Kihira (@tkihira) September 7, 2021 答えは 4 の「状況によって上記以外もありうる」です。でも、2 や 3 を選んだ方も、もはや正解だといって差し支えないと思います。 解説が長くなったので、ブログ記事にまとめました。 そもそも NaN とは NaN は “Not a Number” を意味する数値です。数値なのに「Not a Number」というのは違和感があるかもしれませんが、数値表現することが出来ない状態を保持するために便宜的に用意された数値、というようなものです。 NaN は、浮動小数点演算において数値では表現出来ない計算をしようとすると登場します。例えば

    PEEE
    PEEE 2021/09/09
  • スタートアップに転職する時に最低限知っておくべき株の話

    身の回りで大企業からスタートアップに転職するエンジニアの話をよく耳にするようになりましたが、転職に際して株に関して深く考えていない人がかなり多いことに気づきました。最低限この程度は知っておいたほうがいい、という点を自分の視点からまとめてみました。 スタートアップの金銭的な成功 スタートアップの株は「非公開株」です。非公開株というのは、東証などの証券取引所で取引されていない株全般のことを指します。おおっぴらに取引されていないので、非公開株を貰ったところで即座に現金化出来るわけではありません。特に外部から投資を受けるようなスタートアップ企業は、(例外はいくつかあるものの)この非公開株を現金化させることが一つのゴールになります。 非公開株を現金化させる方法は大きく2つあります。一つは株式公開(IPO)で、証券取引所の審査を経て自社株を自由に売買出来るようにすることです。いわゆるマザーズ上場、東証

    PEEE
    PEEE 2016/07/24
  • 1