数列の和を求めるプログラムを作成することになり、意気揚々と以下のようなプログラムを書いたという状況を想像して下さい。 function sum(nums, acc = 0) { if (nums.length === 0) return 0; if (nums.length === 1) return nums[0]; return sum(nums.slice(1), acc + nums[0]); } const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; console.log(sum(nums)); // expected: 55 一見すると何も問題なさそうに見えるプログラムですが、実はバグがあります (皆さん分かりますか?) *1。実際に上記プログラムを実行すると 55 ではなく 10 が出力されます。 こうした場面に遭遇すると、自然と sum
プログラミング初心者のための JavaScript と Node.js の歴史、それを踏まえた勉強方法 2020年でJavaScript学ぶならきっとブラウザ向けJSガン無視していきなり初手node.js(ただし暫く何も足さない)がいいんじゃないかというメモ - min.t (ミント) Node.js を教えることについて、自分は賛成なんですが、その学習パスが整理されてないなと思っていたのと、学習パスがなぜ整理されていないかについて書きます。 はじめに 問題意識として、今のプログラミングスクールや独学勢が Ruby on Rails に偏っていて、 Node.js の人間としては、歯がゆく感じているんですが、実際 Node.js を教えるとしても問題も多いと認識しています。 歴史の話は、当時の実情や政治を省いて結果だけを書きます。具体的には第一次ブラウザ戦争、第二次ブラウザ戦争を言及しませ
IntroductionGet Started Why Eleventy?Performance LearnGlossary Opening a Terminal Installing JavaScript CommonJS, ESM, TypeScript Starter Projects TutorialsQuick Tips CommunityHow can I contribute? Code of Conduct Blog Firehose 11ty Bundle Leaderboards Eleventy Meetup 11ty Conference GuideGuideGet Started Command Line Usage Add a Configuration File Copy Files to Output Add CSS, JS, Fonts Importing
先に英語で書いてから日本語訳しています。 こんにちは、個人アプリ作家のTakuyaです。 僕はInkdropというMarkdownノートアプリを独りで開発しています。 これはmacOSやWindows、Linux、iOSからAndroidまでスムーズに動作します。 なぜならデスクトップ版はElectron、モバイル版はReact Nativeで組まれているからです。 つまりアプリは基本的にJavaScriptで書かれています。 本稿では、vimにて効率的にJavaScriptをコーディングするためのワークフローについてシェアします。 僕はVSCodeのようなIDEを使わず、主にターミナル上で作業しています。 使っているツールはtmuxとNeovimです。 この構成での基本的なワークフローについてはこちらに書きました。 ここでは、更にvimの設定について掘り下げてご説明します。 僕のdotf
an open-source JavaScript library for mobile-friendly interactive maps Leaflet is the leading open-source JavaScript library for mobile-friendly interactive maps. Weighing just about 42 KB of JS, it has all the mapping features most developers ever need. Leaflet is designed with simplicity, performance and usability in mind. It works efficiently across all major desktop and mobile platforms, can b
概要 なんとなーく理解してなんとなーく書いている非同期処理とPromiseを今日こそ整理したいと思います。また、async/awaitの理解への導線としても非常に重要なので整理しておきたいです。いつものように、サンプルコードはなるべく余計な処理を書かずに、いきなり難しいことをせずにスモールステップで行きます。 あちこちで言われていることですが、async/awaitの理解にはPromiseが、Promiseの理解には非同期処理の理解が、非同期処理の理解にはコールバック関数の理解がほぼ必須です。実際にasync/awaitで書くとしても、いきなりasync/awaitを理解しようとするのは難しいと思います。 しかし製品同士の連携が重要になってきている今、kintone、servicenow、salesforce、slackなどレイヤーは違えどAPIをコールして連携させながら挙動をカスタマイズ
「良いコード」とは何でしょうか? コードの品質には色々な指標がありますが、「読みやすいコードは良いコードである」というのは一つの指標として多くの方が認めるところではないでしょうか。しかし、では読みやすいコードとはどのようなコードかというのもなかなか難しい問題です。 この記事では、品質の良いコードとしての「読みやすいコード」に対する筆者の考え方を共有します。もちろんこれが唯一解だと主張するつもりはありませんが、参考になった・共感したという方はぜひこの記事を周りに教えてあげてください。 なお、サンプルコードはTypeScriptを使って示しますが、必要に応じて説明するのでTypeScriptの経験が無い方でも読むことができます。 短いまとめ 読みやすいコードとは、書き手の意図が伝わりやすいコードです。 書き手の意図を読み手に伝えるには、読み手に意図を推論してもらうためのヒントを残します。 複数
この記事は スマホのブラウザで画像を圧縮する手順メモです したかったこと スマホでブラウザから画像をアップロードさせたかったです 最近の高性能カメラだと画像サイズが大きすぎて非常に重くなってしまいました サーバサイドで圧縮する方式だと結局アップロードの通信量は変わらないから効果がありません 対処 ブラウザ上で画像を圧縮して対応することにしました image-comporessorというJavaScriptライブラリを使います 内部的にはCanvasとか使って圧縮をしているみたいです 別にスマホじゃなくてもモダンブラウザなら動きます 対処コード FormDataオブジェクトを生成 Ajax送信でのみ利用できる操作しやすいFormオブジェクトみたいなもの FormのDOMを渡して生成する input type=fileから画像ファイルオブジェクトを取得して、ImageCompressorに渡し
Jestで始める! ユニットテスト 第1回 環境の準備とテストの実行 JavaScriptのユニットテストのためのツール、Jestの特徴や基本的な使い方を解説します。「そろそろテストを書く習慣を付けたい」、そう思う人のための始めの一歩です。 Jestとは Jestは、Facebook社がOSSとして開発を進めている、JavaScriptのユニットテストのためのツールです。 Jest · 🃏 Delightful JavaScript Testing 日本語のドキュメント Jestは日本語のドキュメントもあります。日本語で基本的な部分を知るのに役立ちますが、情報が追いついていない場合もありますので、最新情報は英語ドキュメントを参照するようにしてください。 公式ページで「Zero configuration testing platform」と謳っているように、あれこれ設定をすることなく、他
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く