狠狠撸

狠狠撸Share a Scribd company logo
JavaScript 基礎Ⅰ
? プログラミングの目的
? 開発の手順
? JavaScript とは
? 変数と変数型
? 制御構文 (if, else)
? 課題
? 膨大な数の計算を高速で行う
? 手間の掛かる処理を自動で行う
? リッチな UI を実装する
テスト
プログラムにバグがないか確認する
実装
プログラミング言語を用いてプログラムを開発する
仕様作成
要件を満たす機能の仕様を定める
要件定義
したいこと、すること(機能)を定義する
? Web ブラウザで動くプログラミング言語
? HTML を動的に操作できる
? HTML5 の API を利用するとブラウザを介して次の
ようなことができる。(一部紹介)
? 非同期通信 (XMLHttpRequest)
? 2D, 3D 画像の描画 (Canvas, WebGL)
? リアルタイム通信 (WebSocket API)
? P2P 通信 (WebRTC)
? 位置情報の取得 (Geolocation API)
? ファイルの操作 (File API)
? JavaScript の内容を細かく説明する時間は無いため、
ライブラリを用いてゲームを作れるところまで、少
し早足で進む。
1. JavaScript の書き方、変数と型、制御構文
2. 関数の宣言と変数スコープ、無名関数
3. ライブラリを用いてゲーム作成Ⅰ
4. ライブラリを用いてゲーム作成Ⅱ
値を格纳する
? 変数とは、値を格纳する箱
? 変数には型があり、 JavaScript には次の 7 種類があ
る
? Number (数値)
? String (文字列)
? Boolean (真偽値)
? Function (関数) ※次の回で説明する
? RegExp (正規表現) ※前期講座では扱わない
? Array (配列)
? Object (連想配列、ハッシュ)
? var を使って宣言する
? C 言語と異なり、型を宣言しない
? 値によって型が決まる
var num = 8;
var str = "ネットワーク講座"
var is8 = true;
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
var obj = {
title: "ネットワーク講座",
index: 8
};
? 数値 (整数、小数の両方を扱う)
var n = 8;
var m = 9;
// 四則演算 (ブラウザで実行してみよう)
console.log(n + m);
console.log(n - m);
console.log(n * m);
console.log(n / m);
console.log(n % m);
? 文字列 (char 型は存在しない)
var str = "ネットワーク講座";
// String のプロパティ、メソッドの呼び出し
console.log(str.length);
console.log(str.slice(6, 8));
console.log(str[0]);
// 文字列の連結
var s = "08";
console.log(str + s);
? 真偽値
? true か false の どちらかの値を持つ
? if や for, while などの制御構文で使われる
// 変数 bool を true で初期化
var bool = true;
console.log(bool);
// 代入
bool = false;
console.log(bool);
// 比較した結果の代入
bool = 124 % 2 === 0;
console.log(bool);
? 値を一列に格納して扱う
var fruits = ["りんご", "みかん", "バナナ
", "キウイ"];
// Array のプロパティ、メソッドの呼び出し
console.log(fruits.length);
console.log(fruits[0]);
console.log(fruits.join("と"));
? 値と key と value のペアにして扱う
? index を自由に指定できる配列 (連想配列)
var obj = {
title: "ネットワーク講座",
sub_title: "JavaScript 基礎Ⅰ",
index: 8
};
// title, sub_title, index は obj のプロパティになっている
console.log(obj);
console.log(obj.title);
console.log(obj.sub_title);
console.log(obj.index);
プログラムの流れを制御する
? 比較演算子
? == 等しい
? != 等しくない
? === 厳密に等しい (型も比較対象)
? !== 厳密に等しくない (型も比較対象)
? > より大きい
? >= 以上
? < より小さい
? <= 以下
? 論理演算子
? && AND
? || OR
? ! NOT
? 条件式を満たす場合 (true の場合) に実行される
if (条件式) {
/* 実行されるコード */
}
? 例
var n = 55;
if (n % 2 !== 0) {
console.log(n + " は奇数");
}
? if の後に使い、条件式を満たさない場合 (false の場合) に実行される
if (条件式) {
/* 条件式が true の場合に実行されるコード */
} else {
/* 条件式が false の場合に実行されるコード */
}
? 例
var n = 55 + 1;
if (n % 2 !== 0) {
console.log(n + " は奇数");
} else {
console.log(n + " は偶数");
}
? 複数の条件で処理を分岐したい場合、次のように書け
る。
if (条件 A) {
// A
} else if (条件 B) {
// B
} else {
// C
}
? if, else は条件によって実行するコードが 1 行の場合は中括弧 {} を省略できる
if (条件式) /* 条件式を満たす場合に実行される */
else /* 条件式を満たさない場合に実行される */
? つまり、 else if は次を省略して記述したもの
if (条件 A) {
// A
} else {
if (条件 B) {
// B
} else {
// C
}
}
? HTML に書き込む
<script>
/* JavaScript のコード */
</script>
? HTML に読み込む
<script src=/slideshow/08-23773748/23773748/"file.js"></script>
? アンケート
? 課題は別途指定

More Related Content

What's hot (9)

Adobe JSX入門
Adobe JSX入門Adobe JSX入門
Adobe JSX入門
silvers ofsilvers
?
Flux with RxSwift
Flux with RxSwiftFlux with RxSwift
Flux with RxSwift
Yuji Hato
?
Scene BuilderでFXML
Scene BuilderでFXMLScene BuilderでFXML
Scene BuilderでFXML
Yuichi Sakuraba
?
お手軽础箩补虫アプリケーションの作り方
お手軽础箩补虫アプリケーションの作り方お手軽础箩补虫アプリケーションの作り方
お手軽础箩补虫アプリケーションの作り方
Shunji Konishi
?
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
?
Jhs portfolio
Jhs portfolioJhs portfolio
Jhs portfolio
ssuser25d7ff
?
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
?
モテる JavaScript
モテる JavaScriptモテる JavaScript
モテる JavaScript
Osamu Monoe
?
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブAppDjango 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Yikei Lu
?
Flux with RxSwift
Flux with RxSwiftFlux with RxSwift
Flux with RxSwift
Yuji Hato
?
お手軽础箩补虫アプリケーションの作り方
お手軽础箩补虫アプリケーションの作り方お手軽础箩补虫アプリケーションの作り方
お手軽础箩补虫アプリケーションの作り方
Shunji Konishi
?
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
?
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
civic Sasaki
?
モテる JavaScript
モテる JavaScriptモテる JavaScript
モテる JavaScript
Osamu Monoe
?
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブAppDjango 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Yikei Lu
?

Viewers also liked (19)

group presentation katrina cortez (final revision)
group presentation   katrina cortez (final revision)group presentation   katrina cortez (final revision)
group presentation katrina cortez (final revision)
Kc Cortez
?
后期02
后期02后期02
后期02
Takenori Nakagawa
?
2013 04-29 american art collaborative lod meeting - washington dc - web
2013 04-29 american art collaborative lod meeting - washington dc - web2013 04-29 american art collaborative lod meeting - washington dc - web
2013 04-29 american art collaborative lod meeting - washington dc - web
lecmaj
?
后期讲座01
后期讲座01后期讲座01
后期讲座01
Takenori Nakagawa
?
后期讲座07
后期讲座07后期讲座07
后期讲座07
Takenori Nakagawa
?
后期05
后期05后期05
后期05
Takenori Nakagawa
?
前期讲座03
前期讲座03前期讲座03
前期讲座03
Takenori Nakagawa
?
前期讲座06
前期讲座06前期讲座06
前期讲座06
Takenori Nakagawa
?
后期讲座03
后期讲座03后期讲座03
后期讲座03
Takenori Nakagawa
?
Illust bookmark
Illust bookmarkIllust bookmark
Illust bookmark
Takenori Nakagawa
?
Git 初心者のための GitHub Pages
Git 初心者のための GitHub PagesGit 初心者のための GitHub Pages
Git 初心者のための GitHub Pages
Takenori Nakagawa
?
前期讲座04
前期讲座04前期讲座04
前期讲座04
Takenori Nakagawa
?
前期讲座07
前期讲座07前期讲座07
前期讲座07
Takenori Nakagawa
?
OpenIL vol.1
OpenIL vol.1OpenIL vol.1
OpenIL vol.1
Takenori Nakagawa
?
后期讲座08
后期讲座08后期讲座08
后期讲座08
Takenori Nakagawa
?
pixiv SUMMER BOOT CAMP 2013
pixiv SUMMER BOOT CAMP 2013pixiv SUMMER BOOT CAMP 2013
pixiv SUMMER BOOT CAMP 2013
Takenori Nakagawa
?
Docker で Deep Learning
Docker で Deep LearningDocker で Deep Learning
Docker で Deep Learning
Takenori Nakagawa
?

Similar to 前期讲座08 (20)

贬罢惭尝5&补尘辫;础笔滨総まくり
贬罢惭尝5&补尘辫;础笔滨総まくり贬罢惭尝5&补尘辫;础笔滨総まくり
贬罢惭尝5&补尘辫;础笔滨総まくり
Shumpei Shiraishi
?
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
?
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
?
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
?
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
?
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
?
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
Takenori Nakagawa
?
Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発
Yuki Hattori
?
Ajax basic
Ajax basicAjax basic
Ajax basic
Katsuyuki Seino
?
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
?
础辫别虫コアデベロッパーセミナー(础辫别虫コード)071010
础辫别虫コアデベロッパーセミナー(础辫别虫コード)071010础辫别虫コアデベロッパーセミナー(础辫别虫コード)071010
础辫别虫コアデベロッパーセミナー(础辫别虫コード)071010
stomita
?
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
?
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPIWindows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Osamu Monoe
?
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
?
Azure Functions 入門
Azure Functions 入門Azure Functions 入門
Azure Functions 入門
jz5 MATSUE
?
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
Tomoyuki Obi
?
Automatic api document generation 101
Automatic api document generation 101Automatic api document generation 101
Automatic api document generation 101
LINE Corporation
?
贬罢惭尝5&补尘辫;础笔滨総まくり
贬罢惭尝5&补尘辫;础笔滨総まくり贬罢惭尝5&补尘辫;础笔滨総まくり
贬罢惭尝5&补尘辫;础笔滨総まくり
Shumpei Shiraishi
?
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
?
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
?
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
?
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
?
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
?
Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発
Yuki Hattori
?
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
?
础辫别虫コアデベロッパーセミナー(础辫别虫コード)071010
础辫别虫コアデベロッパーセミナー(础辫别虫コード)071010础辫别虫コアデベロッパーセミナー(础辫别虫コード)071010
础辫别虫コアデベロッパーセミナー(础辫别虫コード)071010
stomita
?
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
?
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPIWindows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Osamu Monoe
?
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
?
Azure Functions 入門
Azure Functions 入門Azure Functions 入門
Azure Functions 入門
jz5 MATSUE
?
Automatic api document generation 101
Automatic api document generation 101Automatic api document generation 101
Automatic api document generation 101
LINE Corporation
?

More from Takenori Nakagawa (12)

TensorFlow 入門
TensorFlow 入門TensorFlow 入門
TensorFlow 入門
Takenori Nakagawa
?
机械学习を用いたパターンロック认証の强化手法
机械学习を用いたパターンロック认証の强化手法机械学习を用いたパターンロック认証の强化手法
机械学习を用いたパターンロック认証の强化手法
Takenori Nakagawa
?
GitHub Travis-CI Go!
GitHub Travis-CI  Go!GitHub Travis-CI  Go!
GitHub Travis-CI Go!
Takenori Nakagawa
?
01.app
01.app01.app
01.app
Takenori Nakagawa
?
Service Workers Push API Hands-on
Service Workers Push API Hands-onService Workers Push API Hands-on
Service Workers Push API Hands-on
Takenori Nakagawa
?
Service Workers
Service WorkersService Workers
Service Workers
Takenori Nakagawa
?
OpenGL 3DCG
OpenGL 3DCGOpenGL 3DCG
OpenGL 3DCG
Takenori Nakagawa
?
WebGL
WebGLWebGL
WebGL
Takenori Nakagawa
?
01:artificial life
01:artificial life01:artificial life
01:artificial life
Takenori Nakagawa
?
phpck
phpckphpck
phpck
Takenori Nakagawa
?
前期讲座05
前期讲座05前期讲座05
前期讲座05
Takenori Nakagawa
?

前期讲座08