JavaScript ウィンドウサイズやスクロール位置を操作する

<html>
    <head>
        <body>
<!-- moveByメソッド、resizeByメソッドはChromeでは未対応 -->
 <input type="button" value="scrollTo" onclick="window.scrollTo(0,200)"/>
 <input type="button" value="moveBy" onclick="moveBy(100,100)"/>
 <input type="button" value="resizeBy" onclick="window.resizeBy(50,50)"/>
 1<br>
 1<br>
 1<br>
 1<br>
 1<br>
 1<br>
 1<br>
 1 <br>
 1<br>
 1<br>
 
        </body>
    </head>
</html>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript タイマー機能の実装

<script>
 //タイマー機能の実装
 //タイマーIDを格納するためのグローバル変数
 var timer;
 //ページロード時にタイマー処理を登録
 window.onload = function(){
     timer = window.setInterval(
         //現在の時刻を<div id='result'>タグに表示(1000ミリ秒ごとに更新)
         function(){
             var dat = new Date();
             document.getElementById('result').innerHTML = dat.toLocaleTimeString();
         },1000
     );
 };
</script>

<!-- ボタンクリック時にタイマー処理を中止 -->
<input type="button" value="タイマー停止" onclick="clearInterval(timer)"/>
<div id="result"></div>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript サブウィンドウを生成する

<script type="text/javascript">
 //サブウインドウを表すWindowオブジェクトを格納する変数
 var subwin;
 //サブウィンドウを開くボタンクリック時に実行
 function win_open(){
     subwin = window.open('http://www.wings.msn.to/', 'Sample',
     'width=600,height=300,scrollbars=yes,location=yes');
 }
 //サブウィンドウを閉じるボタンクリック時に実行
 function win_close(){
     //変数subwinが空でなく、サブウィンドウが閉じられていない時にのみクローズ
     if(subwin && !subwin.closed){
         subwin.close();
     }
 }
</script>

<input type="button" value="サブウィンドウを開く" onclick="win_open()"/>
<input type="button" value="サブウィンドウを閉じる" onclick="win_close()"/>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript ハンドラー3

<script type="text/javascript">
    //ページロード時に実行されるイベントハンドラを登録
    window.onload = function(){
    //ボタンクリック時に実行されるイベントハンドラを登録
    document.getElementById('btn').onclick = function(){
    window.alert('ボタンがクリックされました');
    };
    };
</script>
<input id="btn" type="button" value="ダイアログ表示"/>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript ハンドラー1

<script type="text/JavaScript">

 function btn_onclick(){
     window.alert('ボタンがクリックされました');
 };
 //-->
</script>

<input type="button" value="ダイアログ表示" onclick="btn_onclick()" />

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript 継承

<script>
//クラスベースなオブジェクト指向によく似た継承を実現する方法
 //予め用意したMemberクラスを継承してSpecialMemberクラスを定義する
 function initializeBase(derive, base, baseArgs){
     base.apply(derive, baseArgs);
     for(prop in base.prototype){
         var proto = derive.constructor.prototype;
         if(!proto[prop]){
             proto[prop] = base.prototype[prop];
         }
     }
 }

 //Memberクラスを定義
 var Member = function(firstName, lastName){
     this.firstName = firstName;
     this.lastName = lastName;
 };

 Member.prototype.getName = function(){
     return this.lastName + ' ' + this.firstName;
 };

 //Memberクラスを継承したSpecialMemberクラスを定義
 var SpecialMember = function(firstName, lastName, role){
     initializeBase(this, Member, [firstName, lastName]);
     this.role = role;
 }

 SpecialMember.prototype.isAdministrator = function(){
     return (this.role == 'Administrator');
 };

 var mem = new SpecialMember('Jhon', 'Paul', 'Administrator');
 document.writeln('名前:' + mem.getName());
 document.writeln('管理者:' + mem.isAdministrator());
</script>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript コンストラクタ

<script>
 var Member = function(firstName, lastName){
//thisはコンストラクタによって生成されるインスタンスを表す。
     this.firstName = firstName;
     this.lastName = lastName;
     this.getName = function(){
         return this.lastName + ' ' + this.firstName;
     }
 };

 var mem = new Member(' Jhon', 'Paul');
 document.writeln(mem.getName());
