SlideShare a Scribd company logo
1 of 27
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
つなぐる株式会社
代表取締役 井口 敬之
課題研究【JavaScriptの基礎理論と活用方法】
2015.06.15
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
プログラムとは
コンピュータに対する命令(処理)を記述したもの。
wikiより引用
• 順番に処理をする。(順次)
• 繰り返し処理をする。(反復)
• ある条件の時に処理をする。(分岐)
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
プログラミング言語
 プログラムを書くために使われる言葉
• Java
• C#
• VB(Visual Basic)
• C
• C++
• Ruby
• Perl
• JavaScript
さぁ、やれ!
はい!
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaとJavaScriptって違うの?
これぐらい違います!
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaとJavaScriptって違うの?
これぐらい違います!
インド インドネシア
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
Java VS JavaScript
項目 Java JavaScript
実行形式 コンパイラ インタプリタ
型 チェックが厳しい 自由
用途 主にサーバ側 主にクライアント側
インターネットにアクセス
ページをダウンロード
クライアント サーバ
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScript
実行環境が主にウェブブラウザに実装され、動的な
ウェブサイト構築や、リッチインターネットアプリ
ケーションなど高度なユーザインタフェースの開発
に用いられる。
wikiより引用
var username = prompt("名前を入力して下さい", ""); // 入力を要求する
if ( username != "" ) { // 入力があった場合
document.write(username, "さん、ようこそ!"); // 画面に出力
}
else { // 入力がなかった場合
document.write("名無しさん、ようこそ!"); // 画面に出力
}
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
それでは実際に書いてみましょう!
1. デスクトップに「exercise」フォルダを作成
2. その中に「helloworld」フォルダを作成
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
Hello World
<html>
<body>
<p id="text">この部分のテキストを書き換えたい!</p>
<script type="text/javascript">
var text = document.getElementById("text");
text.innerHTML = "hello world";
</script>
</body>
</html>
1. 「index.html」ファイルを作成
2. 以下の内容を記述
JavaScriptという言語で書かれたプログラムの集ま
りを「スクリプト」という。
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptの基本的なルール
 大文字小文字は区別する
<html>
<body>
<script type="text/javascript">
var num = 10;
document.write("<p>" + num + "</p>");
document.write("<p>" + Num + "</p>");
</script>
</body>
</html>
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptの基本的なルール
 空白と改行は無視される
var name = "gose";
var name ="gose";
var name = "gose";
var name =
"gose";
var name = "gose";
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptの基本的なルール
 最後にセミコロンを付ける
var age = 10;
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptの基本的なルール
 「//」または「/**/」はコメントとして扱われる
コメントとは、スクリプトの中に書かれるがプログラムとして実行されない
文書のこと。
var name = "御所実業";
name = name + "高校"; // 高校の名前を生成する
/*
* 商品の消費税を
* 計算する
*/
var product = 100;
var price = 0;
price = product * (100 + 8) / 100; /* 税率は8%とする */
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptのデータ型
文字列
文字を扱うとき
数値
数字を扱うとき
論理値
「true」、「false」を扱うとき
null
「値が存在しない」を扱うとき
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptの変数
 変数名の前に、「var」をつけること
var name = "御所実業";
name = name + "高校"; // 高校の名前を生成する
/*
* 商品の消費税を
* 計算する
*/
var product = 100;
var price = 0;
price = product * (100 + 8) / 100; /* 税率は8%とする */
変数とは、扱うデータを一定期間記憶して、必要なときに利用できるように
するために、データに固有の名前を付けたもの。
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptの予約語
 既に仕様で使うと決められているキーワード
break
case
catch
continue
debugger
default
delete
do
else
finally
for
function
if
in
instanceof
new
return
switch
this
throw
try
typeof
var
void
while
with
[引用]https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Reserved_Words
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptの演算子
 演算に使う記号のこと
