読者です 読者をやめる 読者になる 読者になる

ぬぬん!

やってみたこと,思ったこと

Javascript初心者が頑張ってます

この記事はdots girls Advent Calendar 2015 - Qiitaの11日目の記事です

今回は JS初心者の私が勉強して躓いたこと、ビックリしたことの話をします
よーし!ハードル下げるぞ!₍₍ (ง ˙ω˙)ว ⁾⁾

なんでJavascript

新卒でweb屋に就職して、普段はPHPしか触ってない。

新しい言語やろうかなーと思っても、Javascriptはカッコ(){}が多いから嫌だとかいう謎理論で若干拒否していた。
でも今後の事も考え、Javascriptに触れなきゃ、出来なきゃマズイ気がしてきて、
サーバサイドもJSでいけるという最近の話を聞くと楽しそうに思えてきた!

気になったらやろう!の精神でチャレンジ

JSの勉強でやったこと

何をやろうと思った時にとりあえず思いついたものから
簡単に触ってみた

アプリケーションを作る

gomayumax.github.io

謝辞ジェネレーターってのを作った!
簡単なDOM操作とイベント受け取って処理するやつ (jQueryだけどまぁいいか)

嫁(Bot)を育てる

どのご家庭にもいるBotにいろいろ機能拡張をしてJSの勉強としてた!
rssの取得や曜日の取得とかとか

f:id:gomayumax:20151211141222p:plain f:id:gomayumax:20151211141213p:plain

なにより愛着湧いてきて非常にたのしーヽ(=´▽`=)ノ
継続しやすくてイイね!

JavascriptTrainingをやる

github.com

mixiが研修で使っている資料が公開されていると聞きつけやってみた!

最初のうちは特に躓くことなく進んでいったのだけれど...
後半が難しくなってきて、非同期処理とイディオム系で行き詰った

自分のできないところ分からないところ
課題が見つかりました

非常にやって良かったと思う

つまづいたところ、わかったこと

ここで、勉強してて衝撃を受けたものをいくつか紹介

上から順に読んでくれない

これは自分で色々つくってて躓いた話。つらみの非同期処理の話。

var result;
function hoge () {
  //なんかちょっと重い処理
  result = 1;
}

hoge();
console.log(result); // undefined

なんでー!!!と発狂してたけど、いろいろ調べるうちに分かってきた 長くなりそうなのでまた後日まとめる!

演算子のお戯れ

+の役割

hoge = +'10' // 10
huga = 10 + '' // '10'

演算子の前後の変数に応じて変数の型が変わっちゃうよ(変数のキャスト)って話。
+の前後に文字列があった場合、その演算は文字列結合になる
変幻自在か\(^o^)/型には気をつけねば\(^o^)/

論理演算

&&|| の話。

0 || 'default' // 'default'

0はfalseなんだ、条件分岐の時にやらかしそう....

{} || 'default' // {}

どちらもtrueなので前の{}が返ってくる。前のほうが優先されるのか

知ってて得する?型の話

typeof function() {} // 'function'

functionなんていう型があるんだ!
確かに変数に関数を定義できちゃうから、そうなってもらわないと困るのか\(^o^)/

typeof [] // 'object'

配列は空でもobjectなんだな!びっくりだよ!
(配列空かどうか見るときめんどくさそう)

typeof undefined // 'undefined'
typeof null // 'object'

null ってグローバル変数で定義されているものかと思っていたよ

まとめ

主にJavascriptTrainingで気になったところを上げていきましたが、まだまだ分かってないことが多すぎです。

勉強し始めの頃は勢いで書いて動いて「やったー!」だったけど、一つ一つ見ていくと仕様が深いなーと思いました。

あと他の言語やっていると「あの言語ではこういうこと出来るのに。。。」とどうしても比較して投げ出したくなる。でもでもここで躓いて止まっててはいけない!

今度は公式のチュートリアルを見よう!そしていろいろ作ろう!

えもい!(おしまい)