# はじめに
ESLintはJavaScriptやTypeScriptのコード品質を保つためのツールですが、最近のアップデートで設定方法が変わり、一部のオプションが削除された。`npm eslint –init`コマンドを実行して選択肢が変わっており、変なハマり方をしたため、調査結果を備忘として記載します。
### 期待した選択肢
“`bash
? How would you like to use ESLint? (Use arrow keys)
To check syntax only
To check syntax and find problems
❯ To check syntax, find problems, and enforce code style
“`
### 最新の選択肢
“`bash
? How would you like to use ESLint? (Use arrow keys)
To check syntax only
❯ To check syntax and find problems
“`
ESLintを8.0.0
JavaScript
TypeScript
ESLint
## 記事の概要
エンジニア未経験からの挑戦ということで企業様へアピールするためのポートフォリオを作成してみました。
作成手順と機能、工夫したところ、課題点を書き出してみようと思います。
### プロフィール
27歳 男性
ITは全くの未経験(前職は営業)
就労移行支援にて0からプログラミングを学ぶ。
**ポートフォリオ作成は期間2ヵ月~2か月半**(思ったより苦戦しました…)
## 目的
* JavascriptとPHPを![qiita.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3683991/e927061a-00bd-ac89-be98-edf8a97b8c34.gif)
使いつつDBとの連携も行えるよう経験を積む
* 今の自分のレベル感を企業に判断してもらう
* 素のJs、PHPでどこまで書けるかチャレンジ
# スペック
**言語**
Javascript (Vanilla Js)
PHP 8.0.19
**DBMS**
MySQL Ver 8.0.
PHP
JavaScript
MySQL
ポートフォリオ
予約システム
## はじめに
以前から利用している「ws」と、Node.js v22 でフラグなしで使えるようになった WebSocket を組み合わせる話です。
### ws
以下の ws は WebSocketサーバーを準備するのに使います。
●ws – npm
https://www.npmjs.com/package/ws
### Node.js v22 で WebSocket利用
Node.js v22 でフラグなしで使える WebSocket は、以下に書かれているものです。
●Node.js — Node.js 22 is now available!
https://nodejs.org/en/blog/announcements/v22-release-announce#websocket
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/3741c8c6-5f19-2bb6-cd54-133264ea5072.png)
ブラウザと同様に、WebSocketサ
JavaScript
Node.js
websocket
ws
Node.js でキー入力をシンプルに取得したい、という状況があり、以下の標準モジュールを使った簡素なプログラムを作ってみました。
●Readline | Node.js v22.3.0 Documentation
https://nodejs.org/api/readline.html
元にするプログラムは、上記のページに書かれているものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/f0ed0fc0-430e-db34-9215-d523629afcbc.png)
“`javascript
const readline = require(‘node:readline’);
const { stdin: input, stdout: output } = require(‘node:process’);
const rl = readline.createInterface({ input, output });
rl.question(‘What
JavaScript
Node.js
readline
今回は文法圧縮の記事となります。より正確には`RePair`と呼ばれる有名な手法の改良版の紹介です。本家は[この辺に](https://code.google.com/archive/p/re-pair/downloads)あります。
## 本家の問題点
圧縮、伸長ともに再帰関数を利用しており、容易にstack overflow(segmentation fault)を起こす事が知られています。
ついでにその再帰の最も深い所で、不要な1 bitの符号化が毎回発生しており、圧縮率の低下を招いています。不要と言えば、まれに不要なpairingも発生します。
そしてもう1つ、単純にbit列を書き込んでいるだけなので、工夫すれば圧縮率はまだまだ良くなるという事。
## 実装
圧縮率を高めるためにCBT符号を利用します。例によって`compress`が圧縮関数、`decompress`が伸長関数。`compress`の引数`cut`は0~3の数値を指定。大きい程計算量が増えます。速度が犠牲になりますが、僅かに圧縮率が上がる可能性があります。
“`js
{const primes=functio
# はじめに
キャッシュとは、一度取得したデータを一時的に保存しておき、次回同じデータが必要になったときに再取得せずに素早く提供する仕組みです。例えばAPIからデータを取得する場合、最初のリクエスト時にそのデータをキャッシュに保存しておき、次回からはキャッシュからデータを返すようにすると、処理が速くなります。
しかし、初回のデータを取得している間にも次のリクエストが来るかもしれません。ロックを取得して待たせるという選択肢がないTypeScript/JavaScriptの場合、このようなケースを綺麗に扱うのは意外と難しいものです。
その問題を解消するために書いた自作ライブラリの紹介です。
[cached-provider on npm](https://www.npmjs.com/package/cached-provider)
# 基本的な構成
## ObjectIdMapper
JavaScriptのObjectには固有のIDがありません。そのため、Objectに対してロック処理をするためには、Objectを一意に識別する仕組みが必要になります。ObjectIdMapperは
JavaScript
Node.js
npm
TypeScript
# Objectオブジェクト
> 警告: 記事に機械翻訳するものがあるので、学習メモとして保存され、参考学習用のみ
## 概要
JavaScriptネイティブで提供される「Object」オブジェクト(最初のOが大文字であることに注意)のための様々な方法を紹介します。
JavaScriptの他のオブジェクトはすべて`Object`オブジェクトから引き継がれます。つまり、それらのオブジェクトはすべて`Objectのインスタンス。
`Object`オブジェクトのネイティブメソッドには、`Object`自身のメソッドと`Objectのインスタンスメソッドの2種類があります。
** (1) `Object`オブジェクト自体のメソッド**。
「自身的アプローチ」とは`Object`オブジェクトに直接定義するアプローチ。
“`javascript
object.print = function (o) {console.log(o)};
“`
上記のコードでは`print`メソッドは`Object`オブジェクト上で直接定義されています。
**(2) `オブジェクト`の例の方法*
業務でコードレビューを行っている時に、メンバーのソースで意図せず”==”と”===”が混在していたので。
改めて違いについて記事にしてみます。
# 等価演算子(==)と厳密等価演算子(===)の定義
JavaScriptでもTypeScriptでも、等価演算子は非推奨で、厳密等価演算子を用いることが推奨されています。
”==”と”===”は厳密には異なる挙動を示します。
MDNのドキュメントを確認してみましょう。
### 等価演算子
> 等価演算子 (==) は、二つのオペランドが等しいことを検査し、論理値で結果を返します。*厳密等価演算子とは異なり、オペランドの型が異なる場合には型の変換を試みてから比較を行います。*
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Equality
### 厳密等価演算子
> 厳密等価演算子 (===) は、二つのオペランドが等しいことを検査し、論理値で結果を返します。*等価演算子とは異なり、厳密等価演算子はオペランドの型が異なる場合、常に異な
JavaScript
TypeScript
フロントエンド
初学者向け
# はじめに
こんにちは、Gakken LEAP のエンジニアの Minami です。
フロントエンド開発にあたり、品質の向上・チームメンバー間での実装レベルの統一を目的として、ESLintを導入しました。今回は、初歩的な部分にはなりますが、備忘録的な意味も込めてまとめてみました。
—
# ESLintとは
ESLintは、JavaScriptのコードを解析して構文エラーや慣用的な問題を見つけるツールです。プログラムの品質や保守性を高めるために役立ちます。
—
# 導入方法
1. **`Node.js`のインストール**: ESLintを使うには、まず`Node.js`をインストールします。`Node.js`はJavaScriptを実行するための環境です。
2. **プロジェクトの初期化**: プロジェクトのフォルダでコマンドを実行して、プロジェクトを初期化します。
~~~bash
npm init -y
~~~
3. **ESLintのインストール**: ESLintをプロジェクトに追加します。
~~~bash
n
JavaScript
TypeScript
フロントエンド
ESLint
# 問題!!
以下コードを実行すると何が出るでしょうか!?
“`tsx
function getUrls(url: string | URL, names: string[]) {
if (typeof url === “string”) {
url = new URL(url);
}
return names.map(name => {
url.searchParams.set(“name”, name)
return url.toString();
});
}
console.log(getUrls(“http://localhost:8080”, [“test”]))
“`
## 答え!!
クロージャ内で引数urlの型が分からないのにURL型のメソッドを使おうとしてエラーになります。
つまり型判定の結果が無効化されちゃっています…..
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/5
JavaScript
Node.js
TypeScript
ECMAScript
## アノニマスとは?
Wikipediaより、アノニマスとは以下のような集団のことです。
>アノニマス(英: Anonymous)は、2006年頃に英語圏の匿名掲示板「4chan」で結成された、インターネット上のハクティビスト(ハクティビズムと呼ばれるハッカー思想の実践者)が緩やかにつながった国際的な連携組織である。
>ハクティビストとは、ハッカーと活動家(アクティビスト)を掛け合わせた造語。また「anonymous」という単語は「匿名」「名無し」「作者不明」を意味する形容詞であるが、この用途では「匿名の集団」という意味の不可算名詞として扱われる。
## アノニマスは絶対悪?
アノニマスはおもに[DDoS攻撃](https://www.ntt.com/business/services/network/intern
JavaScript
電子工作
IoT
p5.js
obniz
VeeValidate4をSFC無しで使用する場合のサンプルコード。
自分の場合、ASP.NET MVCのフロント側のコードとして使うことが多く、SFCではなくRazorと組み合わせたりコードもJavaScript直書きの事が多い為。
自分用のメモとして。
– Vue3、VeeValidate4はCDNから読み込む
– SFCではないので事前のbuild等は不要
– 以下のサンプルコードをhtmlファイルに保存してブラウザで開けば動く
“`html
VeeValidate Example