- 1. 124.コールバック関数と非同期処理 125.非同期処理のチェーン
- 2. Next.js でページ遷移時の確認モーダルを出す方法の備忘録
- 3. JavaScriptで配列同士を比較して、重複・差分データを抽出する方法
- 4. Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
- 5. JavaScriptの正規表現について part2
- 6. べき乗・べき根・対数の整理メモ (JavaScript)
- 7. 【Vue3】ブラウザでマイク音声を録音する(Composition API)
- 8. Salesforce認定JavaScriptデベロッパー問題集(No.81~No.100)
- 9. Salesforce認定JavaScriptデベロッパー問題集(No.61~No.80)
- 10. Salesforce認定JavaScriptデベロッパー問題集(No.41~No.60)
- 11. Salesforce認定JavaScriptデベロッパー問題集(No.21~No.40)
- 12. JavaScript 文字列の末尾を除去する
- 13. JavaScriptでじゃんけんがしたい!
- 14. 競馬のデータ分析をするならせめてJRA-VANを使おう。
- 15. 121.ブラウザとJavascriptについて,122.非同期処理
- 16. TypeScriptでPromiseの決定後の型を抽出する方法
- 17. NETFLIX の字幕をスクレイピングする
- 18. TypeScriptで関数の戻り値の型を推測して型定義する方法
- 19. 113.イテレーターとスプレッド演算子
- 20. 111.ジェネレーター
124.コールバック関数と非同期処理 125.非同期処理のチェーン
# 覚えておくべき前提条件
#### 1.実行について
*関数は実行されて初めて処理が始まる
例)
1.Func();–処理が始まる
2.btn.addEventListener()–『ボタンを押して初めて』実行されている
#### 2.キューについて
非同期処理にすることによってメインの処理を待たずに他の関数を実行できる
ただ非同期処理内でも、先入先出しなので、順番は守らなければならない。
#### 3.setTimeoutについて
setTimeout()は
第一引数に処理を、第二引数に待機時間を記入するが
第二引数がないと、コールスタックが吐き切るまで、実行されない
#### 例
“`javascript
function a() {
// 2.コールスタックが全て終了するまで待機
setTimeout(function task1() {
console.log(‘settimeout done’);
});console.log(‘fn a done’);
}function b() {
console.log(‘fn b done’
Next.js でページ遷移時の確認モーダルを出す方法の備忘録
# はじめに
仕事で Next.js のページ上でページ遷移時の確認モーダルを出すコードを作成したのでその上で知ったことに関して備忘録代わりにこちらで記載しておきます。
# useEffect の理解
今回の目的の達成のために、Next.js の **useEffect** を用いようと思います。
useEffect は引数に指定した関数の実行をコンポーネントのレンダリング後に行うことができるメソッドです。
基本的なつくりは “`useEffect(関数, データ配列)“` となっており、第二引数の配列内のデータが更新されるたびに、第一引数の関数が実行されます。
今回の目標は「ページ遷移時の確認モーダル表示」なので、コンポーネントがアンマウントされたタイミングでの処理についても気を付ける必要があります。
その為、アンマウントされたタイミングでの処理も含めての基本的な構文は以下の様になります。
“`javascript
useEffect(() => {
// レンダリング時の処理
return () => {
// アンマウント時の処理
}
}
JavaScriptで配列同士を比較して、重複・差分データを抽出する方法
## はじめに
JavaScriptでオブジェクトの配列同士の比較で詰まったので、備忘録として残します。
ベストな方法ではないかもしれませんが、1つのやり方として誰かの参考になればとも思います。## やりたいこと
以下の二つの配列があったと仮定する。
「expense1」と「expense2」で重複するデータだけ抽出したい。
“`javascript:main.js
const expense1 = [
{ name: ‘住居費’, const: 50000 },
{ name: ‘水道光熱費’, cost: 10000 },
{ name: ‘保険料’, cost: 20000 },
{ name: ‘通信費’, cost: 12000 },
{ name: ‘美容費’, cost: 8000 },
];const expense2 = [
{ name: ‘住居費’, const: 50000 },
{ name: ‘教育費’, cost: 15000 },
{ name: ‘水道光熱費’, cost: 10000 },
{ name:
Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
# Python
https://qiita.com/ryuichi1208/items/cb5f850a9811d2a4bc3a
# Ruby
https://qiita.com/sugamaan/items/d7871da28c0160b69609
# PHP
https://qiita.com/mikakane/items/2719df714df5b3fc6adf
# Java
https://qiita.com/haruto167/items/162551100449ea5c7e6d
# JavaScript
https://qiita.com/Nako4/items/1d8eaf731bf4370b84a7
# Perl
https://perlzemi.com/b
JavaScriptの正規表現について part2
# 初めに
前回の続きです。今回は正規表現の言明(Assertions)、グループと範囲(Groups and backreferences)、数量詞(Quantifiers)、Unicode property escapesについてまとめていきたいと思います。https://qiita.com/hu-yu/items/c381e9c191c7a7400671
# Memo
言明(Assertions)
`^`, `$`, `x(?=y)`, `x(?!y)`, `(?<=y)x`, `(?
べき乗・べき根・対数の整理メモ (JavaScript)
数学よわよわ村の民でlogがいっつもごちゃるのでほぼWikipediaコピっただけ 間違ってたら教えてほしいです
# 冪乗(べきじょう): exponentiation
$$
\Huge{?^?= ?}
$$$$
\large{底^{指数} = 冪}
$$– ?: 底 (base)
– ?: 指数 (exponent)
– ?: 冪 (power)$$
5^2 = 5 \times 5 = 25
$$“`js
const base = 5;
const exponent = 2;
const power = base ** exponent; //=> 25// const power = Math.pow(base, exponent); //=> 25 (同じ)
“`– 指数関数(exponential function) とも呼ぶ
– 指数が自然数のとき **累乗(るいじょう)** と呼ぶ
– 指数が2のとき **平方(square)** と呼ぶ (面積 $m^2$ でお馴染み)
– 指数が3のとき **立方(cube)** と呼ぶ (体積 $m^【Vue3】ブラウザでマイク音声を録音する(Composition API)
# やりたいこと
ブラウザで録音するアプリケーションを作ります。
Vue2.xやOptions API で書かれたサンプルコードは色々見つけましたが、Vue3 のComposition API で書かれたコードは見つからなかったので、参考に共有します。
# 基本
ブラウザでの録音はMediaStream Recording APIを使います。
基本的には以下のソースコードと解説を参考にしました。
[MediaStream Recording API の使用 – Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/MediaStream_Recording_API/Using_the_MediaStream_Recording_API)
# 全コード
短いので、テンプレートの全コードを掲載します。
“`jsx
Salesforce認定JavaScriptデベロッパー問題集(No.81~No.100)
:::note
解説や翻訳に誤りがありましたらご指摘いただけましたら幸いです。
:::**Salesforce 認定 JavaScript デベロッパー**多岐選択式試験対策の問題集です。
以下から抜粋して和訳しています。https://www.freecram.net/exam/JavaScript-Developer-I-salesforce-certified-javascript-developer-i-exam-e11977.html
JavaScript デベロッパーの試験については以下の公式ガイドをご参照ください。
https://salesforce.quip.com/OIpYAdobQMUk
—
### No.81
開発者は、次の要件に基づいてブログ投稿を表すクラスを作成します。
投稿には、本文の作成者と閲覧数が必要です。
以下のコードを参照してください。
~~~javascript
01 class Post{
02 // Insert code here
03 this.body = body;
04 tSalesforce認定JavaScriptデベロッパー問題集(No.61~No.80)
:::note
解説や翻訳に誤りがありましたらご指摘いただけましたら幸いです。
:::**Salesforce 認定 JavaScript デベロッパー**多岐選択式試験対策の問題集です。
以下から抜粋して和訳しています。https://www.freecram.net/exam/JavaScript-Developer-I-salesforce-certified-javascript-developer-i-exam-e11977.html
JavaScript デベロッパーの試験については以下の公式ガイドをご参照ください。
https://salesforce.quip.com/OIpYAdobQMUk
—
### No.61
開発者は、解析された JSON 文字列を使用して、以下のブロックのようにユーザー情報を操作します。
~~~javascript
const userInfo = {
“id” : “user-01”,
“email” : “user01@user.demo”,
“age” : 25
};
~~~
email属性にSalesforce認定JavaScriptデベロッパー問題集(No.41~No.60)
:::note
解説や翻訳に誤りがありましたらご指摘いただけましたら幸いです。
:::**Salesforce 認定 JavaScript デベロッパー**多岐選択式試験対策の問題集です。
以下から抜粋して和訳しています。https://www.freecram.net/exam/JavaScript-Developer-I-salesforce-certified-javascript-developer-i-exam-e11977.html
JavaScript デベロッパーの試験については以下の公式ガイドをご参照ください。
https://salesforce.quip.com/OIpYAdobQMUk
—
### No.41
以下のコードを参照してください。
~~~javascript
01 document.body.addEventListener(‘click’, (event) => {
02 if ( /* ここにコードを挿入 */) {
03 console.log(‘ボタンがクリックされました!’);
04 };
05 });Salesforce認定JavaScriptデベロッパー問題集(No.21~No.40)
:::note
解説や翻訳に誤りがありましたらご指摘いただけましたら幸いです。
:::**Salesforce 認定 JavaScript デベロッパー**多岐選択式試験対策の問題集です。
以下から抜粋して和訳しています。https://www.freecram.net/exam/JavaScript-Developer-I-salesforce-certified-javascript-developer-i-exam-e11977.html
JavaScript デベロッパーの試験については以下の公式ガイドをご参照ください。
https://salesforce.quip.com/OIpYAdobQMUk
—
### No.21
以下のコードを参照してください。
~~~javascript
new Promise((resolve, reject) => {
const fraction = Math.random();
if (fraction > 0.5) reject(“fraction > 0.5, ” + fraction);JavaScript 文字列の末尾を除去する
文字列の末尾1文字のみを削除する方法を学んだので記載する.
### 方針
[length](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/length)プロパティで文字列の長さを取得し,[slice()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/slice)メソッドで文字列の先頭から(文字数 – 1)文字目までを抜き取る.#### サンプルコード
“`javascript
let hello1 = “おはよう” //文字列を定義
console.log(hello1)let hello1Length = hello1.length //定義した文字列の長さを取得.4文字.
let hello2 = hello1.slice(0, hello1Length -1) //hello1の1~3文字目の文字列を抜き取り.
consJavaScriptでじゃんけんがしたい!
どうもあぺです。これから主にJavaScriptに関連した記事を投稿していきます。一ヶ月に一度は更新できたらいいなって思います。
# コードを書いてみよう
記事を書く練習にまずはじゃんけんのプログラムでも組んでみようかと思います。
最低限のプログラムだけ組んであとはご自由にって感じです。### 手順
>1. Math.random() 関数で疑似乱数を生成する。
>2. それに応じて出す手を返す。(`switch文`):::note warn
疑似乱数を使用するため、確率は完全に均一ではありません。
:::### 手順通りに作る
“`javascript:簡単ver
const janken = function() {
const randomInt = Math.floor(Math.random() * 3)switch (randomInt) {
case 0: return “gu-”
break;
case 1: return “choki”
break;
case 2: return “pa-”
break;
}
}
“競馬のデータ分析をするならせめてJRA-VANを使おう。
# 初めに
競馬データの分析、流行ってるようですね。
ディープラーニングなどの AI 技術が広がってきたおかげで、競馬を資産運用に使える可能性が見えるようになってきました。そしてデータ分析に興味を持つ方も増えてきました。分析の目標が資産運用だとしたらどんなことに注目して分析していったらいいのでしょうか。## 回収率
現在巷では回収率200%以上などと華やかに謳うサイトや記事で溢れてます。確かに回収率200%を超えるのなんて簡単です。ただし以下のような条件であれば
* 後出し
* 短スパン競馬を投資として考えるなら、競馬のサイクルに合わせてスパンも1年で考えるのが自然です。競馬は季節によってそれぞれの特色があります。特に夏は馬のデビューの時期で北海道とローカルが主戦場となり新馬に関する分析が必要になったりと季節に応じた分析の必要性も出てきます。
またどんなに高度な AI の手法をとっていても、分析するデータが少なければ意味を成しません。ネットをスクレイプした程度のデータであれば、AIでなくても手計算でいくらでも回収率の高い予想をするでっちあげることができます。
競走馬は大体121.ブラウザとJavascriptについて,122.非同期処理
# 覚えておくべきごく
#### スレッド
連続して実行される1本の処理のこと
今回のスレッドは
*Main Thread:Javascriptの実行とレンダリングを行う
*Service Worker:
*WebWorker
#### レンダリング
データ(ここでいうとソースコード)をもとに何らかを表示させるということなので
rendering(レンダリング)」意味は表現に近い。
今回の意味合いは
javascriptのソースコードを用いてブラウザに表示させるという意味で使われる
#### FPS
FPSとは1秒あたり画面の更新頻度のこと
例えば
60fpsだと
1秒間で60回画面更新になります
ちなみに
*24fps 遅いけど、重い処理はこのくらいかな
*60fps なめらか
ちなみにMaxは120くらいらしい
<参考>
https://qiita.com/umi_kappa/items/d9656f6083fbee6add70## 同期処理の問題
同期処理ではメインスレッドでコードが順番に実行される
同期処理では1つの処理が完了するまで次の処理には進まない
つまり、前に重いTypeScriptでPromiseの決定後の型を抽出する方法
はいさい!ちゅらデータぬオースティンやいびーん!
また、TypeScriptの便利な`UtilityType`紹介をしたいと思います!
# 概要
`Awaited`のUtilityTypeを使って、Promiseの決定後の型を推測する方法を紹介します。
## 背景
先ほど投稿した`ReturnType`についての記事を書きましたが、非同期処理のPromiseだったら、どうやってそのPromiseが履行された時の値を推測できるのかと気になった方がいらっしゃったかと思います。
https://qiita.com/tronicboy/items/a5578741e74d299a3f42
実は、`ReturnType`と同じように、TypeScriptにはもう一つ便利なUtilityType、`Awaited`があります。
このUtilityTypeは比較的に新しく、TypeScript 4.5から使えるようになっています。
その使い方を説明してまいりましょう。
# `Awaited`の使い方
以下のようなコードを例に書いてみました。APIからTodoを取得して、`{ i
NETFLIX の字幕をスクレイピングする
# はじめに
この記事では、NETFLIX で掲載中の映画から字幕をスクレイピングで取得するツールのご紹介をします。IT やプログラミングがまだ不慣れな人でも使えるように、可能な限り簡単に作りました。なので、高度で高機能なスクレイピングツールを求められている方は対象ではありません。また、このツールは言語学習を目的として作成しました。
その他の用途で使用することは控えてください。# 目次
– [背景](#背景)
– [ちょいと作ってみるか](#ちょいと作ってみるか)
– [成果物](#成果物)
– [使い方](#使い方)
– [各種設定(応用編)](#各種設定応用編)# 背景
私は NETFLIX の視聴者で、よく洋画やアニメを鑑賞しています。
NETFLIX を契約する前は、英語の勉強としてハリウッド映画やワーナーブラザーズの映画をレンタル屋から借りてきては、頑張って英語字幕を書き写しては調べ、丸暗記してシャドウイングするという勉強法を行ってきました。※この勉強法が良いかはわかり
TypeScriptで関数の戻り値の型を推測して型定義する方法
はいさい!ちゅらデータぬオースティンやいびーん!
# 概要
TypeScriptで通常通り定義した関数の戻り値の型を推測した上で、新しい型として定義する方法を紹介します。
## 背景
TypeScriptを書いていて、
この関数の戻り値の型って、他のところでも使いたいんだけど、わざわざ`type`構文で定義するのだるいしと、煩わしく思ったことがありませんでしょうか?もしくは、戻り値の型と、他の関数の引数の型が微妙に違って、TypeScriptのインタープリターに警告を吐かれたこと、ありませんか?
このような経験を繰り返していると、
TypeScript、にりーと思うようになって、TypeScriptの良さが伝わらないのです。そこで、実は、助けになる`UtilityType`があります。
`ReturnType`なのです。
使い方を説明していきましょう。
# `ReturnType`の使い方
まず最初に、以下のようなコードを例に挙げます。
“`typescript
const theShining = [“RedRum”, “All113.イテレーターとスプレッド演算子
# スプレッド演算子
展開した配列を新しく変数に代入したい時
#### 書き方
1.配列を作成する
2.[]の中に…配列
“`javascript:配列を配列として代入したい時
const arry1 = [1,2,3,4,5];
const arry2 = […arry1];
console.log(arry2)
“`
>結果
![スクリーンショット 2022-09-07 15.51.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/714631/3f3100d8-5ad9-e2cb-04aa-9f1e37043fd5.png)
スプレッド演算子はイテレータの操作に従う# 残余引数
仮引数をもとに実引数argsを配列として扱う“`javascript
function Func(…args){
// 引数が要素として取得されるので
// argsは[要素1,要素2,要素3]となる
}
Func(要素1,要素2,要素3)
“`
## 書き方
### 例
“111.ジェネレーター
## ジェネレーターとは
イテレーターを作ってみて思ってたのが
めんどくさい、、
もっと簡単な方法ないのか?
→ジェネレーターを使おう
## 書き方
1.functionの後に*をつける
2.関数名は gen()
3.yield 値 値を追加してから継続
4.return 値 値を追加してインクリメント終了
5.呼び方はイレテータと変わらない
#### ジェネレータのコード
“`javascript
function* gen(){
yield 1;
yield 2;
yield 3;
return 4;
}
const it =gen()
console.log(it.next())
console.log(it.next())
// 上限
console.log(it.next())
// 4回目の上限オーバー
console.log(it.next())
“`
![スクリーンショット 2022-09-07 15.28.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた