JavaScript関連のことを調べてみた2022年03月01日

JavaScript関連のことを調べてみた2022年03月01日

Reactのbutton要素内でFont Awesomeアイコンを使う時の注意点

## 目的

クリックイベントで関数を呼び出すボタン要素の中にFont Awesomeコンポーネントを使ってアイコンを表示させたい。
しかしなぜか指定したnameがundefinedになってしまう…
“`react
samples.map( sample => {
return (

)

const deleteMemo = (e) => {
const id = e.target.name //undefined…
console.log(id); //undefined…?
axios
//割愛
“`

## 原因

以下のようにevent.targetをコンソールに表示してみたところ、
“`rea

元記事を表示

Stripe Checkoutを利用した注文ページで、顧客が商品の個数を変更できるようにする

Stripe Checkoutを利用することで、オンラインでの注文フォームを数行のコードで実装できます。

“`javascript
const session = await stripe.checkout.sessions.create({
line_items: [{
price: ‘price_xxxx’,
quantity: 1,
}],
success_url: ‘http://localhost:3000′,
cancel_url:’http://localhost:3000’,
mode: ‘payment’
})
“`

注文画面では、顧客の地域とStripeユーザーの設定に応じて決済情報入力画面が柔軟に表示されるため、複数の決済方法へのサポートもより簡単になります。

![スクリーンショット 0004-02-28 19.52.01.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

Canvasを始めよう(入門編)

こんにちは。
今回の記事は、これからCanvasを勉強したいと思っている人向けの入門記事です。

## Canvasって何ができるの?

・図形や画像の描画
・アニメーション
・マウスイベント(お絵描き機能)
・音楽の再生

など様々なことができます。

## Canvasを使う準備

早速Canvasを試していきたいところですが、最初にHTMLとJavaScriptで下準備を行います。

### HTMLの準備

Canvasを使う為には、bodyタグ内の任意の場所にCanvasタグを追加し、
width属性とheight属性を付けます。
widthとheightの数値が、そのままCanvasサイズになります。

“`html