</script>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript クラス

<script>
 //JavaScriptのオブジェクト指向はプロトタイプベースのオブジェクト指向であり
 //クラスベースのオブジェクト指向ではない

 // 「クラス」を定義
 var Member = function(){};

 //インスタンス化
 var mem = new Member();//JavaScriptでは関数にクラスとしての役割を与えている
 //new演算子によってオブジェクトを生成することを想定した関数オブジェクトのことを
 //コンストラクタと言っている。
 //Member関数がコンストラクタにあたる。
</script>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript this

<script>
 var Member = function(firstName, lastName){
//thisはコンストラクタによって生成されるインスタンスを表す。
     this.firstName = firstName;
     this.lastName = lastName;
     this.getName = function(){
         return this.lastName + ' ' + this.firstName;
     }
 };

 var mem = new Member(' Jhon', 'Paul');
 document.writeln(mem.getName());
</script>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

オブジェクト指向 JavaScript1

<script>
 //JavaScriptのオブジェクト指向はプロトタイプベースのオブジェクト指向であり
 //クラスベースのオブジェクト指向ではない

 // 「クラス」を定義
 var Member = function(){};

 //インスタンス化
 var mem = new Member();//JavaScriptでは関数にクラスとしての役割を与えている
 //new演算子によってオブジェクトを制し得することを想定した関数オブジェクトのことを
 //コンストラクタと言っている。
 //Member関数がコンストラクタにあたる。
</script>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript 高階関数

<script>
 //高階関数arrayWalkを定義
 //引数に与えられた配列dataの内容を、指定されたユーザ定義関数fの規則に従って順番に処理するための高階関数
 function arrayWalk(data, f){
     for (var key in data){
         f(key, data[key]);
     }
 }

 //配列を処理するためのユーザ定義関数
 function showElement(key, value){
     document.writeln(key + ':' + value);
 }

 var ary = [1, 2, 4, 8, 16];
 arrayWalk(ary, showElement);
</script>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript arguments

<script>
 function printf(format){
     //引数の2番め以降を順番に処理
     for (var i = 1; i < arguments.length; i++){
         var pattern = new RegExp('\\{' + (i - 1) + '\\}', 'g');
         format = format.replace(pattern,arguments[i]);
     }
     document.writeln(format);
 }
 printf('こんにちは、{0}さん。私は{1}です。', 'tanaka', 'yamada');
</script>
 
<script>
 //printf()は第一引数で指定された書式文字列に含まれるプレイスホルダ(パラメータの置き場所:{1},{2},...)を第二引数以降の値で置き換えたものを出力する関数
 printf('hello,{0} Im{1}','Jhon', 'Mary');
</script>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScript 型

<script>
 var num = 1;
 document.writeln(typeof num);
 var str = 'こんにちは';
 document.writeln(typeof str);
 var flag = true;
 document.writeln(typeof flag);
 var ary = ['JavaScript', 'Ajax', 'ASP.NET'];
 document.writeln(typeof ary);
 var obj = {x:1, y:2};
 document.writeln(typeof obj);
</script>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

JavaScriptでのHelloWorld

<html>
    <head>
        <meta http-equiv="Content-Type" content=""text/html; charset="UTF-8"/>
        <title>Hello,World!</title>
    </head>
    <body>
        <pre>
            <script type="text/javascript">
                <!--
                     //document.writelnは、指定された文字列を表示するための命令
                     document.writeln('Hello,World!');
                   //-->
            </script>
            <noscript>JavaScriptが利用できません。</noscript>
        </pre>
    </body>
</html>

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

標準ライブラリのqsort

#include<stdio.h>
#include<stdlib.h>
int intcomp(int *x, int *y)
{ return *x - *y; }
int a[10000000];
int main(void)
{ int i, n=0;
        while (scanf("%d", &a[n]) != EOF)
                n++;
        qsort(a, n, sizeof(int), intcomp);
        for (i = 0; i < n; i++)
                printf("%d\n", a[i]);
        return 0;
}