- 1. JavaScriptを基本からまとめてみた【11】【onchangeイベント】
- 2. 【JavaScript】 海外Teck系YouTuberを真似てみた!(part 5) Typing Game
- 3. Selenium(JavaScript環境)のtakeScreenshotでエラーが出たときの対応
- 4. JavaScript: 画像から色を抽出してくれるColor Thief
- 5. JavaScriptで個人的によく使う操作
- 6. nuxtjsにfabricjsを導入するときの手順
- 7. web会議が終わったら お礼メール自動作成 PADで業務をスリムに !
- 8. これだけはおさえておきたいTypeScriptの機能
- 9. 文字コードを指定してハッシュ値を算出する(Node.js)
- 10. 【React / Next.js】環境変数を呼び出せなくてハマった
- 11. 【Handsontable】セル内HTML要素の表示(Nested HTML)の実現
- 12. 【初心者向け】6時間で完成。Vue.jsを学び始めて4か月の成果として、子どもの勉強復習用アプリを作ってみた。
- 13. 【Webpack】webpack.config.jsの内容がいまいちわからない方々へ
- 14. React Hooksを理解し、無限ループを防ぐ
- 15. 連想配列に関数を保存して呼び出す
- 16. #つぶやきProcessing で気になった作品を p5.js Web Editor で動かしてみる 【その2】
- 17. JavaScriptを基本からまとめてみた【10】【classList.addメソッド】
- 18. JavaScript 配列 オブジェクト
- 19. D3jsのselectionとdata joinを実験する
- 20. React.js&Next.js超入門 第2版の無限ループのバグ修正
JavaScriptを基本からまとめてみた【11】【onchangeイベント】
##はじめに
####学習するに至った経緯
2020年より、未経験からエンジニアへの転職を目指し、某プログラミングスクールへ通う。
入学後、『Ruby』を未経験から学ぶ人が多いのと『Ruby』の求人が思っていた以上に少ないので、
卒業後、フロントエンドのエンジニアを目指す事に。
Javascriptの学習した事を言語化し、認識の深化による備忘録として記載。##JavaScriptのonchangeイベントとは
『onchangeイベント』とは、入力欄の内容を変更した時のイベント。JavaScriptでプログラミングを行っていると、ユーザーの入力に合わせて動的に表示内容を変えたい場合に便利なのがonchangeイベントで、HTML要素の値の変更が完了した時に発生するイベント。対象のHTML要素は と
##onchangeイベントの書き方
【JavaScript】 海外Teck系YouTuberを真似てみた!(part 5) Typing Game
#1,はじめに
この記事は、海外Teck系YouTuberの動画を参考に、同じプロジェクトを作成してみたものになります!
簡単にですが、動画を通して学べた技術や知識をまとめました!今回の完成品は、下記に載せています:bangbang:
#2,学んだこと
**async await**の記述方法
**fetch**の記述方法#3,参考動画
JavaScript: 画像から色を抽出してくれるColor Thief
[10 Trending projects on GitHub for web developers – 13th August 2021](https://dev.to/iainfreestone/10-trending-projects-on-github-for-web-developers-13th-august-2021-4bf2) で紹介されていた Color Thief というもの。
https://lokeshdhakar.com/projects/color-thief/#examples
https://github.com/lokesh/color-thief
「例」引用:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93824/6e985eb5-208e-b8b0-7432-396c3d40d91f.png)## 画像から色を抽出してくれる Color Thief
![image.png](https://qiita-image-store.s3
JavaScriptで個人的によく使う操作
## URLを操作
### URL各要素取得“` JS
let url = new URL(location);let href = location.href;
let host = location.hostname;
let port = location.port;
let path = location.pathname;
let query = location.search;
let protocol = location.protocol;
“`###ブラウザー履歴エントリに state, title, url をセット
画面に更新をかけたくはない。
けどURLを更新したいというときに使ってます。“` JS
const url = new URL(window.location);
url.searchParams.set(‘foo’, ‘bar’);
window.history.pushState({}, ”, url);
“`### 参照
https://developer.mozilla.org/ja/docs/Web/API
nuxtjsにfabricjsを導入するときの手順
nuxtjsにfabricjsを導入するときの情報が少なかったのでそのメモです。
## 必要な項目のインストール
“`
yarn add fabric
yarn add canvas
“`package.jsonとyarn.lockに追加される。
plugin直下に`fabric.js`ファイルを作成。
“`fabric.js
import { fabric } from ‘fabric’
import Vue from ‘vue’Vue.use(fabric)
export default fabric
“`nuxt.config.jsに情報を追加
“`nuxt.config.js
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
plugins: [
{
src: ‘@/plugins/fabric’,
mode: ‘client’
}
],
“`## 実際のコード
これは赤い四角形を表
web会議が終わったら お礼メール自動作成 PADで業務をスリムに !
## メール作成の時間を圧縮したい!
web会議、本当に多くなりましたよね。手軽に実施できる反面、日程調整でメール数往復。
スケジューリングが大変だった会議ほど、終了後、毎回やっぱりメールでお礼を伝えたい。
**「web会議が終わり次第お礼メール作成」自動化できないかなぁ**## 「会議終わり次第 お礼メール自動作成」作ってみた
Power Automate Desktopで作成 (今回はTeamsでのweb会議に限定)
これだけはおさえておきたいTypeScriptの機能
参考サイト:[これだけはおさえておきたいTypeScriptの機能](https://book.yyts.org/features)
※体系的に学べるというよりも、実際の開発で頻繁に使用するもの、これだけはおさえておきたい機能を中心に取り上げる。
[1.プリミティブ型] (https://qiita.com/Nakazawa-musc/items/171468674a735cd1840d#1%E3%83%97%E3%83%AA%E3%83%9F%E3%83%86%E3%82%A3%E3%83%96%E5%9E%8B)
[2.リテラル型](https://qiita.com/Nakazawa-musc/items/171468674a735cd1840d#2%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB%E5%9E%8B)
[3.anyとunknown](https://qiita.com/Nakazawa-musc/items/171468674a735cd1840d#3any%E3%81%A8unknown)
[4.構造的部分型 (Structur
文字コードを指定してハッシュ値を算出する(Node.js)
# Node.jsでハッシュ値を算出する
これは、私が業務でとあるAPIのリクエストを作成していた時のことです。そのAPIは、ある文字列からハッシュ値を算出して、
そのハッシュ値が一致するかどうかで認証を行っていたんです。だから以下のようなコードからハッシュ値を算出して、リクエストを投げて、
レスポンスを取得できていました。“`js
const crypto = require(‘crypto’);const data = ‘abcdefg’;
// ハッシュ値を算出(md5)
const hash = crypto.createHash(‘md5’).update(data).digest(‘hex’);console.log(hash); // 7ac66c0f148de9519b8bd264312c4d64
“`
ビルトインモジュールの`crypto`を使うだけでハッシュ値を算出できるなんて、手軽でいいなあと思っていました。
何も問題は無かったんです。ハッシュ値を算出する文字列に、**マルチバイト文字**が含まれるまでは…。
## hash.up
【React / Next.js】環境変数を呼び出せなくてハマった
# はじめに
普通の“React“と“Next.js“で環境変数の設定方法が異なることを知らず、“APIキー“を呼び出せずハマってしまった。かなり初歩的です。
# .env ファイルで定義
まず、プロジェクトのルートディレクトリに“.env“ファイルを作成する。
(“.gitignore“に記述して“git“管理外にしておく)“APIKEY“を設定する例としてます。
### React の場合
環境変数定義の際、変数名の最初に“REACT_APP_“をつける“`..env
REACT_APP_APIKEY=”xxxxxxxxxxxxxxxxxxxxxxx”
“`### Next.js の場合
環境変数定義の際、変数名の最初に“NEXT_PUBLIC_“をつける“`..env
NEXT_PUBLIC_APIKEY=”xxxxxxxxxxxxxxxxxxxxxxx”
“`# js(もしくはts)ファイルで呼び出す
“React“の場合でも“Next.js“の場合でも“process.env.環境変数名“で
【Handsontable】セル内HTML要素の表示(Nested HTML)の実現
# はじめに
前記事で、セル内にグリッド表示を行いました。https://qiita.com/yaju/items/6856553510bca3ae913a
参考にしたグレープシティ社のWijmo(ウィジモ)のグリッド:詳細行のページに「グリッドを表示」とは別に「HTML要素を表示」というのがあり、これなら前記事を応用すればすぐ出来そうだと思ったので作成してみました。
https://demo.grapecity.com/wijmo/demos/Grid/Master-Detail/NestedGrids(RowDetail)/purejs
Handsontableでは、セル内にHTML要素を表示させるのは図の表示やリンク先などで一般的に使用可能です。
あくまで列ごとに表示形式を設定しています。https://handsontable.com/docs/cell-renderer/#rendering-custom-html-in-cells
今回のは、階層で展開した行のセル内にHTML要素を表示するという違いがあります。
# 環境
HandsontableはMITラ
【初心者向け】6時間で完成。Vue.jsを学び始めて4か月の成果として、子どもの勉強復習用アプリを作ってみた。
# はじめに
2021年6月からメンターさんに伴走してもらいながらVue.jsを学習しています。 その前1~2か月ほどは独学で学習を進めていましたので、現時点で学習期間としてはだいたい4か月ちょっとです。
学習内容のアウトプットとして、簡単でもいいので何か自分でアプリを作ろうと思い、子どもが勉強の復習をするときに使えそうなアプリを作ってみました。## アプリの概要
https://sgk-switch.github.io/vuesample1/* 「問題一覧」で復習したい問題を入力します。(科目を追加したい場合は「科目一覧」から追加します)
* 科目と問題数を選択し、STARTをクリックすると、登録されている問題からランダムに出題されます。 (テストなどで間違えた問題を登録する→解きなおす、みたいなイメージです)![qiita-min.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1840063/dd2c4b5e-ebbb-430f-0244-b7c76e045aca.gif)
【Webpack】webpack.config.jsの内容がいまいちわからない方々へ
#はじめに
Webpackは、JavaScript, CSS, JPGなどのリソースを一つのjsファイルにバンドルする(まとめる)ツールです。
バンドルすることで、各リソースの依存関係を気にする必要がなくなり、不適切な順序でファイルが実行されるような心配がなくなります。モダンなJS開発でほぼ必須のWebpackですが、設定ファイル`webpack.config.js`の中身についていまいちよくわかっていませんでした。
設定ファイルを自由にカスタムできるようになれば開発の幅も広がる気がしたので、以下の基本項目について学びなおしました。– Entry & Output
– Asset Modules
– Loaders
– Plugins
– Mode#Entry & Output
バンドル設定の手始めとして、`entry`に入力ファイルのエントリーポイント、`output`にバンドル後の出力ファイル名`filename`と作成パス`path`を指定してあげる必要があります。
作成パスは絶対パスで記述する必要があるため、Node.jsの`path`モジュールを使い、`path.
React Hooksを理解し、無限ループを防ぐ
ReactのHooksについて、ステートフックの更新、関数コンポーネントがいつ再実行されるかや副作用フックがいつ呼び出されるかについて、調べてもシンプルに情報がまとまって出てこなかったのでメモします。
私はこの辺について理解していなかったために、ステートの更新で無限ループが発生し対処に苦しみました。
# 前提
以下のコードは`npx start creat-react-app プロジェクト名`で生成される`プロジェクト名/src`ディレクトリ内の`App.js`を編集してデバッグしていることを前提にしています。# ステートフックの基本
`useState`で設定したステートの値を更新すると、再レンダリング、つまり関数コンポーネントが再実行されます。下記コードでは`data`には初期値として文字列`foo`が設定されていましたが、ボタンをクリックすると、`bar`に変更されるので、コンポーネントが再実行されます。そしてそれ以降ボタンを押しても、ステートが更新されないので、これ以上再実行されることはありません。
“`App.js
import {useState} from
連想配列に関数を保存して呼び出す
キーボードショートカットを実装していて、関数を連想配列に保存して管理したくなった。
#ダメな例
連想配列にそのまま関数を保存すると、読み込み時に実行されてしまう。“`javascript:dame.js
const sc = {
s:save(),
l:load()
};
sc[‘s’]; //save()を呼び出したいけど失敗
“`
#成功例“`javascript:ok.js
const sc = {
s:function(){save()},
l:function(){load()}
};
sc[‘s’](); //save()が実行される
“`#ショートカット実装時のtips
“`javascript:shortcut.js
$(function(){
const sc = {
s:function(){save()},
l:function(){load()}
};
$(document).on(‘keydown’,function(e){
if(e.ctrlKey){ //コントロールキー押下判断
var key=
#つぶやきProcessing で気になった作品を p5.js Web Editor で動かしてみる 【その2】
以前、以下のようなことをやりましたが、その第二弾です。
●#つぶやきProcessing で気になった作品を p5.js Web Editor で動かそうとしてみる【 #GWアドベントカレンダー 2021/5/2 】 – Qiita
https://qiita.com/youtoy/items/0806ba53db59261da3f8今回、動かすだけなら Processing用の処理を書いていたもの以外は何も書きかえる必要がなかったので、プログラムを短く書くために工夫された箇所をばらすような形で書きかえをしてみたのですが、 #つぶやきProcessing用の記法を知ることができました。
## つぶやきProcessing で見かけた作品
今回、p5.js で実装してみるものは、以下の5つです。### 1つ目
JavaScriptを基本からまとめてみた【10】【classList.addメソッド】
##はじめに
####学習するに至った経緯
2020年より、未経験からエンジニアへの転職を目指し、某プログラミングスクールへ通う。
入学後、『Ruby』を未経験から学ぶ人が多いのと『Ruby』の求人が思っていた以上に少ないので、
卒業後、フロントエンドのエンジニアを目指す事に。
Javascriptの学習した事を言語化し、認識の深化による備忘録として記載。##classListとは
『classList』とは特定の要素のクラス名を追加したり、削除したり、参照したりすることが出来る便利なプロパティで、classListの後にメソッドを定義することにより、追加削除などの機能を指定することができる。#####classListに用意されているメソッド
|メソッド名 |機能 |
|——–|——|
|add |クラスを追加する |
|remove |クラスを削除する |
|contains |クラスが含まれているか確認する |
|toggle |クラスが含まれていれば削除、含まれていなければ追加する |##addメソッドとは
『a
JavaScript 配列 オブジェクト
JavaScriptの学習の備忘録と振り返りの記事です。
何かの参考になれば幸いです。
付け足しや訂正などある場合ご教授いただけると
大変嬉しく思います!!#配列とは
複数の値(要素)をまとめて管理するときに用いるもの
**書き方**
[値1,値2,値3]**代入の仕方**
const 定数名 = [“値1”,”値2”,”値3”];“`js
const favorite = [movie,interior,art];
“`**要素の取得の仕方**
console.log(配列名[インデックス番号]);“`js
console.log(favorite[movie]);
“`
:::note warn
インデックス番号は「0」から数える
:::**値の更新の仕方**
配列名[インデックス番号] = 新しい値;“`js
favorite[1] = “shopping”;
“`##オブジェクトとは
オブジェクトは配列と同じく複数のデータをまとめて管理するのに用います。
それぞれの値にプロパティと呼ばれる名前をつけて管理します。
**書き方**
{
D3jsのselectionとdata joinを実験する
# 概要
SVGを表示するために [D3js](https://d3js.org/) を利用したいのだが、JSコード上で動的に操作するデータに対応するSVGツリーの構築方法が特徴的だったので実験してみた。JS 上でデータ配列を操作したときに、データ配列の各要素に対応する DOM element を追加、更新、削除する。(最終的には SVG の要素の操作が目的だが、ここではシンプルに HTML DOM 要素を用いて実験した)
実験内容は、[Codepen](https://codepen.io/ken_miyashita/pen/xxdBBbb?editors=1001) で実行することができる。
# 構成
– D3js (ver4)# 既存 DOM element 集合を見つける: selectAll()
参照: [D3.js – selections](https://www.tutorialspoint.com/d3js/d3js_selections.htm)
これは jQuery と基本的には同じ考え方。`selectAll()` で指定した条件を満たす DOM
React.js&Next.js超入門 第2版の無限ループのバグ修正
[掌田津耶乃 React.js&Next.js超入門 第2版](https://www.shuwasystem.co.jp/book/9784798063980.html)で学習を進めていていますが、Chapter5の「fetch APIでJSONデータにアクセスする」のサンプルコードで無限ループが発生しブラウザがフリーズしたので、その点を修正するコードを掲載します。
また、この本にはステートの更新とコンポーネントがいつ再実行されるかについての記述が不足していると思われるので、その点についても補足しています。
またこの本にはChapter 4の最後の簡易メモにもバグがあるので次を参照してください。
[React.js&Next.js超入門 第2版の簡易メモのバグ修正](https://qiita.com/kmat/items/01addf420839cb1089bc)
この記事で指摘されているように、Amazonレビューでもサンプルコードが動かないことが指摘されており、困っている方もいるかと思うので記しておきます。またこの記事同様、この方法が最良の方法とは限らないことをご了承く