SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Javascriptで苦戦した経験
              @kanayannet




13年2月10日日曜日
先に言っておきます
     ↓の本を読んだ人は知っている事が多いかも?




13年2月10日日曜日
先に言っておきます
      細かいコードが今回多々出ますが、
      後でスライドアップするので、ここで覚えなく
      ても大丈夫です。




13年2月10日日曜日
項目
         1.   new した時
         2.   巻き上げ
         3.   プライベートブラウズ と localStorage
         4.   ios6.0 mobile safari の ajax
         5.   NaN




13年2月10日日曜日
1. new した時




13年2月10日日曜日
注意点

              うっかり、new し忘れて関数を呼ぶと
              処理が成功して、予期せぬグローバル
              変数が入ってしまう




13年2月10日日曜日
うっかりミスを
  こう防いでみました




13年2月10日日曜日
2. 巻き上げ




13年2月10日日曜日
注意点
         var より前に呼び出した変数が
         巻き上げられてしまう
         関数の始めで var 宣言しておいた方が
         安牌ですね。




13年2月10日日曜日
3. localStorage


              localStorage とは、HTML5の
              Webブラウザ内部のデータベー
              ス(KVS)です。




13年2月10日日曜日
3. localStorage




13年2月10日日曜日
3. localStorage




13年2月10日日曜日
3. localStorage




13年2月10日日曜日
3. プライベートブラウズ




13年2月10日日曜日
3. プライベートブラウズ




13年2月10日日曜日
解消はこんな感じ




13年2月10日日曜日
4. ios6.0
   mobile safari の ajax




13年2月10日日曜日
4. ios6.0
   mobile safari の ajax
        これ、mobile safari でキャッシュして
        しまうんですw
        ※cache: false しても キャッシュします!


         http://dev.classmethod.jp/
         smartphone/ios6-safari-post-jquery/

13年2月10日日曜日
解消法法
              プロトコルヘッダに
              Cache-Control "no-cache"

              もしくは...

              電文の引数に違う値(日時とか..)を渡す




13年2月10日日曜日
5. NaN




13年2月10日日曜日
5. NaN

              JavaScriptでは定義されていない
              演算はNaN

              そして、NaN は typeof で評価すると
                      number


13年2月10日日曜日
解消法法




13年2月10日日曜日
まとめ
  苦戦したポイントは大きく二つに分かれます。

              1. javascript の 仕様


              2. ブラウザによる挙動の違い




13年2月10日日曜日
まとめ
              1. javascript の 仕様
                    覚えるw




13年2月10日日曜日
まとめ
        2. ブラウザによる挙動の違い
              1件1件挙動をテストすると見過ごすかも
              しれないので、テスコードを用意しておくと
              便利。

              ※新しいブラウザバージョン出たらテスト




13年2月10日日曜日
PS
              LTやりたいけどネタが
              思いつかないという方へ

              個人的には、こういう経験談的なLT でも
              良いと思っています。




13年2月10日日曜日
PS


              経験をシェアしていくと...
              新しい開発手法や発見に繋がるかも?




13年2月10日日曜日
ご清聴ありがとうございました




13年2月10日日曜日

Mais conteúdo relacionado

Mais procurados

雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013Odyssey Eightbit
 
C#er から見た Turbolinks 3
C#er から見た Turbolinks 3C#er から見た Turbolinks 3
C#er から見た Turbolinks 3dany1468
 
モダンブラウザストレージ
モダンブラウザストレージモダンブラウザストレージ
モダンブラウザストレージKazuyuki Mori
 
JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発Yoichi Toyota
 
Vagrant packana16-otahi
Vagrant packana16-otahiVagrant packana16-otahi
Vagrant packana16-otahiHiroshi Ota
 

Mais procurados (8)

Webページで学ぶJavaScript2013 第6回
Webページで学ぶJavaScript2013 第6回Webページで学ぶJavaScript2013 第6回
Webページで学ぶJavaScript2013 第6回
 
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
 
C#er から見た Turbolinks 3
C#er から見た Turbolinks 3C#er から見た Turbolinks 3
C#er から見た Turbolinks 3
 
node.js
node.jsnode.js
node.js
 
モダンブラウザストレージ
モダンブラウザストレージモダンブラウザストレージ
モダンブラウザストレージ
 
JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発JasmineによるJavascriptテスト駆動開発
JasmineによるJavascriptテスト駆動開発
 
Vagrant packana16-otahi
Vagrant packana16-otahiVagrant packana16-otahi
Vagrant packana16-otahi
 
Raspberry pi + gentoo
Raspberry pi + gentooRaspberry pi + gentoo
Raspberry pi + gentoo
 

Destaque

Basic vulnerability
Basic vulnerabilityBasic vulnerability
Basic vulnerabilityNet Kanayan
 
FLIRone赤外線サーモグラフィで見るコンピュータの世界
FLIRone赤外線サーモグラフィで見るコンピュータの世界FLIRone赤外線サーモグラフィで見るコンピュータの世界
FLIRone赤外線サーモグラフィで見るコンピュータの世界Naoto MATSUMOTO
 