“`

### JavaScriptの準備

JSではcanvas要素をquerySelectorで取得した後、コンテキストを取得しています。

“`js
const canvas = document.querySelector(

元記事を表示

世界中のWordleライクなゲーム

### 世界中のWordleライクなゲーム

[Wordle](https://www.nytimes.com/games/wordle/index.html)っていうパズルゲームを知っていますか?
今、世界中で流行っている最もアツイパズルゲームです!

2022年1月頃くらいに爆発的に流行り、NYタイムズが**1億円**近い金額で買収したりしたことでも話題を呼びました。

話題になったのは比較的最近ながら、世界中のエンジニアたちが早速
Wordleみたいなクローンゲームを公開しています。

この記事では世界中の面白いWordleライクなゲームを紹介します!

1. [Wordle](https://www.nytimes.com/games/wordle/index.html)
まずは本家。原点にして至高。NYタイムズのドメイン内にサイトが存在しています。
毎日一つだけパズルが午前0時に更新されます。

2. [Svendle](https://exis9.github.io/Svendle/#/)
実はこれ、私が作りました!無限モード、ユーザージェネレーション、クリックで

元記事を表示

Electron 18 を使って200行以内でファイルの入出力ができるようなテキストエディタを作ってみる。

## 初めに

実用を目的とはしていません。`Electron`の構造を理解するために、どれだけ骨格を抜き出せるかを目的にしています。

というわけでスクラッチから書いてみます。

`html`中に`style`と`javascript`を直書きしているので、以下のワーニングが出ます。
`Electron Security Warning (Insecure Content-Security-Policy)`

以下のレポジトリにワーニングの出ない、他の機能も入ったバージョンを置いておきます。
ワーニングの消し方や結果だけを知りたい方はこちらで!
https://github.com/Satachito/electron-quick-start-MOD

`npm`,`npx`は入っている前提です。(`node`が入っていれば通常入っています)

## 準備

フォルダを作ってその中に`package.json`を作って`npm`で`Electron`をインストールします。

“`
$ mkdir TE
$ cd TE
“`
“`package.json
{ “main”:

元記事を表示

【JavaScript関数ドリル】Lodash関数の実装【勉強用】_.indexOf関数

# 【JavaScript関数ドリル】初級編の_.indexOf関数の実装のアウトプット

“`javascript:_.indexOf関数の挙動
_.indexOf([1, 2, 1, 2], 2);
// => 1

// Search from the `fromIndex`.
_.indexOf([1, 2, 1, 2], 2, 2);
// => 3
“`
第1引数に配列、第2引数に検索する値、第3引数で開始位置を指定し、指定されなければ0が初期値
## _.indexOf関数の課題内容

## _.indexOf関数に取り組む前の状態
– lastIndexOfと同じ要領で作成する

## _.indexOf関数に取り組んだ後の状態
– −1のリターンを深く考えすぎてしまった
– 今後はできるだけシンプルに実装していきたい
– セミコロンの有無をまだまだ理解しきれていないため、指摘があればいただきたい。
– if文の末端にセミコロンをつけていないのは、for文の中身であるため付けるべきでな

元記事を表示

TestCafe触ってみる

## はじめに
E2EテストツールのTestCafeのハンズオンです。
ほぼ、公式の[Getting Started](https://testcafe.io/documentation/402635/getting-started)をなぞってます。

## ハンズオンのゴール
ゴールはテスト対象のデモサイトで、簡単なテストを実行してみるところまでです。

## TestCafeのインストール
npmを利用していくので、インストールされていないマシンをお使いの場合は事前にインストールをお願いします。

今回はTestCafeをローカルインストールするので、作業用のフォルダを用意してください。
“`bash
$ mkdir testcafe-sample
$ cd testcafe-sample
“`
npmをinitしてフォルダ内にインストールできるようにします。
“`bash
$ npm init –y
“`
`testcafe`をローカルインストールします。テストなので一応devDependencies指定しておきます。
“`
$ npm install –save

元記事を表示

javaScript_Array.filter

MDNの中にfilter()メソッドについて、このように説明しています。
– filter() メソッドは、与えられた関数によって実装されたテストに合格したすべての配列からなる新しい配列を生成します。

例:
“`ruby
const numArr = [1,2,3,4,5];
// 奇数のみを抽出する
const NewNumArr = numArr.filter((num)=>{return num%2 === 1;});
console.log(NewNumArr);
// 値を順番に取り出す
for(value of NewNumArr){
console.log(value);
}
“`

文字列を連結するには、従来は+を使いますが、ES6の書き方で${}を使います。
例:
“`ruby
const nameArr = [“田中”,”中田”,”藤井”,”蒼井”];

for(let i=0; i

元記事を表示

QuillJS を利用している場合にホワイトスペースが圧縮されてしまう問題の対処

# 問題

[quilljs](https://github.com/quilljs/quill) のversion 1.3.7 (記事執筆時点でGithubで表記されている latest リリース) での話。

Quill Editor で編集した値を一度 DB に保存する。 この場合、DB の中身はこのようになる。

“`
# 入力
テストです。    ← 全角スペースが4個配置されています。
“`
![SnapCrab_NoName_2022-2-28_18-25-53_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502582/2de28625-bd15-6de8-8c80-12e43f19aff3.png)

“`
# DBに保存される値

テストです。    ← 全角スペースが4個配置されています。

“`

この値を再編集するために、`

` 要素に以下の通りに出力して Quill インスタンスを生成する。

“`html

【Vue】v-forで配列を指定回数だけループさせて出力させる

## 環境
Vue2

## はじめに
今回はVue.jsの記事になります。案件の中で要素を最初の2件だけ表示させてほしいというご要望をいただきました。メソッドを使い配列フィルタリングしたりといろいろな方法を試したので書き留めておこうと思います。

## v-forについて
### v-forディレクティブの使い方
v-forはいわゆるfor分の役割を持ちます。
HTMLタグの属性に`v-for=”要素(命名は自由) in 定義した配列”`を定義

“`index.vue

  • {{ item }}

“`

### v-forは2つ目の引数にindexを取れる
以下の様に第2引数を指定することによって、indexを取ることができます。indexの名前は自由につけてOK

“`index.vue

  • {{ item }}
元記事を表示

【JavaScript】Mochaについて

JavaScriptのテストで**mocha**を使ったのではじめの基本的なところをメモしておく。

# mochaとは
**mocha**とは、柔軟性のあるJavaScriptのテストフレームワーク。
**mocha**自体には、アサーションなどの機能を持っていないため自由にライブラリを選択できる。また、Node.jsだけでなくブラウザでも実行することができるという特徴がある。
**mocha**は、“npm“を使って以下のようにインストールできる。

“`
npm install –save-dev mocha
“`

# chaiとは
**chai**とは、アサーションライブラリのこと。**chai**は、**mocha**と同様にNode.jsだけでなくブラウザでも実行できる。上記のように**mocha**自体はアサーションの機能がないため、今回は**chai**を使用した。
**chai**のインストールも“npm“を使って以下のようにできる。

“`
npm install –save-dev chai
“`

# package.jsonを編集
“n

元記事を表示

シークライズ

「Sequelize」の読み方を、私は「シークライズ」と表記、記述、呼称しています。
Sequelizeとは、データベースへ簡単にアクセスするためのNode.jsのライブラリです。
TypeScriptやJavaScriptで使用しています。

元記事を表示

グレーアウトなよる

# 背景

フロント実装にてクリック契機等で既存画面をグレーアウトして新たな要素を出す仕組みを書いたのでその備忘録も兼ねて。
単純にモーダル機能としてだけであればBootstrapで事足りるのですがそれだと少し痒いところに手が届かないよって方向けに。。

# 実装例

ボタンクリックで背景グレーアウト→画像表示

“`Grayout.vue