演算とは、広い意味で「計算すること」を意味する。
例えば、
足し算、引き算、掛け算、割り算。
文字を連結する。
var name = "御所実業";
name = name + "高校"; // 高校の名前を生成する
/*
* 商品の消費税を
* 計算する
*/
var product = 100;
var price = 0;
price = product * (100 + 8) / 100; /* 税率は8%とする */
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
 単一演算子
 算術演算子
 関係演算子
 等価演算子
 ビットシフト演算子
 バイナリビット演算子
 バイナリ理論演算子
 三項演算子
 代入演算子
 カンマ演算子
var name = "御所実業";
name = name + "高校"; // 高校の名前を生成する
/*
* 商品の消費税を
* 計算する
*/
var product = 100;
var price = 0;
price = product * (100 + 8) / 100; /* 税率は8%とする */
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptにおける演算子の優先順位と結合性
 たくさんある演算子を同時に使った場合、優先順
位に従って式が評価される。
 演算子は、結合性に従って式を評価する。
結合性 演算子
右 ! ++ --
左 * / %
左 + -
左 > >= < <=
左 == != === !==
左 &
左 &&
左 ||
右 =
()括弧は、演算子ではないが、最優先で評価される
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaScriptにおける演算子の優先順位と結合性
var name = "御所実業";
name = name + "高校"; // 高校の名前を生成する
/*
* 商品の消費税を
* 計算する
*/
var product = 100;
var price = 0;
price = product * (100 + 8) / 100; /* 税率は8%とする */
結合性 演算子
左 * / %
左 + -
右 =
-------------
①
---------------------
②
①---------
②--------------------
-------------------------- ③
④---------------------------------
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaSctiptが実行する順番(順次)
 プログラムの上から順番に処理する
<html>
<body>
<p id="text">この部分のテキストを書き換えたい!</p>
<script type="text/javascript">
var text = document.getElementById("text");
text.innerHTML = "hello world";
</script>
</body>
</html>
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaSctiptが実行する順番(順次)
 プログラムの上から順番に処理する
<html>
<body>
<script type="text/javascript">
var text = document.getElementById("text");
text.innerHTML = "hello world";
</script>
<p id="text">この部分のテキストを書き換えたい!</p>
</body>
</html>
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaSctiptの繰り返し処理(反復) - while文 -
 一定の条件が満たされている間、処理を繰り返す
<html>
<body>
<p id="text">この部分のテキストを書き換えたい!</p>
<script type="text/javascript">
var text = document.getElementById("text");
var i=0;
while(i<10){
text.innerHTML += "繰り返し"+(i+1)+"回目<br>";
i=i+1;
}
</script>
</body>
</html>
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaSctiptの繰り返し処理(反復)- for文 -
 一定の条件が満たされている間、処理を繰り返す
<html>
<body>
<p id="text">この部分のテキストを書き換えたい!</p>
<script type="text/javascript">
var text = document.getElementById("text");
for(var i=0; i<10; i++){
text.innerHTML += "繰り返し"+(i+1)+"回目<br>";
}
</script>
</body>
</html>
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
JavaSctiptの条件分岐(分岐) - if文 -
 ある条件を満たすなら処理Aを、そうでなければ処
理Bを行う。
<html>
<body>
<p id="text">この部分のテキストを書き換えたい!</p>
<script type="text/javascript">
var text = document.getElementById("text");
for(var i=0; i<10; i++){
if(i==0){
text.innerHTML += "<br>繰り返し"+(i+1)+"回目<br>";
}else{
text.innerHTML += "繰り返し"+(i+1)+"回目<br>";
}
}
</script>
</body>
</html>
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
知っておくと便利!関数
 まとまりのある処理を束ねたもの
