SlideShare una empresa de Scribd logo
1 de 22
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="file.js"></script>
 アンケート
 課題は別途指定

Más contenido relacionado

La actualidad más candente

モテる JavaScript
モテる JavaScriptモテる JavaScript
モテる JavaScript
Osamu Monoe
 

La actualidad más candente (9)

Adobe JSX入門
Adobe JSX入門Adobe JSX入門
Adobe JSX入門
 
Flux with RxSwift
Flux with RxSwiftFlux with RxSwift
Flux with RxSwift
 
Scene BuilderでFXML
Scene BuilderでFXMLScene BuilderでFXML
Scene BuilderでFXML
 
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
Jhs portfolio
Jhs portfolioJhs portfolio
Jhs portfolio
 
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
 
モテる JavaScript
モテる JavaScriptモテる JavaScript
モテる JavaScript
 
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブAppDjango 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
 

Destacado

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
 

Destacado (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)
 
後期02
後期02後期02
後期02
 
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
 
後期講座01
後期講座01後期講座01
後期講座01
 
後期講座07
後期講座07後期講座07
後期講座07
 
後期05
後期05後期05
後期05
 
前期講座03
前期講座03前期講座03
前期講座03
 
前期講座06
前期講座06前期講座06
前期講座06
 
後期講座03
後期講座03後期講座03
後期講座03
 
Illust bookmark
Illust bookmarkIllust bookmark
Illust bookmark
 
Git 初心者のための GitHub Pages
Git 初心者のための GitHub PagesGit 初心者のための GitHub Pages
Git 初心者のための GitHub Pages
 
後期講座05
後期講座05後期講座05
後期講座05
 
前期講座04
前期講座04前期講座04
前期講座04
 
前期講座07
前期講座07前期講座07
前期講座07
 
OpenIL vol.1
OpenIL vol.1OpenIL vol.1
OpenIL vol.1
 
後期講座08
後期講座08後期講座08
後期講座08
 
pixiv SUMMER BOOT CAMP 2013
pixiv SUMMER BOOT CAMP 2013pixiv SUMMER BOOT CAMP 2013
pixiv SUMMER BOOT CAMP 2013
 
後期03
後期03後期03
後期03
 
Docker で Deep Learning
Docker で Deep LearningDocker で Deep Learning
Docker で Deep Learning
 

Similar a 前期講座08

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
 
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
 
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
 
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
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 

Similar a 前期講座08 (20)

HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
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 まで ~
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
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
 
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. ~
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発
 
Ajax basic
Ajax basicAjax basic
Ajax basic
 
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...
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
 
HTML5最新動向
HTML5最新動向HTML5最新動向
HTML5最新動向
 
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. ~
 
20050903
2005090320050903
20050903
 
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPIWindows ストアアプリから使かえるセンサーAPIとデバイスAPI
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
Azure Functions 入門
Azure Functions 入門Azure Functions 入門
Azure Functions 入門
 
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
 
Automatic api document generation 101
Automatic api document generation 101Automatic api document generation 101
Automatic api document generation 101
 

Más de Takenori Nakagawa (12)

TensorFlow 入門
TensorFlow 入門TensorFlow 入門
TensorFlow 入門
 
機械学習を用いたパターンロック認証の強化手法
機械学習を用いたパターンロック認証の強化手法機械学習を用いたパターンロック認証の強化手法
機械学習を用いたパターンロック認証の強化手法
 
GitHub Travis-CI Go!
GitHub Travis-CI  Go!GitHub Travis-CI  Go!
GitHub Travis-CI Go!
 
01.app
01.app01.app
01.app
 
Service Workers Push API Hands-on
Service Workers Push API Hands-onService Workers Push API Hands-on
Service Workers Push API Hands-on
 
Service Workers
Service WorkersService Workers
Service Workers
 
OpenGL 3DCG
OpenGL 3DCGOpenGL 3DCG
OpenGL 3DCG
 
WebGL
WebGLWebGL
WebGL
 
01:artificial life
01:artificial life01:artificial life
01:artificial life
 
phpck
phpckphpck
phpck
 
前期講座09
前期講座09前期講座09
前期講座09
 
前期講座05
前期講座05前期講座05
前期講座05
 

前期講座08