An Easy way to build a server cluster without top of rack switches (MEMO)
An Easy way to build a server cluster without top of rack switches (MEMO)An Easy way to build a server cluster without top of rack switches (MEMO)
An Easy way to build a server cluster without top of rack switches (MEMO)Naoto MATSUMOTO
 
VYATTA USERS MEETING Spring 2014 イントロダクション
VYATTA USERS MEETING Spring 2014 イントロダクションVYATTA USERS MEETING Spring 2014 イントロダクション
VYATTA USERS MEETING Spring 2014 イントロダクションNaoto MATSUMOTO
 

Destaque (6)

Image convert
Image convertImage convert
Image convert
 
Basic vulnerability
Basic vulnerabilityBasic vulnerability
Basic vulnerability
 
FLIRone赤外線サーモグラフィで見るコンピュータの世界
FLIRone赤外線サーモグラフィで見るコンピュータの世界FLIRone赤外線サーモグラフィで見るコンピュータの世界
FLIRone赤外線サーモグラフィで見るコンピュータの世界
 
Http
HttpHttp
Http
 
An Easy way to build a server cluster without top of rack switches (MEMO)
An Easy way to build a server cluster without top of rack switches (MEMO)An Easy way to build a server cluster without top of rack switches (MEMO)
An Easy way to build a server cluster without top of rack switches (MEMO)
 
VYATTA USERS MEETING Spring 2014 イントロダクション
VYATTA USERS MEETING Spring 2014 イントロダクションVYATTA USERS MEETING Spring 2014 イントロダクション
VYATTA USERS MEETING Spring 2014 イントロダクション
 

Semelhante a Js kusen

Getting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuGetting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuMasafumi Ohta
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたらFlashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたらHiroaki Okubo
 
MacRuby を使ってみました
MacRuby を使ってみましたMacRuby を使ってみました
MacRuby を使ってみましたYoshiyuki MIYAGI
 
俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetesMasayuki KaToH
 
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidTaisuke Oe
 
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧めガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧めHiroshi Tokumaru
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報Midori Oge
 
JavaScriptをまじめに考えました+
JavaScriptをまじめに考えました+JavaScriptをまじめに考えました+
JavaScriptをまじめに考えました+Hiroaki Okubo
 
fluent-plugin-resque_stat
fluent-plugin-resque_statfluent-plugin-resque_stat
fluent-plugin-resque_statMakoto Haruyama
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 

Semelhante a Js kusen (12)

Getting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuGetting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsu
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたらFlashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
 
MacRuby を使ってみました
MacRuby を使ってみましたMacRuby を使ってみました
MacRuby を使ってみました
 
俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes
 
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in Android
 
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧めガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧め
 
#31 愛しのst2
#31 愛しのst2#31 愛しのst2
#31 愛しのst2
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報
 
JavaScriptをまじめに考えました+
JavaScriptをまじめに考えました+JavaScriptをまじめに考えました+
JavaScriptをまじめに考えました+
 
fluent-plugin-resque_stat
fluent-plugin-resque_statfluent-plugin-resque_stat
fluent-plugin-resque_stat
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 

Mais de Net Kanayan

Mais de Net Kanayan (20)

FileReader and canvas and server silde
FileReader and canvas and server sildeFileReader and canvas and server silde
FileReader and canvas and server silde
 
Osc16gm
Osc16gmOsc16gm
Osc16gm
 
Open source
Open sourceOpen source
Open source
 
Http2入門の入門
Http2入門の入門Http2入門の入門
Http2入門の入門
 
Es6 cognition
Es6 cognitionEs6 cognition
Es6 cognition
 
ES6 はじめました
ES6 はじめましたES6 はじめました
ES6 はじめました
 
Fxos lt
Fxos ltFxos lt
Fxos lt
 
Ssl
SslSsl
Ssl
 
Blueberrypi
BlueberrypiBlueberrypi
Blueberrypi
 
Browser push notifications
Browser push notificationsBrowser push notifications
Browser push notifications
 
Windows store app html
Windows store app htmlWindows store app html
Windows store app html
 
Sass less
Sass lessSass less
Sass less
 
Ll xcode
Ll xcodeLl xcode
Ll xcode
 
Web creed
Web creedWeb creed
Web creed
 
Js mvc
Js mvcJs mvc
Js mvc
 
Tdd&peapro
Tdd&peaproTdd&peapro
Tdd&peapro
 
J S Smartphone
J S SmartphoneJ S Smartphone
J S Smartphone
 
Nseg jquery mobile
Nseg jquery mobileNseg jquery mobile
Nseg jquery mobile
 
Smart phone gunma.web
Smart phone gunma.webSmart phone gunma.web
Smart phone gunma.web
 
Smart phone
Smart phoneSmart phone
Smart phone
 

Js kusen