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

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

[React] useStateとは

# まとめ

#### `useState`とは
> `useState`は、コンポーネントに`state`変数を追加するためのReactフックです。
※[React](https://ja.react.dev/reference/react/useState)

`useState`は、Reactの関数コンポーネントで状態(state)を管理するためのフックです。`useState`を使用することで、状態変数を作成し、その状態を更新する関数を提供します。

# 目次
– [基本構文](#基本構文)
– [活用例1:`useState`のみ](#活用例1:`useState`のみ)
– [活用例2:`useState`と`filter`メソッド](#活用例2:`useState`と`filter`メソッド)
– [活用例3:`useState`と`filter`メソッドと`indexOf`メソッド](#活用例3:`useState`と`filter`メソッドと`indexOf`メソッド)

# 基本構文
~~~JS:JavaScript
const [state, setState]

元記事を表示

css / js / svg に於ける それぞれの アニメーションサンプルを作成してみた

# というわけでサンプル

See the Pen
css / js / svg animation sample
by juner clarinet (@juner)

元記事を表示

「読める、読めるぞ!」法律系じゃなくても楽しく条文が読めるWebアプリ《法令.app》

:mouse_three_button:[《法令.app》「ほうれいアプリ」と読みます。⬇️クリックして体験してください。登録も追跡もありません!(2018年辺りより前のスマホだと機能制限の可能性アリ)](https://jplaws.app)

:bird: 私「[E-Gov法令検索](https://elaws.e-gov.go.jp/)のデータを使ってアプリを作りました。関連する法令にリンクを張って飛べるようにしました。元号はわかりやすく西暦に変換しました!」

・・法律系の開発をされてた方なら、こう思うでしょう。

> 「そういうの10年くらい前からあるから」
> 「プロ向けに、より多機能で完成されたのがいっぱいある。今さらどうしたの?」
> 「E-Gov法令検索わりと使える。あれでいいよ」

・・それ以外の大多数の方は・・

> 「まず、法律の条文、読む?」

あんまり読む人いませんね!ニッチな分野です。ただ、私は仕事の資格を取るときに「[E-Gov法令検索](https://elaws.e-gov.go.jp/)」をよく読んでいました。国の「重厚長大な」サービスですが、意外

元記事を表示

テトリスの著作権について考える

# 1\. このページで目指すもの
「テトリスを参考にしたゲームを作り公表したいけど、どこまでオリジナルのテトリスから離れれば著作権の保護対象外となるのか」について調査・考察し、自分なりの結論を出します。

# 2\.参考にしたもの
> A) [ゲームの「ルール(アイデア)/表現」の境目が示された!?米国テトリス事件ーTetris Holding, LLC v. Xio Interactive, Inc.ー](https://maeshibu.com/2023/01/07/tetrisvxio/) 2023年1月7日

> B) [“砂テトリス”こと 『Setris』、テトリス社側より「タイトルと音楽似すぎ」と著作権侵害通知受けたとして配信停止。しかし改名などして配信マッハ再開](https://automaton-media.com/articles/newsjp/20230703-254324/)

> C) [テトリスの著作権について【自作テトリスを公開したら違法?】](https://hotnews8.net/society/tetris-copyright)

# 3\.結論

元記事を表示

Twitter風 タブの切り替え

railsでjsによるツイッターのようnタブの切り替えを実装しました。

“`html

  • レビュー
  • お気に入り
  • 行ってみたいリスト
    <% @user_reviews.each do |user_review| %>
     

  • useCallback/useMemo/React.memoをどこで使うか、イメージで頭に叩き込む

    ## はじめに
    できるだけ文章量を減らして見た目とイメージで。

    ## useEffect内でpropで渡ってくる関数を呼ぶ際
    `useCallback`と`useMemo`を使い関数が何度も呼ばれるのを防ぐ。

    “`jsx
    const Parent = () => {
    // useCallbackを使わないとParentがレンダリングする度に
    // aが新しく作られ、ChildのuseEffect内のfooも毎回実行されてしまう
    const a = useCallback(() => {}, []); // 何かしらの関数
    // 関数にはcallback、オブジェクトと配列にはuseMemoを使う
    // (useMemoを使わないとレンダリング毎に参照が変わるため)
    const b = useMemo(() => [1, 2, 3], []);
    return ;
    };

    const Child = ({ a, b }) => {
    useEffect(() => {
    const options = {

元記事を表示

wijmo のGrid作成について

こんにちは塚田と申します。

今回はWijmo(ウィジモ)を紹介します。
Wijmo(ウィジモ)はメシウスが販売するWebアプリケーション開発で使われるJavaScriptライブラリです。

データグリッド、チャート、ゲージ、入力、ナビゲーションなどの
Webページを作成する際に必要となる部品を提供するJavaScriptライブラリです。今回はその一部の**データグリッド**を紹介します。

※画像は公式HPのサンプルを載せています
URL:https://demo.mescius.jp/wijmo/demos/Grid/Overview/purejs

# Gridの表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3801327/de0de0fe-7464-11f5-7902-d75aa0030680.png)

つづいてサンプルコード↓

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

Vanilla Javascriptで Fade In / Out

個人的によく使うので残しておきます。:desktop:

## Javascript
### Fade In 関数
| 引数 | 型 | 説明 |
|:-:|:-:|:-:|
| element | HTMLElement | フェードインする要素 |
| display | String | 要素に適用する表示スタイル。デフォルトは”block” |
| duration | Number | アニメーションの時間をミリ秒で指定 |

“`javascript
const fadeInElement = (element, display, duration) => {
const startTime = performance.now();
element.style.display = display || “block”;

function animate(currentTime) {
const elapsedTime = currentTime – startTime;
const opacity = elapsedTime / durati

元記事を表示

Fastify で 静的HTMLファイルのフロントエンドに書かれたロジックを AJAX を用いてバックエンドに移行するプロセス

## 1. Fastify、AJAX とは

– FastifyはAPIサーバーの構築に非常に適した高性能なNode.jsフレームワークです
– AJAXとは、Asynchronous JavaScript and XMLの略称で、Web アプリケーションでデータを非同期的に転送する通信手法のことを指します

## 2. 内容:
静的HTMLファイルをFastifyを用いてホスティングします。さらにスクリプト内のロジックをAJAXを用いてバックエンドに移行することを実現できたので、その過程・内容についてまとめます。
題材はAtCoderの問題 [ABC053A](https://atcoder.jp/contests/abc053/tasks/abc053_a)を簡易なwebアプリにしたものです。

## 3. Fastify のインストール・実行・閲覧
Node.jsがインストールされていることを確認した上で、Fastifyをinstallします。
### インストール
“`
npm install fastify
“`
### 実行
“`
node server.js

元記事を表示

いろいろな命名規則まとめ

# 初めに
命名規則って結構言語ごとによって決まりが違うので、久しぶりに使う言語とか初めて使う言語とかとにかく普段使ってない言語だと命名規則がわからなくなるんですよね。

なので、まとめちゃいました。

# 各プログラミング言語の一般的な命名規則

プログラミング言語ごとに異なる命名規則を守ることで、コードの可読性と一貫性を高めることができます。

## Python
– **変数名**:`my_variable`
– **説明**:Pythonではスネークケースが推奨され、単語はアンダースコアで区切る
– **関数名**:`def my_function():`
– **説明**:関数名もスネークケースで記述され、可読性が高まる
– **クラス名**:`class MyClass:`
– **説明**:クラス名はパスカルケースで、各単語の先頭を大文字にする
– **定数名**:`MY_CONSTANT = 10`
– **説明**:定数はすべて大文字で、アンダースコアで単語を区切る
– **ファイル名**:`my_script.py`
– **説明**:ファイル名

元記事を表示

Javascript で Todo リストを作成してみた。(作成編集削除あり)

# はじめに
みなさん、こんにちは。**torihazi**です。

今日はVanillaJSでTodoリストを作ってみました。

ネットで色々調べても編集だったり削除とかだったりを実装している記事が

見当たらなかったのでそういった方のための助けになればと思い

書いてみました。

※タグにも記載ありますが、初心者です。
間違いが無いように最善を尽くしていますが、
もしあればコメント等でそっと指摘をいただけますと幸いです。

# どんなものができるか。
こんな感じのものです。

https://x.com/torihazi/status/1795577514620055928

# コード(結論だけ知りたい方へ)
“`html:index.html




#3 【React】ResizeObserverでDOM要素のサイズを監視する

# はじめに

DOM要素のサイズが変更されたことを検知して、そのサイズにあったコンポーネントの表示に変更したいといったことがあるかと思います。

ReactではuseRefを使用することでDOM要素にアクセスすることが可能ですが、変更があってもコンポーネントが再レンダリングされないためDOM要素のサイズ変更を検知することができません。

そういった場合には、ResizeObserverというWebAPIを使うことで実現することができます。

## サンプルコード

以下、サンプルコードになります。右端を選択してドラッグするとプレビューで動作を確認できます。
(プレビューをデフォルトで表示する方法がわかる方教えてください:bow_tone2:)

画面にDiv要素が表示されていて、リサイズするとdiv内に表示しているwidthの値が変更されるサンプルになります。

https://codesandbox.io/embed/d8jwdk?view=editor+%2B+preview&module=%2Fsrc%2FApp.tsx&fontsize=12&previewwindow=br

元記事を表示

MapLibre GL JSを使ってGeoJSONファイルを読み込み町丁目ポリゴンを表示させる

## 概要説明
MapLibre GL JSを使って地図上にGeoJsonファイルを読み込み町丁目ポリゴンを表示させてみました。この記事は[Mapbox GL JSを使って町丁目ポリゴンを表示してみる](https://qiita.com/Book-Ma/items/2cfc5bc68606bd6e2366)のMapLibre版です。
## 使用したもの
### MapLibre GL JS
オープンソースのJavaScript地図ライブラリです。
当初はMapbox GL JS v1.13.0のフォークという位置付けでしたが、現在は独自路線へシフトし、ベクトルタイルを中心としたWeb地図のエコシステムを担うようになっています。
Mapbox GL JSとほぼ同じようにコードを書くことができます。またMapLibre GL JSではアクセストークンが不要であるため導入しやすさといった点でメリットがあります。

https://maplibre.org/maplibre-gl-js/docs/

### OpenStreetMapのベクトルタイル
今回の背景地図として使用しました。

h

元記事を表示

Vue.jsでライブラリを使用せずカレンダーを作成する:取得データの渡し方

# ◾️ はじめに
 Vue.jsを学習中のエンジニアです👩🏻‍💻
 今回、Vueのライブラリを使用せずにカレンダーを作成中に発生したエラーについて記事を書こうと思います。カレンダーのライブラリを使用しない理由は、カレンダーを好みのデザインやカスタマイズを行う際に、ゼロから作成した方が操作しやすいと考えたからです。
# ◾️ データの渡し方
**前提**:
– 6×7の日曜日スタートのカレンダーを作成
– 当月が日曜から始まらない部分に前月を表示
– 当月最終日から42マス目までは次月を表示
### ◉ やりたいこと
**『カレンダーの月が変更されると、その月ごとに日付を取得し、日付を管理するコンポーネントで表示できるようにする』**

① TypeScriptファイルの`useYearMonthDate.ts`の**allDates**でカレンダーの日付を取得
“`useYearMonthDate.ts
import { computed, ref } from ‘vue’

export const useYearMonthDate = () => {
// exports

元記事を表示

高階関数の基本 [JavaScript]

JavaScriptにおける高階関数とは?
高階関数はさまざまなプログラミング言語で使用することができ、
主に2つの役割があります。

高階関数の役割。

:::note info
1、引数として関数を受け取る、関数
2、戻り値に関数を指定する、関数
:::

また、一般的に高階関数はプログラムの柔軟性と簡潔性を向上させるために利用されます。

関数を受け取る関数?関数を指定する関数?
とは一体なんなのでしょうか?

1つずつわかりやすく噛み砕いて説明していきます。

## 目次:
– [高階関数 「関数を引数として受け取る」](#高階関数-関数を引数として受け取る)
– [高階関数 「戻り値に関数を指定する」](#高階関数-戻り値に関数を指定する)

## 高階関数 「関数を引数として受け取る」

関数は、値なので、変数に入れることができます。

#### 例: 変数に関数式を代入

“`js
let greet = function() {
console.log(“Hello”);
}

greet()
“`

こちらの例では、greetという変数の中に、関数

元記事を表示

【インクリメント演算子】hoge++ と ++hoge の違いとは

# 目次
この記事は2分ほどで読めます。
[1. 問題](#1-問題)
[2. 解説](#2-解説)
[3. 結局どちらを使えば良いか](#3-結局どちらを使えば良いか)

# 1. 問題
“`
// JavaScriptの場合
let hoge = 10;
console.log(++hoge);
console.log(hoge++);
“`
“`
// Javaの場合
int hoge = 10;
System.out.println(++hoge);
System.out.println(hoge++);
“`

Q: 上記コードを実行したときにどのように表示されるでしょうか?(補足:JavaScriptとJavaの実行結果は同じになります)

考え中・・・

A: 正解は以下のとおりとなります
“`
11
11
“`
# 2. 解説
– hoge++と++hogeの挙動の違いを一言で表すと「変動`前`の変数を返すか変動`後`の違いを表すか」です。
– ++hogeのように++を変数前につけた場合は

元記事を表示

JavaScriptのグローバルオブジェクト:this と Function(‘return this’)()

# はじめに

https://qiita.com/kohki_takatama/items/5f1c6f75e6bbf6553682

https://qiita.com/kohki_takatama/items/430640e13e3fa497df2e

先日から、JavaScriptのグローバルオブジェクトについて記事を書いてきました。

記事を書くたびにコメントから学びがあり、ありがたい限りです。
今回もコメントいただいた`this`と`Function(‘return this’)()`について

# `this` / `Function(‘return this’)()` のメリット

最初に、今回紹介するものを使うメリットを示します。

基本的には`globalThis`で良さそうなのですが、`globalThis`は比較的新しい機能のようで、レガシー(古い)環境では対応していない可能性が考えられます。

その点、`this` / `Function(‘return this’)()` はより古くから使用されているため、レガシーな環境を想定するならこちらを使うと良いようで

元記事を表示

GoogleChromeの拡張機能を作ってみよう

こんにちは、WEBエンジニアの堀井です。

今回は、GoogleChromeを利用している方は、一度は使ったことがあるであろうChrome拡張機能の作成方法について書いていきたいと思います。

## Chrome拡張機能とは

[Chromeウェブストア](https://chromewebstore.google.com/category/extensions)からインストールすることのできる、ブラウザ上で動作する拡張機能のことです。

主にGoogleChromeやEdgeで利用することができます。

有名なものだと、選択した文章を翻訳することができる「Google翻訳」や、ブラウザ上にある色のカラーコードを取得できる「ColorZilla」などがあります。

## 作り方

公式のドキュメントがありますので、こちらを参考にしました。

https://developer.chrome.com/docs/extensions?hl=ja

今回は、拡張機能をクリックすると運勢がわかるおみくじ拡張機能を作成します。

必要なファイルは以下になります。

*

元記事を表示

複数の非同期関数で実行されるset更新関数でハマった件

# はじめに

フロントエンドを React で書いていて非同期関数内で実行される更新関数(set 関数)でハマったのでメモしておきます。

## 実際に起こったこと

以下のように外部 API からオブジェクトのデータを別々に取得して、それぞれのデータでオブジェクトを更新する処理を書いたとします[^1]。
API を叩いた結果を用いたそれぞれの更新関数 setHuman の引数は**関数ではなく、現在の値を利用した値で更新しています。**

“`javascript
import React, { useState } from “react”;

const sleep = async (sec) => new Promise((resolve) => setTimeout(resolve, sec));
const mockGetNameApi = async () => {
await sleep(100);
return “hoge”;
};
const mockGetAgeApi = async () => {
await sleep(500);
ret

元記事を表示

永久無料QRコード生成ウェブサイト:簡単、効率的、信頼性

皆さん、こんにちは。Qiitaのみなさまへ。

今回、私たちは喜んでお知らせいたします。永久無料のQRコード生成ウェブサイトが新たに登場しました!このシンプルで効率的なツールを利用することで、世界中のユーザーが簡単にQRコードを生成し、ダウンロードすることができます。

[ウェブサイトのURL] (https://qr.tehito.com)

![qr.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3801337/baac37ac-ef6f-750e-e993-0e35f0d46f77.png)

現代の急速なデジタル化された世界において、QRコードはビジネスや個人にとって欠かせないツールとなっています。小規模なビジネスオーナーやマーケター、情報を迅速かつ効率的に共有したい方々にとって、QRコードは便利な解決策を提供しています。しかし、信頼性の高い、使いやすいQRコード生成ツールを見つけることは難しいことです。

それが私たちのウェブサイトの役割です。私たちは、完全無料で誰でもアクセス可能なシンプ

元記事を表示

OTHERカテゴリの最新記事