SlideShare a Scribd company logo
Enviar pesquisa
Carregar
JavaScriptで「キャピタライズ」を 実装してみる
Denunciar
Compartilhar
iPride Co., Ltd.
iPride Co., Ltd.
Seguir
•
0 gostou
•
26 visualizações
1
de
14
JavaScriptで「キャピタライズ」を 実装してみる
•
0 gostou
•
26 visualizações
Denunciar
Compartilhar
Baixar agora
Baixar para ler offline
Tecnologia
2023/06/16の勉強会で発表されたものです。
Leia mais
iPride Co., Ltd.
iPride Co., Ltd.
Seguir
Recomendados
C# コンパイラーの書き換え作業の話 por
C# コンパイラーの書き換え作業の話
信之 岩永
2.5K visualizações
•
54 slides
TypeScriptをオススメする理由 por
TypeScriptをオススメする理由
Yusuke Naka
13.4K visualizações
•
60 slides
ちゃんとWeb会議スライド『Coffee script』 por
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
1.9K visualizações
•
30 slides
いろいろな言語で見る「0埋め」の実装方法 por
いろいろな言語で見る「0埋め」の実装方法
iPride Co., Ltd.
52 visualizações
•
10 slides
第5回アドオンモジュールセミナー発表資料 por
第5回アドオンモジュールセミナー発表資料
oreno
192 visualizações
•
19 slides
コンパイラ指向ReVIEW por
コンパイラ指向ReVIEW
Masahiro Wakame
2.3K visualizações
•
28 slides
Mais conteúdo relacionado
Similar a JavaScriptで「キャピタライズ」を 実装してみる
最近の単体テスト por
最近の単体テスト
Ken Morishita
15.6K visualizações
•
73 slides
Getting start with knockout.js por
Getting start with knockout.js
Akio Ishida
2.3K visualizações
•
19 slides
第52回なんてかんたんなJavaEE por
第52回なんてかんたんなJavaEE
civicpg
3.7K visualizações
•
33 slides
Javaで1から10まで書いた話(sanitized) por
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
12.4K visualizações
•
164 slides
Web制作勉強会 #2 por
Web制作勉強会 #2
Moto Yan
614 visualizações
•
26 slides
JavaScriptCore.framework の普通な使い方 #cocoa_kansai por
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
38.5K visualizações
•
86 slides
Similar a JavaScriptで「キャピタライズ」を 実装してみる
(20)
最近の単体テスト por Ken Morishita
最近の単体テスト
Ken Morishita
•
15.6K visualizações
Getting start with knockout.js por Akio Ishida
Getting start with knockout.js
Akio Ishida
•
2.3K visualizações
第52回なんてかんたんなJavaEE por civicpg
第52回なんてかんたんなJavaEE
civicpg
•
3.7K visualizações
Javaで1から10まで書いた話(sanitized) por Tokuhiro Matsuno
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
•
12.4K visualizações
Web制作勉強会 #2 por Moto Yan
Web制作勉強会 #2
Moto Yan
•
614 visualizações
JavaScriptCore.framework の普通な使い方 #cocoa_kansai por Tomohiro Kumagai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
•
38.5K visualizações
JavaScriptトレンド総括(2014) por Tetsuharu OHZEKI
JavaScriptトレンド総括(2014)
Tetsuharu OHZEKI
•
23.5K visualizações
JavaScriptトレンド総括(2014) por VOYAGE GROUP
JavaScriptトレンド総括(2014)
VOYAGE GROUP
•
1.5K visualizações
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1 por 耕平 谷口
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
耕平 谷口
•
2.2K visualizações
議論を描く技術「ファシリテーショングラフィック」 por nishikawa_makoto7
議論を描く技術「ファシリテーショングラフィック」
nishikawa_makoto7
•
26.1K visualizações
⑮jQueryをおぼえよう!その1 por Nishida Kansuke
⑮jQueryをおぼえよう!その1
Nishida Kansuke
•
11.2K visualizações
Start!! Ruby por mitim
Start!! Ruby
mitim
•
1.9K visualizações
LT#7 Hello coffeeしてきた por Shingo Inoue
LT#7 Hello coffeeしてきた
Shingo Inoue
•
3.8K visualizações
PHP フィールドインジェクションに挑戦する PHP勉強会2014 por Yuuki Takezawa
PHP フィールドインジェクションに挑戦する PHP勉強会2014
Yuuki Takezawa
•
1.4K visualizações
演習:プログラミング言語処理をやってみよう (ver.1.01) por Takashi Ishio
演習:プログラミング言語処理をやってみよう (ver.1.01)
Takashi Ishio
•
939 visualizações
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践 por LINE Corporation
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
LINE Corporation
•
4K visualizações
Scala入門 por Yoshifumi Takeshima
Scala入門
Yoshifumi Takeshima
•
303 visualizações
Javaに這いよる.NET por Hiroshi Maekawa
Javaに這いよる.NET
Hiroshi Maekawa
•
1.2K visualizações
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1 por Shohei Okada
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
Shohei Okada
•
5.6K visualizações
古い?ダサい?まだまだイケルChef! por Naoto Ishizawa
古い?ダサい?まだまだイケルChef!
Naoto Ishizawa
•
792 visualizações
Mais de iPride Co., Ltd.
画像生成AIの問題点 por
画像生成AIの問題点
iPride Co., Ltd.
138 visualizações
•
9 slides
AI入門 por
AI入門
iPride Co., Ltd.
192 visualizações
•
99 slides
MVCになぞらえて理解するReact por
MVCになぞらえて理解するReact
iPride Co., Ltd.
220 visualizações
•
19 slides
AIについて学んだこと ~ 生成AIとは? ~ por
AIについて学んだこと ~ 生成AIとは? ~
iPride Co., Ltd.
85 visualizações
•
32 slides
OAuth2.0について por
OAuth2.0について
iPride Co., Ltd.
33 visualizações
•
18 slides
ゼロトラストについて学んだこと por
ゼロトラストについて学んだこと
iPride Co., Ltd.
23 visualizações
•
23 slides
Mais de iPride Co., Ltd.
(20)
画像生成AIの問題点 por iPride Co., Ltd.
画像生成AIの問題点
iPride Co., Ltd.
•
138 visualizações
AI入門 por iPride Co., Ltd.
AI入門
iPride Co., Ltd.
•
192 visualizações
MVCになぞらえて理解するReact por iPride Co., Ltd.
MVCになぞらえて理解するReact
iPride Co., Ltd.
•
220 visualizações
AIについて学んだこと ~ 生成AIとは? ~ por iPride Co., Ltd.
AIについて学んだこと ~ 生成AIとは? ~
iPride Co., Ltd.
•
85 visualizações
OAuth2.0について por iPride Co., Ltd.
OAuth2.0について
iPride Co., Ltd.
•
33 visualizações
ゼロトラストについて学んだこと por iPride Co., Ltd.
ゼロトラストについて学んだこと
iPride Co., Ltd.
•
23 visualizações
Recoilライブラリを 触ってみる por iPride Co., Ltd.
Recoilライブラリを 触ってみる
iPride Co., Ltd.
•
27 visualizações
ReactでuseEffect()を減らしたい話 por iPride Co., Ltd.
ReactでuseEffect()を減らしたい話
iPride Co., Ltd.
•
83 visualizações
AIについて学んだこと ~ AIとは? ~ por iPride Co., Ltd.
AIについて学んだこと ~ AIとは? ~
iPride Co., Ltd.
•
21 visualizações
単一責任の原則について por iPride Co., Ltd.
単一責任の原則について
iPride Co., Ltd.
•
24 visualizações
オブジェクト指向 por iPride Co., Ltd.
オブジェクト指向
iPride Co., Ltd.
•
21 visualizações
Pythonで学ぶ数理計画法の初歩 por iPride Co., Ltd.
Pythonで学ぶ数理計画法の初歩
iPride Co., Ltd.
•
22 visualizações
OIDC(OpenID Connect)について解説③ por iPride Co., Ltd.
OIDC(OpenID Connect)について解説③
iPride Co., Ltd.
•
33 visualizações
DrupalをDockerで起動してみる por iPride Co., Ltd.
DrupalをDockerで起動してみる
iPride Co., Ltd.
•
50 visualizações
HTTPの仕組みについて por iPride Co., Ltd.
HTTPの仕組みについて
iPride Co., Ltd.
•
29 visualizações
通信プロトコルについて por iPride Co., Ltd.
通信プロトコルについて
iPride Co., Ltd.
•
16 visualizações
OIDC(OpenID Connect)について解説① por iPride Co., Ltd.
OIDC(OpenID Connect)について解説①
iPride Co., Ltd.
•
49 visualizações
SpringBootにおけるテンプレートエンジンの活用 por iPride Co., Ltd.
SpringBootにおけるテンプレートエンジンの活用
iPride Co., Ltd.
•
174 visualizações
Java研修 por iPride Co., Ltd.
Java研修
iPride Co., Ltd.
•
21 visualizações
SpringBootの研修本で学んだこと por iPride Co., Ltd.
SpringBootの研修本で学んだこと
iPride Co., Ltd.
•
50 visualizações
Último
定例会スライド_キャチs 公開用.pdf por
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
146 visualizações
•
64 slides
光コラボは契約してはいけない por
光コラボは契約してはいけない
Takuya Matsunaga
28 visualizações
•
17 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 por
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
28 visualizações
•
36 slides
IPsec VPNとSSL-VPNの違い por
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
606 visualizações
•
8 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 por
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PC Cluster Consortium
66 visualizações
•
12 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 por
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
109 visualizações
•
26 slides
Último
(7)
定例会スライド_キャチs 公開用.pdf por Keio Robotics Association
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
•
146 visualizações
光コラボは契約してはいけない por Takuya Matsunaga
光コラボは契約してはいけない
Takuya Matsunaga
•
28 visualizações
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 por PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
•
28 visualizações
IPsec VPNとSSL-VPNの違い por 富士通クラウドテクノロジーズ株式会社
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
•
606 visualizações
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 por PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PC Cluster Consortium
•
66 visualizações
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 por Hitachi, Ltd. OSS Solution Center.
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
•
109 visualizações
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 por Hitachi, Ltd. OSS Solution Center.
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
•
10 visualizações
JavaScriptで「キャピタライズ」を 実装してみる
1.
JavaScriptで 「キャピタライズ」を 実装してみる 執筆者:トビウオ
2.
目次 • キャピタライズとは? • 実装例①〜③ •
実装同士のパフォーマンス比較 • おまけ:Unicodeの範囲で考える
3.
キャピタライズとは? • 元々の単語を「lanGUage」とする • LANGUAGE←全部大文字にする •
language←全部小文字にする • Language←先頭だけ大文字にする 今回扱う のはこれ
4.
キャピタライズとは? • JavaScriptで書くとこんな感じ • この中で
toCapitalize() を創りたい
5.
実装例① • すぐ思いつくだろう実装はこんな感じ • 先頭の文字だけ切り取って大文字にする •
それ以外の文字列を切り取って小文字にする
6.
実装例② • 正規表現を使って先頭文字だけ置換する • JavaScriptの正規表現で「w」は「[A-Za-z0- 9_]」と同じ意味 出典:https://www.samanthaming.com/pictorials/how-to-capitalize-a-string/
7.
実装例③ • 「upper camel
case」のように、複数単語のそれ ぞれの先頭文字を大文字にしたい場合の例
8.
どの実装がベターなのか? • 実装例③は複数単語を含むテキストを扱う場合 に使う • 実装例①と②は、①の方がずっと高速 •
実装例①は、String.prototypeから派生するより 、普通のfunctionにした方がずっと高速
9.
どの実装がベターなのか? 出典:https://stackoverflow.com/questions/1026069/ • 実装1と実装3は無視で きるほどの差 • 実装2は実装1より半分 ほど遅い •
実装4は実装1の1/5ほ どの速度しかない
10.
おまけ:Unicodeの話をしよう • 先ほどまでの実装で、「普通の英数字(ASCIIコー ドの範囲内)」なら問題ない • 「AbC」など、それ以外の文字の先頭も大 文字にしたい場合は話がややこしくなる このスライド以降の出典: https://stackoverflow.com/questions/1026069/
11.
おまけ:Unicodeの話をしよう • スプレッド記法を使うとUnicodeな文字でも1文字 づつにバラせる • 頭の文字だけ
toUpperCase() で大文字にする
12.
おまけ:Unicodeの話をしよう • 先ほどのだと、例えば1万文字ある文字列相手だと 非効率なため、先頭文字だけ切り出して頑張る手も
13.
おまけ:Unicodeの話をしよう • 実は同じ文字でも言語によって「大文字・小文字 」の変換結果が変わったりする • 例えば「i」を、英語と考えて大文字にすると「I」 だが、トルコ語だと「İ」に変換される
14.
おまけ:Unicodeの話をしよう • なので言語指定できるように修正するとこうなる