つなぐる株式会社
http://www.tunagle.co.jp~ ヒト、モノ、社会をつなぐ ~
知っておくと便利!関数
<html>
<body>
<p id="text">この部分のテキストを書き換えたい!</p>
<script type="text/javascript">
var text = document.getElementById("text");
for(var i=0; i<10; i++){
if(i==0){
writeText("<br>繰り返し"+(i+1)+"回目<br>“);
}else{
writeText("繰り返し"+(i+1)+"回目<br>“);
}
}
/* htmlを書き換える */
function writeText(html){
var text = document.getElementById("text");
text.innerHTML += html;
}
</script>
</body>
</html>

More Related Content

Similar to 課題研究 JavaScriptの基礎理論と活用方法

pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1 pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1 Takuma Morikawa
 
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張典子 松本
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチTomoharu ASAMI
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法Takuma Watabiki
 
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」Takashi Uemura
 
オープンセミナー2015@広島プレゼン
オープンセミナー2015@広島プレゼンオープンセミナー2015@広島プレゼン
オープンセミナー2015@広島プレゼンKakigi Katuyuki
 
Introduction to Creating Websites
Introduction to Creating WebsitesIntroduction to Creating Websites
Introduction to Creating WebsitesJustin Clune
 
ゆるドラ運営記
ゆるドラ運営記ゆるドラ運営記
ゆるドラ運営記亮太 松本
 
gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例知教 本間
 
カメラを利用したアプリを作って約1000人で遊んだ話
カメラを利用したアプリを作って約1000人で遊んだ話カメラを利用したアプリを作って約1000人で遊んだ話
カメラを利用したアプリを作って約1000人で遊んだ話Kenjiro Kubota
 
10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later 10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later Hideki Ohkubo
 
アウラント会社概要201409版
アウラント会社概要201409版アウラント会社概要201409版
アウラント会社概要201409版Hajime Ookoshi
 
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Recruit Technologies
 
ABEJAの デジタルトランスフォーメーション 〜AIが実現するプロセス⾰命〜
ABEJAの デジタルトランスフォーメーション 〜AIが実現するプロセス⾰命〜ABEJAの デジタルトランスフォーメーション 〜AIが実現するプロセス⾰命〜
ABEJAの デジタルトランスフォーメーション 〜AIが実現するプロセス⾰命〜日本ディープラーニング協会(JDLA)
 
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~Kenji Hiranabe
 
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組みPHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組みKenjiro Kubota
 
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010Hiroshi Tokumaru
 

Similar to 課題研究 JavaScriptの基礎理論と活用方法 (20)

pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1 pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
 
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
 
2021_recruit
2021_recruit2021_recruit
2021_recruit
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
 
2011 講演資料
2011 講演資料2011 講演資料
2011 講演資料
 
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
 
オープンセミナー2015@広島プレゼン
オープンセミナー2015@広島プレゼンオープンセミナー2015@広島プレゼン
オープンセミナー2015@広島プレゼン
 
Introduction to Creating Websites
Introduction to Creating WebsitesIntroduction to Creating Websites
Introduction to Creating Websites
 
ゆるドラ運営記
ゆるドラ運営記ゆるドラ運営記
ゆるドラ運営記
 
gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例gumiにおける、海外支社とのAtlassian製品利用事例
gumiにおける、海外支社とのAtlassian製品利用事例
 
カメラを利用したアプリを作って約1000人で遊んだ話
カメラを利用したアプリを作って約1000人で遊んだ話カメラを利用したアプリを作って約1000人で遊んだ話
カメラを利用したアプリを作って約1000人で遊んだ話
 
10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later 10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later
 
アウラント会社概要201409版
アウラント会社概要201409版アウラント会社概要201409版
アウラント会社概要201409版
 
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
 
ABEJAの デジタルトランスフォーメーション 〜AIが実現するプロセス⾰命〜
ABEJAの デジタルトランスフォーメーション 〜AIが実現するプロセス⾰命〜ABEJAの デジタルトランスフォーメーション 〜AIが実現するプロセス⾰命〜
ABEJAの デジタルトランスフォーメーション 〜AIが実現するプロセス⾰命〜
 
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
アジャイル開発の現在・過去・未来~今を知り、源流を訪ね、先を見据える~
 
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組みPHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
 
Microservices on pairs
Microservices on pairsMicroservices on pairs
Microservices on pairs
 
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
 

課題研究 JavaScriptの基礎理論と活用方法

Editor's Notes

  1. 003フォルダ
  2. 004フォルダ
  3. 004フォルダ
  4. 005フォルダ
  5. 006フォルダ