- 1. [改良版]JavaScriptで複数のチェックボックスのうち1つでも選択されていたらボタンを有効にする
- 2. 【完全初心者向け】AWS CDKに入門してみた
- 3. 【JavaScript】イベントキャプチャリング、イベントバブリングについて図解で理解する。
- 4. Vueper Slides(Vue3)でasync使用のautoplayでハマった件
- 5. Node.js(Express)+MySQLを使ったHeroku上で動くプログラムを作ってみる
- 6. OSS/ライブラリってどう調べて導入するの? (moment.jsリプレースを通して)
- 7. JavaScriptの中身があるけど中身のない配列について
- 8. jestでswcを使うようにしたらエラー文に出てくる行数と実際のソースの行数が合わなくなったので解消させた
- 9. ブラウザで1行JSONをストリーミングする
- 10. 【Laravel8】親子テーブルを同時に新規作成・更新・削除する方法
- 11. [JavaScript]sort()で連想配列をソートする
- 12. 【React】Material-UIがインストールできない
- 13. [HTML, JavaScript]formaction動かない…
- 14. Recursion(再帰)を理解する
- 15. explorer.fileNestingへの誘い~エクスプローラーを見やすくしよう!~
- 16. RailsのWebpackerがコンパイルしているのにJavaScriptを実行してくれない、ホットリロードが効かない
- 17. Vue.jsのはじめにつまづいたエラー
- 18. vimeoでendedイベントを取れないとき
- 19. JavaScriptで0パディングを行う方法
- 20. 先頭の文字を判定して必要に応じて削除する方法(JavaScript/Vue)
[改良版]JavaScriptで複数のチェックボックスのうち1つでも選択されていたらボタンを有効にする
学習の過程を記載していきます。
完成形は[こちら](#5-完成形)です。
# 1. 前回の完成形
“`html:sample.html“`
“`js:sample.js
function change() {
const submitBtn = document.get
【完全初心者向け】AWS CDKに入門してみた
## 目次
– [目次](#目次)
– [はじめに](#はじめに)
– [AWS CDKの使い方](#aws-cdkの使い方)
– [準備](#準備)
– [CDK APPの作成](#cdk-appの作成)
– [CDK AppへのS3バケットの追加](#cdk-appへのs3バケットの追加)
– [CloudFormationテンプレートへの変換](#cloudformationテンプレートへの変換)
– [スタックのデプロイ](#スタックのデプロイ)
– [CDK Appの修正](#cdk-appの修正)
– [CDK Appの削除](#cdk-appの削除)
– [まとめ](#まとめ)
– [参考](#参考)## はじめに
業務でAWS CDKを使っていますが、すでに構築済のコードを使っているだけだったので、勉強のためにAWS CDKに入門してみました。## AWS CDKの使い方
### 準備
typescriptのインストール
“`bash
npm init
npm install typescript
“`バージョンの確認
【JavaScript】イベントキャプチャリング、イベントバブリングについて図解で理解する。
## JavaScriptのイベントキャプチャリング、イベントバブリングについて、よく分からなかったので、図を交えて理解してみました。
# イベントバブリングについて
突然ですが、以下のコードが表示されたブラウザで ”テスト”の文字をクリックしたらどうなるでしょうか?
“`html
test
テスト
“`
アラートで”hello”と表示されますよね。では、なぜhelloと表示され
Vueper Slides(Vue3)でasync使用のautoplayでハマった件
setupにasyncを使用している場合は問題なくautoplayが使用できるけど、onMountedでasyncすると、下記エラーで自動再生できなかったので解決までの半日を記録しておきます。(Vue3の知識も浅いので、組み方がうんこすぎて他の人には再現できないかもね!)
“`javascript:error
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘duration’)
“`# autoplayをscript内で実行
上記エラーよりdurationの値を設定してみたが全く変化なし。
ドキュメントを確認して「resumeAutoplay」なるものの存在を確認。(ここまで2時間)
https://antoniandre.github.io/vueper-slides/“`vue:template
Node.js(Express)+MySQLを使ったHeroku上で動くプログラムを作ってみる
Node.js(Express)とMySQLを使ってDBと連携するアプリをHeroku上で動かします。
HerokuはPostgresが公式サポートのようですが、MySQLの方が触ったことがあったり職場で使ってたりシェアも大きいしってことでそっちをチョイスしました。# やってみた感想
特にクセもなく実装できるかなーと思いました。
MySQLも全然普通に使えるしHeroku便利だわ。##### 環境
Win10+VSC@1.68
Node.js@16.14.2+Express@4.18.1
MySQL@8.0(ローカル側DB)
ClearDB MySQL(Heroku側DB)事前準備としてHello worldだけを出力するアプリをHeroku上にデプロイしてローカル-GitHub-Herokuが繋がった環境を先に構築してあります。
https://qiita.com/shichisan21/items/b163e33669763ca6fffc
## やろうとしたこと
– Herokuサービス上でNode.js(Express)アプリケーションを動かす
– JSONデータ
OSS/ライブラリってどう調べて導入するの? (moment.jsリプレースを通して)
# はじめに
世の中にはたくさんのOSSで溢れています。
そしてOSSには流行り廃りがあります。
昨日までデファクトスタンダードだったOSSが今日では斜陽となる可能性すらあります。
エンジニアはその中でどうやってOSSを調査し自プロダクトに取り入れているのでしょうか?
今回はそんなOSSに関わる業務の際に自分がどう進めているのかまとめたいと思います。# 本記事
– 実際に業務で開発したこと無い初心者エンジニア向けに実務の開発の流れを具体例を用いて解説
– 今回は日付時刻操作ライブラリである moment を date-fns でリプレースする作業をやっていきます# 対象読者
web 開発をしたい初心者エンジニア
OSS調査の流れを知りたいエンジニア# リプレイスするコード
“`javascript:moment.js
import moment from ‘moment’;function getStartTime() {
return ‘2022/07/01 15:22’;
}const start_time = moment(getStartTime
JavaScriptの中身があるけど中身のない配列について
[空じゃないけど空の配列の話。(配列とかおれおれ Advent Calendar2018 – 22 日目) | Ginpen.com](https://ginpen.com/2018/12/22/empty-slots/) を読んで面白かったので、JavaScript の空じゃないけど空な配列について自分でも調べてみた。
## はじめに
JavaScript の配列で以下のように中身があるようで中身のない配列がある。
“`js
const arr = [10, 20, 30];
arr[4] = 50;console.log(arr);
// [ 10, 20, 30, <1 empty item>, 50 ]
“`MDN では`空の配列スロット`と呼んでいそうだったので、この記事内では`空の配列スロット`と呼ぶ。
> in 演算子は、空の配列スロットに対して false を返します。直接アクセスしても undefined が返されます。
>
> MDN より引用
> https://developer.mozilla.org/ja/docs/Web/JavaScr
jestでswcを使うようにしたらエラー文に出てくる行数と実際のソースの行数が合わなくなったので解消させた
日本語の記事が見つからなかったので投稿
## 概要
swcを使いだしてからエラー文のstackに出てくるソースコードの行数がずれる様になりました。
sourceMapは有効化しているはずなので何かがおかしいと思い調べてみました。## 状況
– sourceMapは有効化している
“`
{
“sourceMaps”: true
}
“`## 解決方法
“`
{
“sourceMaps”: “inline”
}
“`## または(未検証)
“`
{
“sourceMaps”: true,
“inlineSourcesContent”: true
}
“`## 参考
https://github.com/swc-project/swc/issues/1581
https://github.com/swc-project/swc/issues/2194
ブラウザで1行JSONをストリーミングする
ブラウザで1行JSONをストリーミングするライブラリを作ったので、紹介したいと思います。
## 使い方
このライブラリは https://deno.land/ から配信されているため、`https://deno.land/x/jsonlines@v1.2.1/js/mod.js`というURLをインポートするだけで使えます。
以下のような1行JSONがあったとします。
“`json
{“id”: 1, “data”: [“xxxxx”, “yyyyyyyy”]}
{“id”: 2, “data”: [“bbb”, “aaaaaa”]}
…(以下無限に流れてくる)
“`これを1行ずつ読み取って、JSONとしてパースして順次読み込むには、以下のようにします。
“`html
````MyHeader.vue`のコンポーネントをインポートしておいて使用していないので、
`vue/no-unused-components`のエラーになっちゃいます。# vue/multi-word-component-names
・ファイル名 → パスカルケース
・HTML内 → ケバブケース
・JS内 → キャメルケース
参考
[【
vimeoでendedイベントを取れないとき
vimeoを利用し、同一のiframe内で動画を連続再生したいという要望。
ところが、playerのendedイベントがなぜか1つめの再生のものしか取れない。
そのような状態でもgetEndedメソッドは使えたので、力業。
```javascript
setInterval(function () {
player.getEnded().then(function (ended) {
if (ended) {
// ここで必要な処理
}
});
}, 100);
```
もっといいやり方はないかな?
JavaScriptで0パディングを行う方法
# 0パディングとは
ゼロパディングとは、数値を文字として表現・表示する際に、指定された桁数に足りない分だけ左右に「0」を追加する処理のこと。決まった長さ(固定長)の文字列に変換したいときに行われる。※1この処理をJavaScriptで行いたい場合、非常に簡単に実装することが可能です。
## String.prototype.padStart()メソッド
0パディングを行うためにはpadStart()メソッドを用います。
padStart() メソッドは、結果の文字列が指定した長さになるように、現在の文字列を他の文字列で (必要に応じて繰り返して) 延長します。延長は、現在の文字列の先頭から適用されます。使用方法としては第一引数に設定したい文字数、第二引数に埋める文字です。
例えば3桁で表示したい場合は下記のようなコードになります。
```
let num ="6"
console.log(num.padStart(3, '0'));
```
出力結果
``` "006" ```これが仮に初めから3桁の数字が用意されている場合は0を挿入しません。
```
let num
先頭の文字を判定して必要に応じて削除する方法(JavaScript/Vue)
javaScriptで先頭の文字を判定して、それが特定の文字の場合削除する方法です。
例えばAPIから送られてくる値が
```userName: ",山田,鈴木,吉村"```
だとします。この値をそのまま画面上に表示してしまうと先頭にカンマが表示されてしまい、よろしくありません。
画面表示の際に先頭のカンマを削除して表示するのが好ましいです。
それを実現するためにはstartsWith()メソッドとslice()メソッドを用います。# 方法
まず、先頭の文字がカンマかどうかの判定を行います。
いきなり先頭の文字を削除せず。一度判定を挟むのはAPIの仕様が変わり先頭にカンマが入らなくなった場合に山田の山を削除してしまうことになるからです。
先頭の文字がカンマであるかの判定はstartsWith() メソッドを用います。startsWith() メソッドは文字列が引数で指定された文字列で始まるかを判定して true か false を返します。
startsWith() メソッドがfalse、つまり先頭の文字がカンマでない場合はそのまま表示、startsWith() メソッド