Netscape 社の JavaScript と、Microsoft 社の JScript の動作を統一するために作られた、プログラミング言語の仕様。 Java 言語のようなクラスベースではなく、プロトタイプベースのオブジェクト指向を採用している。
ECMAScript をベースとしている言語として、
などがある。
ES6(ECMAScript 2015)以降ではvarの使用を避けることが推奨 ブロックスコープと関数スコープの違い ES6(ECMAScript 2015)以降ではvarの使用を避けることが推奨 JavaScriptにおいては、ES6(ECMAScript 2015)以降では、varの使用を避けることが推奨されています。 代わりにletやconstを使用することで、変数のスコープや再代入の制御が向上し、コードの品質が向上します。以下は、varを使わない方がよい理由で す。変数のスコープ問題: varは関数スコープを持ち、ifやforなどのブロック内で宣言されても、その変数は関数全体でアクセス…
PMDバージョン: 7.0.0-rc4 AvoidTrailingComma 公式ドキュメント: AvoidTrailingComma Since: PMD 5.1 Priority: High (1) Description: ブラウザによってオブジェクトや配列リテラルの末尾のコンマの扱いが異なるため、末尾にコンマを書かないように留意することでコードの移植性を向上させるのに役立つ。 Property: 名前 デフォルト値 説明 複数指定 allowObjectLiteral false オブジェクトリテラル内の最後のカンマを許可する - allowArrayLiteral false 配列リ…
PMDバージョン: 7.0.0-rc4 AssignmentInOperand 公式ドキュメント: AssignmentInOperand Since: PMD 5.0 Priority: Medium High (2) Description: 条件式内での値の代入は避ける。コードが複雑になり、読みにくくなる。 等号演算子「==」の代わりに代入演算子「=」が使用されるバグを検出することがある。 Property: 名前 デフォルト値 説明 複数指定 allowIf false if文の条件式内での代入を許可する - allowFor false for文の条件式内での代入を許可する - al…
PMDバージョン: 7.0.0-rc4 Best Practices AvoidWithStatement 公式ドキュメント: AvoidWithStatement Since: PMD 5.0.1 Priority: High (1) Description: withの使用を避けるべきである。 Configuration: <rule ref="category/ecmascript/bestpractices.xml/AvoidWithStatement" /> Example: with (object) { property = 3; // オブジェクトなのかwindowなのか判断つ…
先月出版された「JavaScript Primer 改訂2版 迷わないための入門書」の内容レビューに関わらせていただきました。 先日出版社の方から、完成した書籍をご恵贈いただきました。ありがとうございます。 www.kadokawa.co.jp JavaScript Primer 改訂2版 迷わないための入門書作者:azu,Suguru InatomiKADOKAWAAmazon efcl.info 第1版からの主なアップデートとして、ECMAScriptの新しいバージョン(ES2020, ES2021, ES2022)で取り入れられた機能を取り上げたり、Promise, Async Func…
ECMAScriptはJavaScriptの標準規格で、2015年以降毎年改定されています。この記事を読むとES2022に採用された仕様、ES2023に決まっている仕様、次に盛り込まれそうな仕様がわかります。 ECMAScriptとは ECMAScriptとはJavaScriptの標準規格 ECMAScriptのバージョン ECMAScriptの策定プロセス ES2022 .at() Top-level await クラスにプライベートなインスタンスフィールド、アクセッサ クラスに静的なフィールドとメソッド クラスに静的イニシャライザブロック Object.prototype.hasOwn E…
IE11の考慮が不要となった場合に、特定のブラウザバージョン以降で使えるようになる機能一覧を列挙して表示するサイトを作った。 the-world-after-ie-left.vercel.app リポジトリはこちら github.com デフォルトでは Chrome > 90 Edge > 90 Firefox > 90 Safari > 13 以降で使える機能を確認できる。 ※ ちなみに雑にVercelにデプロイしてるので、レスポンスが巨大すぎるとVercel自体の制限に引っかかって死ぬことがあるので、落ちる場合は絞り込み用のブラウザバージョンをちゃんと入れてください。 IE卒業式という社内…
はじめに v-bindの基本 v-bindでクラス名を固定値+動的にしたい場合どうする? APIの帰り値をクラス名に設定したい aタグのhref属性を動的にしたい時 aタグのtarget="_blnak"を動的するにはどうしたらいいか まとめ はじめに こんにちは。エンジニアの仕事をしている、たかふみです。 本日はVue.jsでよく使う、v-bindの値でattributeを動的にするにはどうしたらいいのか、TIPSをまとめていきたいと思います。 v-bindの基本 根本的にv-bindの基礎から説明いたしますが、v-bindとは、HTMLの属性を動的にするためのvue.jsの機能です。 下記…
ECMAScriptはJavaScriptの標準規格で、2015年以降毎年改定されています。この記事を読むとECMAScriptの仕様策定プロセスが理解でき、ES2021に採用された仕様、ES2022に決まっている仕様、次に盛り込まれそうな仕様がわかります。 ECMAScriptとは ECMAScriptのバージョン ECMAScriptの策定プロセス ES2021 String.prototype.replaceAll Promise.any WeakRefs Logical Assignment Operators Numeric separators ES2022(確定分) Class …
最近Webフロントを入門したことで、JavaScriptを勉強する機会が増えたが、ECMAScriptについての理解が曖昧だったので軽くメモ👷♀️ ブラウザでのJavaScript JavaScriptのコードをプログラムとして動作させるには、JavaScriptエンジンでコードをコンパイルして実行させる必要があります。ChromeやSafariを始めとしたブラウザは、それぞれJavaScriptエンジンがあり、これにより同じJavaScriptでもブラウザによって挙動が変わっています。 ちなみに、JavaScriptエンジンには下記のようなものがあります。 エンジン 内容 V8 Googl…
こんにちは! アカツキゲームス クライアントエンジニアのSuです。この記事は Akatsuki Advent Calendar 2024 11日目の記事です。昨日の boke0 さんの踊り文字についての記事は面白かったです。一歩一歩 → 一歩々々という書き方は初めて知りました。とても勉強になりました!25日の解決編も楽しみですね! はじめに Photoshop の自動化 ExtendScript IntelliSense ExtendScript デバッガー Github repo 最後に はじめに 自分は学生時代からエディターの拡張に興味があり、Blenderエディターの関連研究も少し関わり…
この記事はenechain Advent Calendar 2024の6日目の記事です。 はじめに 2024年10月9日にローンチしたeSquare Liveは、電力卸取引のオンラインマーケットプレイスです。 新規サービスであり利用者の限られるtoBのサービスではあるものの、リアルタイム電力取引場というプロダクトの特性上、ローンチ直後から一定水準以上のパフォーマンスが求められます。 スケールすることを意識して開発してきましたが、約10ヶ月の開発期間のほとんどを機能開発に費やしていたため、リリース直前の段階で実際どの程度のパフォーマンスが出ているのかの計測ができていない状況でした。 そこで、リリ…
海外利用時のiPhone設定注意点 Python 3.13のUnicode変更点 長時間処理の通知方法 日本の年収103万円の壁問題 アクセンチュアの生成AI戦略 Linuxシステム速度低下の原因特定コマンド ソブリンクラウドの現状と課題 Windows 11のシステム要件に関する報道への公式見解 WebサイトをアプリとしてインストールするChrome/Edge機能 AmebaのAurora MySQLコスト削減事例 AWS re:Invent 2024 セッションレポート:テナント分離戦略 アマゾンの独禁法違反疑惑に関する公取委調査 省エネエアコンの開発とGAIR関連技術の電力消費削減目標 …
この記事は はてなエンジニア Advent Calendar 2024 の 2 日目の記事です。 昨日は id:hogashi さんの「querySelectorAllの結果をmapしたいときはArray.fromすると良い」でした。 どうも、趣味で関数型言語をやっている者です。 長らく関数型言語をやってなかったら無名再帰を忘れかけていたので、おさらいがてら不動点コンビネータで無名再帰を作る流れを書き下します。 以下、JavaScript の文法で書かれたコードをもとに説明していきます。 目次 目次 無名再帰とは 不動点コンビネータ (Z コンビネータ) f = next => x => ne…
オープンハウス社長のお言葉 オープンハウス、会社は社長で全て決まる。このカルチャーを築いたの凄いわ pic.twitter.com/mDuFH8vl4y— くっつー@店舗専門の不動産屋社長 (@kutsukake_tenpo) 2024年9月17日 バスケ選手の補足コメント 本気なら風邪ひかないよ。は精神論ではなく、本気なら毎日がどれだけ大事かわかるから、そもそも風邪を引かないように栄養、睡眠、休息などをとっていつでもベストパフォーマンスを発揮できるようにする意味だと思う。アスリートもそうだから。 https://t.co/1khIkimjp8— 佐藤マクファーレン優樹 (@yukisatom…
始まってしまった、12月が…。 ということで、syumai Advent Calendar 2024の開始をお知らせします。 adventar.org これは何? syumaiが25日間記事を出来る範囲で投稿し続けるAdvent Calendarです。 どうしてこうなった? petamorikenさんの書く一人Advent Calendarが読みたい気持ちがありすぎたので、「morikenさんが一人Advent Calendarを書くなら自分も書く」と過去に勝手に発言していて、(全然morikenさん側のきっかけにはなってないと思いますが、)とても嬉しいことにmorikenさんのAdvent …
11/23 - 11/24という日程で開催された。keymoonさんとd=(>o<)=bというチームで出て全体39位、国内11位。国内決勝と国際決勝にはそれぞれ参加資格のあるチームのうち上位8チームが出られる。チームieraeが国内決勝でなく国際決勝へ進むことを加味しても、2チームが辞退しなければ国内決勝には進めないということで、まず予選敗退だ。大変悔しいd=(ToT)=b [Web 149] Tanuki UdonでまさかそんなことがあるはずがないとXSS解を見逃した、方針転換できなかったのも悔しければ、[Web 193] self-ssrfで色々ガチャガチャ試していたものの、機械的なブルー…
異なるプログラミング言語における式i += 1 + ++i処理結果の違いについてメモ。*1警告:1つの式内で同一変数を複数回更新する技巧的なコード記述は避けてください。こんな式を書くもんじゃねぇよ言語仕様書の紙束で張っ倒すぞ(#ノ゚Д゚)ㇸ📘 ...取り乱しました。 int i = 0; // Java,C#,C++,C // let i = 0; // JavaScript i += 1 + ++i; // 変数 i の値は? まとめ:整数型の変数iが値0で初期化さているとき、下記プログラミング言語における処理結果は次の通り。 Java:値2 JavaScript:値2 C#:値2 C:未定…
こんにちは。福岡オフィスエンジニアの @petamoriken です。普段ECMAScriptやWeb標準を追ったり、DenoやTypeScriptにコントリビュートしたりしています。 PIXIV DEV MEETUP 2024にて、「フロントエンドの標準仕様をどう追っているか」という内容でLTをしました。その内容に触れながら軽く当日を振り返ろうと思います。 speakerdeck.com ピクシブフロントエンド互助会 ピクシブでは2018年5月からフロントエンド互助会を開催しています。毎週フロントエンドエンジニアが集まり、最近の出来事や悩みなどを共有しています。 「今週の出来事🔨」「お悩…
'Programming Languages That Blew My Mind'というブログ記事で、8歳からプログラマーとして活動しているDavid Tellerさんが、人生で出会った革新的なプログラミング言語について紹介している。 BASIC A language designed to make programming simple. Mind blown: Programming my own games! Mind blown: Arrays (or DIM, as they were called)! Mind blown: GOTO! Mind blown: GOSUB! Ori…
どういうこと 経緯 どういうこと 適当なApps Scriptオンラインエディタで試してみてください。保存時にエラーになるはず(2024/10/20 現在) // クラスフィールドでの定義はエラーになる // class Human{ // static category; // } // constructorでの定義だと大丈夫 class Human{ constructor(){ this.category = "animal"; } }
Node学園で行われたShane Carrさんの「ECMA-402をマスターしよう」の発表が面白かった docs.google.com ECMAScriptにおける I18Nについての話し 例えば、Youtubeのサイトを見ると 3.5Mviews 357万 回視聴 のような、ローカルな表記のブレがある これだけであればまだ良いかもしれないが 他にも、日本では 07:00~24:00 という表記をよく目にするが、海外では AM/PM の表記が一般的だったりする こういうものは、各国のローカルな表記に対応していないと、ユーザー体験を損ねてしまう恐れがある こういう時にECMAScriptのi18…
厳しい暑さが和らぎ涼しい日には窓を開けて快適に過ごせる日もありますね。しかし、日によっては夏日ぐらいの暑さになったりと、季節の変わり目で慣れない日々が続きますね。 さて、今月も新しいバージョンがリリースされましたので、リリースノートを眺めて気になったところをピックアップしていきたいと思います。 目次 目次 Visual Studio Code ニューリリース 主なリリース エクスプローラーでの検索 おわりに Visual Studio Code ニューリリース Visual Studio Codeのバージョン1.94がリリースされました。 主なリリース 変更点 変更内容 チャットでの公開コード…
kintone のアップロードツールがあるのはありがたいのですが、再度、開発環境でローカルサーバーを使おうとすると、いちいち設定を変更するのが、なかなかかったるいです。 ということで、こちらの記事で、ローカルサーバーへの切り替え処理を書いた(最終的には無駄になった)のですが、その際に package.json に type を追加してプロジェクト全体を ESModuleに指定しました。 package.json { (略) "type": "module", (略) } すると、 webpack を実行した際に、 PS D:\work\tmp\kintone_tutorial\revert_l…
9/21 - 9/22という日程で開催された。BunkyoWesternsで参加して1位☝️ 我々はほとんどの問題が解けていたのだけれども、4問残っていたうちの3問がWebカテゴリ(1問はWeb+Revだが…)ということで申し訳ない気持ち。想定解法やSatoooonさんの解法を見つつ復習していきたい。 以下の目次を見ると、1ポイントなのに4, 5 solvesしか出ていない問題があることがわかると思う。これらは「宿題」としてIERAE CTF 2024の告知段階から出題されていた*1もので、いずれも固定で1ポイントであるものの、事前に解いておく(別に競技中に解いてもよいが…)ことが想定されてい…