JavaScript関連のことを調べてみた

JavaScript関連のことを調べてみた

How to post in this

What is Lorem Ipsum?
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more re

元記事を表示

mouseup イベント後、要素外で mousedown されるとイベントが発火せず困るので何とかしたい

# やりたいこと

Chrome 拡張機能でボタンを埋め込んでいます。

ボタンがクリックされたことが視覚的に分かりやすいよう、マウスが押し込まれたらボタンの css を変更し、離されたら元に戻したい。

![スクリーンショット 2024-03-07 103511.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76272/0ec8e2d4-6ddd-3ed1-1273-1e33b8ef0d03.png)

## 修正前のコード

脳死で mousedown, mouseup のイベントリスナーをそれぞれ登録していました

“`javascript
document.addEventListener(‘DOMContentLoaded’, () => {
const copyButton = document.getElementById(‘copyButton’);

// マウスが押し込まれたら css を変更
copyButton.addEventListener(‘mousedow

元記事を表示

【JavaScript】async / await(fetch api)でQiita apiから記事情報を取得する方法【非同期処理】

javascriptで外部データを取得する方法が知りたいと思い、練習でQiita apiから記事情報を取得してみようと思った。
会社のテックリードの方に **axios** が便利と勧められたが、その前に **async / await** を使ったやり方も知っておきたいなと思ったので備忘録です。

## サンプル
とりあえず以下がコードの例。
Qiita記事でjavascriptのタグが付いた記事と取得したデータからいいねが1つ以上ついた記事のURLを抽出しています。
“`Javascript
async function getQiitaArticle(){
//①自身のアクセストークン
const MyToken = ‘XXXXX’;
//②記事を100件取得する
const QiitaURL = ‘https://qiita.com/api/v2/tags/javascript/items?per_page=100’;
const FetchOptions = {
method: ‘GET’,
heade

元記事を表示

JSでリンク入りカレンダー作ってみた

# はじめに
自前のサービス内でカレンダーの日付にリンクを貼り付けたかったのですが、良さげなものがすぐ見つからなかったので軽い気持ちで書いてみました。(ほしかったリンクは、ベースのURLにYYYY-MM-DDが入っているものです)

# 作ったもの

## 画像
![スクリーンショット 2024-03-06 23.19.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671049/0791ba43-c778-cc36-775f-76aaa9192df4.png)

## ディレクトリ構成

any_directory
∟ index.html
∟ calendar.js
∟ calendar.css
∟ reset.css (お好きなものをお使いください)

## コード
### index.html
“`html



Calendar</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/f-mio/items/e97322465bdefb24e1d5'>元記事を表示</a></div> <h3 id="outline__5"><a href='https://qiita.com/Showork620/items/1754f7097c28bcfb9339'>トグルリスト(アコーディオン)に transition: height が効かない時の裏技</a></h3> <blockquote><p>### 前置き(transition による遷移アニメーション)</p> <p>アコーディオンにアニメーションをつけたいとき、<br /> cssの`transition`を使えば簡単にアニメーションをつけられます。</p> <p>“`scss:scss<br /> .toggle-block {<br /> overfllow: hidden;<br /> height: 0;<br /> transition: height 0.3s</p> <p> &.is-active {<br /> height: 300px;<br /> }<br /> }<br /> “`<br /> 上記の`toggle-block`に`is-active`を着脱すれば、<br /> 0.3sかけて height が伸び縮みしてくれます。</p> <p>### transition設定してもアニメーションにならないケース<br /> “`scss:scss<br /> .toggle-block {<br /> overfllow: hidden;<br /> height: 0;<br /> transition: height 0.3s</p> <p> &.is-active {<br /> height: fit-content;<br /> }<br /> }<br /> “`<br /> これの場合はうまくいきません。<br /> `transition`が効くのは「数値同</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>HTML</div> <div class='tag-cloud-link'>CSS</div> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>プログラミング初心者</div> <div class='tag-cloud-link'>プログラミング勉強日記</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/Showork620/items/1754f7097c28bcfb9339'>元記事を表示</a></div> <h3 id="outline__6"><a href='https://qiita.com/YmBIgo/items/a7c42042f7e7d7c49d98'>駆け出しOSSコントリビューターが失敗から学んだ 大規模OSS開発のイロハ</a></h3> <blockquote><p>## 今熱い!OSSコントリビュート</p> <p>突然ですが、あなたは OSS活動 やっていますか?<br /> 去年ではありますが OSSを積極的に推奨する企業も出てきて、今 OSS にコントリビュートは熱い分野の1つになっています!</p> <p>https://productpr.timee.co.jp/n/n8e2182f46334</p> <p>そんな OSS ですが、自分も、去年の10月に初めて nue.js というプロジェクトにコントリビュートしてから、去年の12月から Next.js を読み始めて つい先週 Next.js への PR がマージされました。</p> <p>https://qiita.com/YmBIgo/items/e4600a44a446033afa1b</p> <p>https://qiita.com/YmBIgo/items/45c8c3dfbc83e6fb57d7</p> <p>しかし、普段はOSSの恩恵を受けているだけの開発者の自分は、大規模OSS開発というOSSを使う側と比べると何倍も規模が違う開発のイロハをわきまえず、開発をしてしまい、失敗してしまった経験があります。<br /> 自分と同じような過ちはおかしてほしくないという希望を</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>OSS</div> <div class='tag-cloud-link'>React</div> <div class='tag-cloud-link'>Next.js</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/YmBIgo/items/a7c42042f7e7d7c49d98'>元記事を表示</a></div> <h3 id="outline__7"><a href='https://qiita.com/dkdidudtn/items/45f06b741bda7a14b838'>イメージをアップロードできるウェブページを CICD を適用して実装</a></h3> <blockquote><p>自分が LT のために実装しながら、作った slide をもう一回整理したくてこれをかきます。</p> <p>単純に silde をアップロードすることではなく、実装しながら、あったエラーとか、これが大事なということを qiita にアップロードして、こちらに url をつける予定です。</p> <p>実装しながら、あちこちあらゆるブログや qiita をみたので、もれた url があるかもしれません。</p> <p>## AWS</p> <p>https://aws.amazon.com/</p> <p>https://en.wikipedia.org/wiki/Amazon_Web_Services</p> <p>Amazon Web Service</p> <p>私たちがよく知っているアマゾン企業です。<br /> その企業の cloud computing service で、cloud computer(virtual)に関連したサービスを使うことができます。自分が良く使うサービスはいかになります。<br /> 1. EC2<br /> 1. S3<br /> 1. Lambda<br /> 1. VPC</p> <p>これ以外あらゆるサービスがあるので、wiki や AWS ページをご覧ください。</p> <p>## CI/CD ってなに</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>GitHub</div> <div class='tag-cloud-link'>AWS</div> <div class='tag-cloud-link'>CICD</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/dkdidudtn/items/45f06b741bda7a14b838'>元記事を表示</a></div> <h3 id="outline__8"><a href='https://qiita.com/fujimoto_/items/34f00ed5f328bfda3e31'>RSSを取得する方法</a></h3> <blockquote><p>### はじめに<br /> 本記事は、JavaScript・HTMLでRSSの取得・表示を試みたときの簡単な備忘録です</p> <p>### RSSを取得する方法<br /> #### 結論<br /> Javascriptで他所のサーバーのRSSを取得しようとするとCORSエラーが発生するためうまくいきませんでした<br /> サーバーサイドで処理をすればCORSエラーを回避できるので、PHPを用いることによってRSSを取得することができました</p> <p>#### ソースコード例<br /> 任意のRSSを取得・表示する最低限のソースコードを以下に記述します</p> <p>“`php:php<br /> <?php function rss_get($url){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); $rss = curl_exec($curl); curl_close($curl); echo $rss; } ?></p> <p><!DOCTYPE html><br /> <html lang="ja"><br /> <head></head><br /> <body><br /> <main></p> <div></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>PHP</div> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>RSS</div> <div class='tag-cloud-link'>初心者</div> <div class='tag-cloud-link'>CORS</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/fujimoto_/items/34f00ed5f328bfda3e31'>元記事を表示</a></div> <h3 id="outline__9"><a href='https://qiita.com/Kasiri-git/items/cb4d6d393754f30cf2af'>表示してるWEBページのHTMLソースをダウンロードするJavascript</a></h3> <blockquote><p>## HTMLファイルのダウンロード<br /> 現在表示してるページのHTMLソースをHTMLファイルでダウンロードするスクリプトです。<br /> スクリプトを実行すると即時、<br /> 既存のダウンロードフォルダにファイルがダウンロードされます。<br /> ### Javascript原文<br /> “`Javascript<br /> function getHTMLSource() {<br /> return document.documentElement.outerHTML;<br /> }</p> <p>function saveHTMLToFile(htmlContent) {<br /> var blob = new Blob([htmlContent], { type: ‘text/html’ });<br /> var downloadLink = document.createElement(‘a’);<br /> downloadLink.href = window.URL.createObjectURL(blob);<br /> downloadLink.download = ‘page_source.html’;<br /> document.body.appe</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/Kasiri-git/items/cb4d6d393754f30cf2af'>元記事を表示</a></div> <h3 id="outline__10"><a href='https://qiita.com/nanasi-1/items/1e5bc2edc5edd9c71b16'>JavaScriptのエラー型一覧</a></h3> <blockquote><p># はじめに</p> <p>結構前に書いた記事が残ってたので投稿します。</p> <p>:::note warn<br /> 書いてる人が初心者のため、この記事の情報は間違っている可能性があります。</p> <p>正確な情報が必要な場合は、併記している**MDNのリンクを辿る**か、**自分でしっかりと調べる**ことを推奨します。</p> <p>また、ミス等を見つけたらコメントで教えてくださると助かります。<br /> :::</p> <p>## エラー型一覧とは</p> <p>MDNに乗っていたエラーのクラスを紹介しています。<br /> 乗っているのは多分ブラウザで使えるものだと思います(根拠なし)。</p> <p>また、MDNのリンクを載せているので、詳しい情報(と正確な情報)はそちらから見てもらえると助かります。</p> <p># エラー型一覧</p> <p>ここから本編です。</p> <p>## Error</p> <p>> Error オブジェクトは、実行時エラーが発生した時に発生します。 Error オブジェクトは、ユーザー定義の例外の基底オブジェクトとして使用することもできます。標準の組み込みエラー型については下記を参照してください。</p> <p>お馴染みのエラーオブジェクトです。<br /> `throw`したりスタックトレースを取得するのに使えま</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>型</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/nanasi-1/items/1e5bc2edc5edd9c71b16'>元記事を表示</a></div> <h3 id="outline__11"><a href='https://qiita.com/kb-w-shukam/items/3de729bd5b32e1bb9bf8'>【Java】パスワード変更を遷移なしでやろうとした話【Ajax】</a></h3> <blockquote><p>備忘録としての投稿です<br /> 記事にしておきながらなんですが、人に見せることは目的をしておりません。<br /> ですが、見かけた方が内容についていろいろとツッコミを入れてくださると嬉しいです。</p> <p>【自分について】<br /> となるITベンチャー企業に入社し、日々勉強中です。<br /> 主にJavaを勉強しています。</p> <p>## 事の発端<br /> 現在、Javaの動的WEBプロジェクトで簡単な従業員管理サイトのようなシステムを作っている。<br /> 管理者のパスワード変更機能を付けたいと思ったのですが、変更のためだけに別でページを作るのもなーなんて思い、モーダルウィンドウでパスワード変更画面を出し、ページ遷移することなく変更処理ができたら良いよねと思う。</p> <p>## 画面遷移なく Servlet の処理を実行することは可能か?<br /> パスワード変更機能の追加で一番実現させたかったのは、画面遷移なくパスワード変更の処理を実行すること</p> <p>このシステムでは、基本的には JSP で画面表示、Servlet で内部処理を行っている。<br /> (基本そうかもしれませんが、、)<br /> JSP → Servlet → JSP のやり取りは Servlet の URLマッピング で s</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>jQuery</div> <div class='tag-cloud-link'>Servlet,JSP</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/kb-w-shukam/items/3de729bd5b32e1bb9bf8'>元記事を表示</a></div> <h3 id="outline__12"><a href='https://qiita.com/gantarooou_js/items/5312b2d5d1e2d99ecada'>propsで受け取った画像情報が表示できない</a></h3> <blockquote><p>## 初めに<br /> 今回ReactをUdemyで学習していて、propsのオブジェクト受け取って、画像を表示することを実装しました。<br /> ですが凡ミスによって画像表示ができなかったので、今後気をつけるためにも記事に残します!</p> <p>##失敗コード<br /> “`react<br /> <img decoding="async" height={160} width={160} src="{user.image}" alt="{user.name}" /></p> <dl> <dt>mail</dt> <dd>{user.email}</dd> <dt>TEL</dt> <dd>{user.phone}</dd> <dt>会社名</dt> <dd>{user.company.name}</dd> <dt>WEBサイト</dt> <dd>{user.website}</dd> </dl> <p>“`<br /> このコードではmail、TEL、会社名、WEBサイトはpropsからデータを受け取って表示できますが、画像情報が表示されません。</p> <p>## 解決策<br /> “`react<br /> <img height={160} width={</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>React</div> <div class='tag-cloud-link'>凡ミス</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/gantarooou_js/items/5312b2d5d1e2d99ecada'>元記事を表示</a></div> <h3 id="outline__13"><a href='https://qiita.com/bicstone/items/aec6d731d11231d1342c'>/packer/でBase62エンコードしたJavaScriptコードをデコードするツール</a></h3> <blockquote><p> [/packer/](http://dean.edwards.name/packer/)でBase62エンコードしたJavaScriptコードをデコード(復号)するツールです。</p> <p>※ これは2016-04-19に個人ブログで公開した記事を移植したものです。</p> <p>## デコードツール</p> <p>`eval(function(p,a,c,k,e,r){e=function(c){return(` で始まるコードをコピペしてDecodeボタンを押してください。すべてブラウザで処理され、サーバーには送信されませんのでご安心ください。</p> <p>2重、3重にエンコードされている場合もあります。その場合は数回Decodeボタンを押してください。</p> <p>https://codesandbox.io/embed/frosty-mendel-x0uv0j?&theme=light&view=preview</p> <p>デコードされたコードをわかりやすく見たい場合は[Online JavaScript beautifier](http://jsbeautifier.org/)のようなツールをご使用下さい。</p> <p>## デコードコード</p> <p>次</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>プログラミング</div> <div class='tag-cloud-link'>Web</div> <div class='tag-cloud-link'>難読化</div> <div class='tag-cloud-link'>base62</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/bicstone/items/aec6d731d11231d1342c'>元記事を表示</a></div> <h3 id="outline__14"><a href='https://qiita.com/jaque/items/b99ed9dce78cc64fa9d2'>1行で発狂するコード</a></h3> <blockquote><p>## 人は1行の記述で死ぬこともある</p> <p>公開からコンスタントに閲覧をいただいている以下の記事。需要がありそうなので、もう1つ記事を書いてみようと思う。</p> <p>https://qiita.com/jaque/items/a82929709407d5c3beb2</p> <p>題材は前回同様のJavaScriptのクソコードではあるが、前回は冗長を極めたクソコードであるのに対し、今回はたった1行である。</p> <p>1行なのに、なんと示唆深い(決してほめていない)コードだろうか。</p> <p>## 不可思議なコード</p> <p>では、実際に見てみよう。</p> <p>“`javascript<br /> return a = a >= 10 ? 10 : a >= 5 ? 5 : a >= 3 ? 3 : a >= 2 ? 2 : 1, z * a;<br /> “`</p> <p>これを見て、何が `return` で返されるかわかります?</p> <p>### 代入演算子</p> <p>最初見たとき、代入文 `a = ×××` の評価値って何になるのかな? `a` が `return` されるのかなと思いました。</p> <p>https://developer.mozilla.org/ja/docs/Web</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>クソコード</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/jaque/items/b99ed9dce78cc64fa9d2'>元記事を表示</a></div> <h3 id="outline__15"><a href='https://qiita.com/keitaMax/items/e9f8ad0bfcbca631c2db'>【JavaScript】Rythm.jsで音に合わせて画像を躍らせてみた</a></h3> <blockquote><p># はじめに</p> <p>こんにちは、エンジニアのkeitaMaxです。</p> <p>今回は、Rythm.jsというJavaScriptのライブラリを使ってみようと思います。</p> <p>公式サイトは以下のURLです。</p> <p>https://okazari.github.io/Rythm.js/</p> <p># 音に合わせて画像を躍らせてみる</p> <p>CDNがあるので、それをheadタグ内に入れます。</p> <p>“`html<br /> <head><br /> <meta charset="UTF-8" /><br /> <meta name="viewport" content="width=device-width" /><br /> <script src="https://unpkg.com/rythm.js/"></script><br /> <script src="https://cdnjs.cloudflare.com/ajax/libs/rythm.js/2.2.5/rythm.min.js"></script><br /> </head><br /> “`</p> <p>躍らせたい画像をどこからか持ってきて、htmlのbodyを以下のようにします。<br /> “`html<br /> <body</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>プログラミング</div> <div class='tag-cloud-link'>Rythm</div> <div class='tag-cloud-link'>独学</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/keitaMax/items/e9f8ad0bfcbca631c2db'>元記事を表示</a></div> <h3 id="outline__16"><a href='https://qiita.com/course_k/items/da018b6c4ad3b507398d'>ReactのuseContextを使いこなす</a></h3> <blockquote><p>## はじめに<br /> Reactのコンポーネント間で値を受け渡すには、`props`を使って親から子へ渡すしかないと思っていましたが、実はそれ以外にもあるということを知りました。</p> <p>その1つが今回紹介する`useContext`です。</p> <p>`props`との違いはなにか、どのようなことができるのかを、基礎から確認していきます。</p> <p>## useContextとは<br /> `useContext`はコンポーネント間で`props`を介さずに値を受け渡すことができるReactフックです。<br /> `props`の代わりにコンテクストと呼ばれるものを使用して値の受け渡しを行います。</p> <p>### propsの問題点<br /> `useContext`の詳細について確認する前に、`props`を使うと問題がある場合について確認します。</p> <p>以下のようなアプリについて考えてみます。<br /> <img width='70%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/83c01898-65bd-e855-7216-0c4b88a008e9.png</p></blockquote> </blockquote> <aside class=?test=1&y=n'widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>初心者</div> <div class='tag-cloud-link'>React</div> <div class='tag-cloud-link'>react-hooks</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/course_k/items/da018b6c4ad3b507398d'>元記事を表示</a></div> <h3 id="outline__17"><a href='https://qiita.com/yamakosi/items/005df781eeb8f31079f7'>14.仮想通貨自動売買プログラムを作る(1) | TypeScript入門講座</a></h3> <blockquote><p>https://youtu.be/geYY9OJ7lH0?si=mNcJs21_bELxO6rW </p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>Node.js</div> <div class='tag-cloud-link'>API</div> <div class='tag-cloud-link'>TypeScript</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/yamakosi/items/005df781eeb8f31079f7'>元記事を表示</a></div> <h3 id="outline__18"><a href='https://qiita.com/yamakosi/items/a070bca91458b650bf5a'>TypeScript入門講座</a></h3> <blockquote><p>https://youtube.com/playlist?list=PLkQpCfbvj0lylBox7BYe3qqOVDJgEM005&si=xA_sRZLs-MoXPchl </p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>API</div> <div class='tag-cloud-link'>TypeScript</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/yamakosi/items/a070bca91458b650bf5a'>元記事を表示</a></div> <h3 id="outline__19"><a href='https://qiita.com/P-man_Brown/items/441dfb33dfb5ac1b2d02'>【JavaScript】Knipを使用して不要なコードや依存関係を見つける</a></h3> <blockquote><p>## Knipとは</p> <p>Knipを使用すると未使用のファイルや依存関係、`export`などを検出できます。</p> <p>https://knip.dev/</p> <p>## 使い方</p> <p>### インストール</p> <p>以下の手順でインストールできます。</p> <p>“`shell<br /> yarn add -D knip typescript @types/node<br /> “`<br /> :::note info<br /> `typescript`, `@types/node`はすでにインストールされていれば不要です。<br /> :::</p> <p>:::note warn<br /> Yarnを使用してインストールした際に問題が発生した場合は[Yarnでインストールした際のエラーの対処法](#yarnでインストールした際のエラーの対処法)もご確認ください。<br /> :::</p> <p>`package.json`の`scripts`に`knip`を追加します。</p> <p>“`json:package.json<br /> {</p> <p> “scripts”: {<br /> “knip”: “knip”<br /> },</p> <p>}<br /> “`</p> <p>以下のように実行できます。</p> <p>“`terminal<br /> yarn knip<br /> “`</p> <p>実行すると使</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>TypeScript</div> <div class='tag-cloud-link'>React</div> <div class='tag-cloud-link'>Next.js</div> <div class='tag-cloud-link'>Knip</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/P-man_Brown/items/441dfb33dfb5ac1b2d02'>元記事を表示</a></div> <h3 id="outline__20"><a href='https://qiita.com/musenmai/items/c6e7af3dd57f0f88db9c'>try-catch のfinallyっていつ使うねん、ていう話</a></h3> <blockquote><p># はじめに</p> <p>例外処理を実装するにあたって欠かせないのが`try-catch`文です。これを使うことで、ランタイムエラーが発生しても処理を継続できたりするわけです。</p> <p>ところで`try-catch`文では`finally`というものを使うこともできます。これは`try`ブロックの中が正常に完了しても、`catch`に進んだとしても、最後に実行される処理を書く場所です。</p> <p>“`tsx<br /> try {<br /> // 何らかの処理<br /> console.log(‘tryで実行’);<br /> } catch {<br /> // エラー次の処理<br /> console.log(‘catchで実行’);<br /> } finally {<br /> // 最後に必ず行う処理<br /> console.log(‘最後に必ず実行’);<br /> }<br /> “`</p> <p>ところで、わざわざ`finally`って使う必要ありますか?</p> <p>`try`完了後(あるいは`catch`完了後)に何かの処理を実行させたいなら、以下のように書けばいいはずです。</p> <p>“`tsx<br /> try {<br /> // 何らかの処理<br /> console.log(‘tryで実行’);<br /> } catch {<br /> // エラー次の処</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>JavaScript</div> <div class='tag-cloud-link'>TypeScript</div> <div class='tag-cloud-link'>例外処理</div> <div class='tag-cloud-link'>Try-Catch</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/musenmai/items/c6e7af3dd57f0f88db9c'>元記事を表示</a></div> </div> </section> <!-- 記事下シェアボタン --> <aside> <ul class="socialList"> <li class="socialList__item"><a class="socialList__link icon-facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmiofactor.com%2F2024%2F03%2F07%2Fpost-31576%2F&t=JavaScript%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F" target="_blank" title="Facebookで共有"></a></li><li class="socialList__item"><a class="socialList__link icon-twitter" href="http://twitter.com/intent/tweet?text=JavaScript%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F&https%3A%2F%2Fmiofactor.com%2F2024%2F03%2F07%2Fpost-31576%2F&url=https%3A%2F%2Fmiofactor.com%2F2024%2F03%2F07%2Fpost-31576%2F" target="_blank" title="Twitterで共有"></a></li><li class="socialList__item"><a class="socialList__link icon-line" href="http://line.naver.jp/R/msg/text/?JavaScript%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F%0D%0Ahttps%3A%2F%2Fmiofactor.com%2F2024%2F03%2F07%2Fpost-31576%2F" target="_blank" title="LINEで送る"></a></li></ul> </aside> <!-- /記事下シェアボタン --> <!-- 記事下エリア[widget] --> <aside class="widgetPost widgetPost-bottom"><aside class="widget widget-post"><h2 class="heading heading-primary">タグ</h2><div class="tagcloud"><a href="https://miofactor.com/tag/%e3%81%9d%e3%81%ae%e4%bb%96/" class="tag-cloud-link tag-link-13 tag-link-position-1" style="font-size: 8pt;" aria-label="その他 (1個の項目)">その他</a></div> </aside></aside> <!-- /記事下エリア[widget] --> <!-- 関連記事 --> <aside class="related"><h2 class="heading heading-primary">関連する記事</h2><ul class="related__list"> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2024/09/21/post-36932/" title="Android関連のことを調べてみた"> <img src="https://miofactor.com/wp-content/uploads/2019/10/android-150x150.jpg" alt="Android関連のことを調べてみた" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2024/09/21/post-36932/">Android関連のことを調べてみた</a> <span class="icon-calendar">2024.09.21</span> </h3> <p class="related__contents">目次 1. leanbackライブラリにおけるViewBinding化の注意点2. [Android] Javascript Interface3. […]</p> </li> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2022/11/14/post-24168/" title="オープンソース調べOSS 2022年11月14日"> <img src="https://miofactor.com/wp-content/uploads/2019/11/967637031-book-168824_1920-YEnY-1920x1280-MM-100-150x150.jpg" alt="オープンソース調べOSS 2022年11月14日" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2022/11/14/post-24168/">オープンソース調べOSS 2022年11月14日</a> <span class="icon-calendar">2022.11.14</span> </h3> <p class="related__contents">目次 1. OpenLayers入門2. CesiumJS入門3. 【QGIS】フィルタを使ってGISデータを抽出する4. 【VSCode】VSCod[…]</p> </li> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2022/10/27/post-23656/" title="JAVA関連のことを調べてみた2022年10月27日"> <img src="https://miofactor.com/wp-content/uploads/2019/10/java-150x150.jpg" alt="JAVA関連のことを調べてみた2022年10月27日" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2022/10/27/post-23656/">JAVA関連のことを調べてみた2022年10月27日</a> <span class="icon-calendar">2022.10.27</span> </h3> <p class="related__contents">目次 1. 「Java」Excelでピボットテーブルを作成する方法2. CsvMapperをBean登録するとSpringboot actuatorの[…]</p> </li> </ul></aside> <!-- /関連記事 --> <!-- コメント --> <!-- /コメント --> <!-- PVカウンター --> <!-- /PVカウンター --> </main> <!-- /l-main --> <!-- l-sidebar --> <div class="l-sidebar"> <aside class="widget"> <div class="searchBox"> <form class="searchBox__form" method="get" target="_top" action="https://miofactor.com/" > <input class="searchBox__input" type="text" maxlength="50" name="s" placeholder="記事検索"><button class="searchBox__submit icon-search" type="submit" value="search"> </button> </form> </div></aside><aside class="widget"><h2 class="heading heading-widget">Category</h2> <ul> <li class="cat-item cat-item-1"><a href="https://miofactor.com/category/other/">OTHER</a> </li> </ul> </aside><aside class="widget"><h2 class="heading heading-widget">Back number</h2> <ul> <li><a href='https://miofactor.com/2024/11/'>2024年11月</a></li> <li><a href='https://miofactor.com/2024/10/'>2024年10月</a></li> <li><a href='https://miofactor.com/2024/09/'>2024年9月</a></li> <li><a href='https://miofactor.com/2024/08/'>2024年8月</a></li> <li><a href='https://miofactor.com/2024/07/'>2024年7月</a></li> <li><a href='https://miofactor.com/2024/06/'>2024年6月</a></li> <li><a href='https://miofactor.com/2024/05/'>2024年5月</a></li> <li><a href='https://miofactor.com/2024/04/'>2024年4月</a></li> <li><a href='https://miofactor.com/2024/03/'>2024年3月</a></li> <li><a href='https://miofactor.com/2024/02/'>2024年2月</a></li> <li><a href='https://miofactor.com/2024/01/'>2024年1月</a></li> <li><a href='https://miofactor.com/2023/12/'>2023年12月</a></li> <li><a href='https://miofactor.com/2023/11/'>2023年11月</a></li> <li><a href='https://miofactor.com/2023/10/'>2023年10月</a></li> <li><a href='https://miofactor.com/2023/09/'>2023年9月</a></li> <li><a href='https://miofactor.com/2023/08/'>2023年8月</a></li> <li><a href='https://miofactor.com/2023/07/'>2023年7月</a></li> <li><a href='https://miofactor.com/2023/04/'>2023年4月</a></li> <li><a href='https://miofactor.com/2023/03/'>2023年3月</a></li> <li><a href='https://miofactor.com/2023/02/'>2023年2月</a></li> <li><a href='https://miofactor.com/2023/01/'>2023年1月</a></li> <li><a href='https://miofactor.com/2022/12/'>2022年12月</a></li> <li><a href='https://miofactor.com/2022/11/'>2022年11月</a></li> <li><a href='https://miofactor.com/2022/10/'>2022年10月</a></li> <li><a href='https://miofactor.com/2022/09/'>2022年9月</a></li> <li><a href='https://miofactor.com/2022/08/'>2022年8月</a></li> <li><a href='https://miofactor.com/2022/07/'>2022年7月</a></li> <li><a href='https://miofactor.com/2022/06/'>2022年6月</a></li> <li><a href='https://miofactor.com/2022/05/'>2022年5月</a></li> <li><a href='https://miofactor.com/2022/04/'>2022年4月</a></li> <li><a href='https://miofactor.com/2022/03/'>2022年3月</a></li> <li><a href='https://miofactor.com/2022/02/'>2022年2月</a></li> <li><a href='https://miofactor.com/2022/01/'>2022年1月</a></li> <li><a href='https://miofactor.com/2021/12/'>2021年12月</a></li> <li><a href='https://miofactor.com/2021/11/'>2021年11月</a></li> <li><a href='https://miofactor.com/2021/10/'>2021年10月</a></li> <li><a href='https://miofactor.com/2021/09/'>2021年9月</a></li> <li><a href='https://miofactor.com/2021/08/'>2021年8月</a></li> <li><a href='https://miofactor.com/2021/07/'>2021年7月</a></li> <li><a href='https://miofactor.com/2021/06/'>2021年6月</a></li> <li><a href='https://miofactor.com/2021/05/'>2021年5月</a></li> <li><a href='https://miofactor.com/2021/04/'>2021年4月</a></li> <li><a href='https://miofactor.com/2021/03/'>2021年3月</a></li> <li><a href='https://miofactor.com/2021/02/'>2021年2月</a></li> <li><a href='https://miofactor.com/2021/01/'>2021年1月</a></li> <li><a href='https://miofactor.com/2020/12/'>2020年12月</a></li> <li><a href='https://miofactor.com/2020/11/'>2020年11月</a></li> <li><a href='https://miofactor.com/2020/10/'>2020年10月</a></li> <li><a href='https://miofactor.com/2020/09/'>2020年9月</a></li> <li><a href='https://miofactor.com/2020/08/'>2020年8月</a></li> <li><a href='https://miofactor.com/2020/07/'>2020年7月</a></li> <li><a href='https://miofactor.com/2020/06/'>2020年6月</a></li> <li><a href='https://miofactor.com/2020/05/'>2020年5月</a></li> <li><a href='https://miofactor.com/2020/04/'>2020年4月</a></li> <li><a href='https://miofactor.com/2020/03/'>2020年3月</a></li> <li><a href='https://miofactor.com/2020/02/'>2020年2月</a></li> <li><a href='https://miofactor.com/2020/01/'>2020年1月</a></li> <li><a href='https://miofactor.com/2019/12/'>2019年12月</a></li> <li><a href='https://miofactor.com/2019/11/'>2019年11月</a></li> <li><a href='https://miofactor.com/2019/10/'>2019年10月</a></li> </ul> </aside> </div> <!-- /l-sidebar --> </div> <!-- /l-wrapper --> <div class="categoryBox"> <div class="container"> <h2 class="heading heading-primary"> <span class="heading__bg u-txtShdw bgc-darkgray">OTHER</span>カテゴリの最新記事 </h2> <ul class="categoryBox__list"> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/11/09/post-38262/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/ios-554x410.png" alt="iOS関連のことを調べてみた" width="554" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.11.09</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/11/09/post-38262/">iOS関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/11/09/post-38258/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/java.jpg" alt="JAVA関連のことを調べてみた" width="540" height="270" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.11.09</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/11/09/post-38258/">JAVA関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/11/09/post-38259/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/js-554x410.png" alt="JavaScript関連のことを調べてみた" width="554" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.11.09</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/11/09/post-38259/">JavaScript関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/11/09/post-38256/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/rails-725x410.png" alt="Rails関連のことを調べてみた" width="725" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.11.09</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/11/09/post-38256/">Rails関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/11/09/post-38252/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/python-640x410.png" alt="Python関連のことを調べてみた" width="640" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.11.09</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/11/09/post-38252/">Python関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/11/09/post-38253/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/lambda.png" alt="Lambda関連のことを調べてみた" width="360" height="230" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.11.09</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/11/09/post-38253/">Lambda関連のことを調べてみた</a> </h2> </li> </ul> </div> </div> <!-- schema --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Article ", "mainEntityOfPage":{ "@type": "WebPage", "@id": "https://miofactor.com/2024/03/07/post-31576/" }, "headline": "JavaScript関連のことを調べてみた", "image": { "@type": "ImageObject", "url": "https://miofactor.com/wp-content/uploads/2019/10/lambda.png", "height": "230", "width": "360" }, "datePublished": "2024-03-07T16:41:28+0900", "dateModified": "2024-03-07T16:41:28+0900", "author": { "@type": "Person", "name": "editor" }, "publisher": { "@type": "Organization", "name": "f@ctor", "logo": { "@type": "ImageObject", "url": "", "width": "", "height":"" } }, "description": "目次 1. How to post in this2. mouseup イベント後、要素外で mousedown されるとイベントが発火せず困るので何とかしたい3. 【JavaScript】async / await(fetch api)でQiita apiから記事情報を取得する方法【非同期処理】4. JSでリンク入りカレンダー作ってみた5. トグルリスト(アコーディオン)に transition […]" } </script> <!-- /schema --> <!--l-footer--> <footer class="l-footer"> <div class="container"> <div class="pagetop u-txtShdw"><a class="pagetop__link" href="#top">Back to Top</a></div> <div class="widgetFoot"> <div class="widgetFoot__contents"> </div> <div class="widgetFoot__contents"> <aside class="widget widget-foot"><h2 class="heading heading-footer">タグ</h2><div class="tagcloud"><a href="https://miofactor.com/tag/%e3%81%9d%e3%81%ae%e4%bb%96/" class="tag-cloud-link tag-link-13 tag-link-position-1" style="font-size: 8pt;" aria-label="その他 (1個の項目)">その他</a></div> </aside> </div> <div class="widgetFoot__contents"> </div> </div> <div class="copySns "> <div class="copySns__copy"> © Copyright 2024 <a class="copySns__copyLink" href="https://miofactor.com">f@ctor</a>. <span class="copySns__copyInfo u-none"> f@ctor by <a class="copySns__copyLink" href="http://fit-jp.com/" target="_blank">FIT-Web Create</a>. Powered by <a class="copySns__copyLink" href="https://wordpress.org/" target="_blank">WordPress</a>. </span> </div> </div> </div> </footer> <!-- /l-footer --> <script type="text/javascript" src="https://miofactor.com/wp-includes/js/comment-reply.min.js?ver=6.4.1" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script> function toggle__search(){ extra__search.className="l-extra"; extra__menu.className="l-extraNone"; menuNavi__search.className = "menuNavi__link menuNavi__link-current icon-search "; menuNavi__menu.className = "menuNavi__link icon-menu"; } function toggle__menu(){ extra__search.className="l-extraNone"; extra__menu.className="l-extra"; menuNavi__search.className = "menuNavi__link icon-search"; menuNavi__menu.className = "menuNavi__link menuNavi__link-current icon-menu"; } </script><script>Array.prototype.forEach.call(document.getElementsByClassName("css-async"),function(e){e.rel = "stylesheet"});</script> </body> </html>