Enviar búsqueda
Cargar
Javascriptのあれやこれやをまとめて説明してみる
•
11 recomendaciones
•
3,014 vistas
Shunji Konishi
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 17
Descargar ahora
Descargar para leer sin conexión
Recomendados
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
大樹 小倉
JavaScript基礎勉強会
JavaScript基礎勉強会
大樹 小倉
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou
JavaScript MVC入門
JavaScript MVC入門
大樹 小倉
覚醒!JavaScript
覚醒!JavaScript
Haraguchi Go
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
Recomendados
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
大樹 小倉
JavaScript基礎勉強会
JavaScript基礎勉強会
大樹 小倉
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou
JavaScript MVC入門
JavaScript MVC入門
大樹 小倉
覚醒!JavaScript
覚醒!JavaScript
Haraguchi Go
JavaScriptユーティリティライブラリの紹介
JavaScriptユーティリティライブラリの紹介
Yusuke Hirao
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
キメるClojure
キメるClojure
Yoshitaka Kawashima
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
sohta
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
Yuki Fujisawa
AngularJS2でつまづいたこと
AngularJS2でつまづいたこと
Takehiro Takahashi
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Yoshitaka Kawashima
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
yy yank
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
コンパイラ指向ReVIEW
コンパイラ指向ReVIEW
Masahiro Wakame
Async DeepDive basics
Async DeepDive basics
Kouji Matsui
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
Sd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 White
Akio Katayama
Griffon10 in groovy_fx
Griffon10 in groovy_fx
kimukou_26 Kimukou
Java script1
Java script1
Kiminari Homma
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Shunji Konishi
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
Shingo Inoue
Más contenido relacionado
La actualidad más candente
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
キメるClojure
キメるClojure
Yoshitaka Kawashima
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
sohta
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
Yuki Fujisawa
AngularJS2でつまづいたこと
AngularJS2でつまづいたこと
Takehiro Takahashi
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Yoshitaka Kawashima
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
yy yank
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
コンパイラ指向ReVIEW
コンパイラ指向ReVIEW
Masahiro Wakame
Async DeepDive basics
Async DeepDive basics
Kouji Matsui
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
Sd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 White
Akio Katayama
Griffon10 in groovy_fx
Griffon10 in groovy_fx
kimukou_26 Kimukou
La actualidad más candente
(19)
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
キメるClojure
キメるClojure
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
AngularJS2でつまづいたこと
AngularJS2でつまづいたこと
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
コンパイラ指向ReVIEW
コンパイラ指向ReVIEW
Async DeepDive basics
Async DeepDive basics
JavaScript 研修
JavaScript 研修
Sd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 White
Griffon10 in groovy_fx
Griffon10 in groovy_fx
Similar a Javascriptのあれやこれやをまとめて説明してみる
Java script1
Java script1
Kiminari Homma
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Shunji Konishi
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
Shingo Inoue
Prototypeベース in JavaScript
Prototypeベース in JavaScript
Ryo Maruyama
ML system design_pattern
ML system design_pattern
yusuke shibui
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)
Takaichi Ito
Groovyコンファレンス
Groovyコンファレンス
Shinichiro Takezaki
Webスクレイピング用の言語っぽいものを作ったよ
Webスクレイピング用の言語っぽいものを作ったよ
Takaichi Ito
SPA×Auth0
SPA×Auth0
春奈 岡
おとなのテキストマイニング
おとなのテキストマイニング
Munenori Sugimura
わかる LT@2
わかる LT@2
Shingo Inoue
Lombok ハンズオン
Lombok ハンズオン
Hiroto Yamakawa
ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前
Yusuke Kamo
Reactつかってみた
Reactつかってみた
Minori Tokuda
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Hisateru Tanaka
Ll tiger clojure
Ll tiger clojure
Toshiaki Maki
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012
Yasuhito Yabe
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
Similar a Javascriptのあれやこれやをまとめて説明してみる
(20)
Java script1
Java script1
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
Prototypeベース in JavaScript
Prototypeベース in JavaScript
ML system design_pattern
ML system design_pattern
Web制作勉強会 #2
Web制作勉強会 #2
Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)
Groovyコンファレンス
Groovyコンファレンス
Webスクレイピング用の言語っぽいものを作ったよ
Webスクレイピング用の言語っぽいものを作ったよ
SPA×Auth0
SPA×Auth0
おとなのテキストマイニング
おとなのテキストマイニング
わかる LT@2
わかる LT@2
Lombok ハンズオン
Lombok ハンズオン
ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前
Reactつかってみた
Reactつかってみた
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Ll tiger clojure
Ll tiger clojure
PHP基礎勉強会
PHP基礎勉強会
今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Más de Shunji Konishi
Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話
Shunji Konishi
Salesforce連携のためのOData入門
Salesforce連携のためのOData入門
Shunji Konishi
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
Shunji Konishi
MochaとChaiでやるJavaScriptテスト
MochaとChaiでやるJavaScriptテスト
Shunji Konishi
SendGridサンプルの紹介
SendGridサンプルの紹介
Shunji Konishi
セキュリティの考え方
セキュリティの考え方
Shunji Konishi
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
Shunji Konishi
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
Shunji Konishi
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Shunji Konishi
Heroku tips1
Heroku tips1
Shunji Konishi
Playframework1でSeleniumテスト
Playframework1でSeleniumテスト
Shunji Konishi
Heroku Dyno再起動時の振る舞い
Heroku Dyno再起動時の振る舞い
Shunji Konishi
Dyno cycling behavior of Heroku
Dyno cycling behavior of Heroku
Shunji Konishi
Herokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツール
Shunji Konishi
Play1 to Play2
Play1 to Play2
Shunji Konishi
Herokuのログ解析ツール
Herokuのログ解析ツール
Shunji Konishi
Excel2 canvas
Excel2 canvas
Shunji Konishi
特盛!Heroku
特盛!Heroku
Shunji Konishi
文字コードのお話
文字コードのお話
Shunji Konishi
High traffic questionnaire site
High traffic questionnaire site
Shunji Konishi
Más de Shunji Konishi
(20)
Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話
Salesforce連携のためのOData入門
Salesforce連携のためのOData入門
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
MochaとChaiでやるJavaScriptテスト
MochaとChaiでやるJavaScriptテスト
SendGridサンプルの紹介
SendGridサンプルの紹介
セキュリティの考え方
セキュリティの考え方
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Heroku tips1
Heroku tips1
Playframework1でSeleniumテスト
Playframework1でSeleniumテスト
Heroku Dyno再起動時の振る舞い
Heroku Dyno再起動時の振る舞い
Dyno cycling behavior of Heroku
Dyno cycling behavior of Heroku
Herokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツール
Play1 to Play2
Play1 to Play2
Herokuのログ解析ツール
Herokuのログ解析ツール
Excel2 canvas
Excel2 canvas
特盛!Heroku
特盛!Heroku
文字コードのお話
文字コードのお話
High traffic questionnaire site
High traffic questionnaire site
Último
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Último
(9)
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Javascriptのあれやこれやをまとめて説明してみる
1.
クロージャとか即時関数と か関数オブジェクトとか、 JavaScriptのあれやこれや
を⼀一つのサンプルで全部説 明してみる 株式会社FLECT ⼩小⻄西俊司 2014/10/09
2.
この⽂文書の⽬目的 u 某案件で⾒見見つけた、(多分ネット上からコピペしてき
たと思われる)ほんの数⾏行行のコードが、読み解くのに u クロージャ u 即時関数 u オブジェクトとしての関数 u 変数の巻き上げ u などの理理解が必要になるというとても優れものの、い けてねーコードだったので隅々まで解説してみる
3.
要件 u 複数の画像ファイルを選択した時に、そのすべてのファイルのファ
イル名とプレビューを表⽰示する u HTMLのみで⾏行行いサーバとの通信はなし u jQueryは使っても良良い
4.
ヒント: FileReader u
ローカルファイルの読み込みにはHTML5のFileReaderクラスが使⽤用 出来る u readAsDataURLメソッドを実⾏行行すると、読み込み完了了時にonloadイ ベントが発⽣生 u イベント内でe.target.resultでDataURLが取得できる
5.
書いてしまいがちなコード u これは正しく動作する?
6.
動作しない u 画像は正しく表⽰示されるがファイル名は
すべて最後のファイル名になる u スコープの問題 u クロージャと変数束縛 u シングルスレッド実⾏行行
7.
JavaScriptにブロックス コープはない u
JavaScriptの変数宣⾔言はどこで⾏行行っても関数の先頭で⾏行行われたの と同じになる(変数の巻き上げ、と呼ばれている) ただし、可読性をあげ るためには、変数は使 うところで宣⾔言した⽅方 が良良い。 この場合、⻑⾧長い関数で は後の⽅方で宣⾔言する変 数名が既に使われてい るかもしれないという 問題が発⽣生するが、そ もそも、⼀一⾒見見でつかめ ないような⻑⾧長い関数は 書くべきではない
8.
クロージャと変数束縛 u クロージャでは外側のスコープの変数が使えるが、その際の値は
実⾏行行時点での値になる u 下記関数では0..9が表⽰示される
9.
シングルスレッド実⾏行行 u reader#onloadが動くのはchangeイベントを抜けた後
u この時file変数は最後のファイルを指している
10.
ではどう書けば良良いのか?
11.
即時関数を利利⽤用 u FileReaderでググると⼤大概この書き⽅方が紹介されている
12.
即時関数とは u 関数を定義してすぐに実⾏行行するJavaScriptの記法
u 関数定義⾃自体を括弧で括って、それを実⾏行行するための引数の括 弧を後ろに付ける u ⼀一番良良く⾒見見かける⽤用例例はscriptタグ内でスコープ を形成するケース u これによってグローバル変数を汚さないようにしている
13.
jQueryプラグインでよく見 る例 u
$はprototype.js等の別のライブラリでも使⽤用 されているので必ずjQueryオブジェクトを指 すようにする u undefinedは変数名として使⽤用できるので明 ⽰示的に宣⾔言して、引数を渡さないことによっ て確実にundefinedにしている
14.
このケースのポイント u 即時関数によって新たなスコープが形成され、file変数が固定される
u 内側の変数は外側の変数を隠す
15.
関数を返す関数 u JavaScriptでは普通に使われる
u 多くの場合このケースのようにスコー プの形成と変数束縛のために使⽤用され る u 分岐でreturnする関数を切切り替える ケースもあるがその場合は、関数⾃自体 は別に宣⾔言する⽅方が良良い u ぱっと⾒見見わかりにくいので、可能な限 り使わない⽅方が良良い
16.
もっと良良い書き⽅方 u jQuery.eachでfile変数が束縛されているので即時関数を使
⽤用する必要がない
17.
まとめ u スコープを形成。他の⾔言語だとあまり聞
かないけどJavaScriptでは超重要 u この辺がちゃんとわかってないとjQuery とかAngularとかのソースを⾒見見てもまった く理理解できない u 配列列のループは原則forでまわさず jQuery.eachを使⽤用する u Array.forEachもあるが古いブラウザは対 応していない u ネットからコードをコピる場合も思考停 ⽌止せずにちゃんと意味を理理解する
Descargar ahora