
JavaScriptには、よく使う処理を手続き(プロシージャ)としてまとめる関数という仕組みが備わっている。あらかじめJavaScriptに備わっているものを定義済み関数と呼び、parseInt や parseFloat などがある。三角関数や指数関数といった数学的関数はMathオブジェクトのメソッドとして用意されている。
サンプル・プログラム
定義済み関数 parseInt
「3.1 if~else文」でうるう年を求めるプログラム "ifElse2.html" を作ったが、このとき、キーボードから入力したテキストを整数(西暦年)に変換するのに、parseInt という定義済み関数を使った。
25: let year = document.getElementById('year').value; //西暦年
26: year = parseInt(year, 10); //10進整数化
関数とは、数学で習った一次関数 \( ax+b \)、二次間数 \( ax^2+bx+c \)、三角関数 \( sin(x),\quad cos(x),\quad tan(x) \)、指数関数 \( a^x \) と同じ概念だ。数学的関数だけでなく、よく使う処理(式と制御文の集合)を手続き(プロシージャ)としてまとめたものが関数である。
何らかの値 \( x \) を与えると、決まったルールに則り演算し、結果を返すもので、一般的に \( f(x) \) と書く。
プログラミングでは、与える値 \( x \) を引数、\( f(x) \) の結果値を戻り値または返り値と呼ぶ。

parseInt はJavaScript処理系に用意された定義済み関数で、parseInt(str, radix) のようにして使う。引数はstrとradixの2つで、テキストstrを基数radixの整数(radix進数)とみなし、整数に変換した結果(Number型)を返す。
引数radixは省略可能で、省略時には次のルールに則り変換を行う。
何らかの値 \( x \) を与えると、決まったルールに則り演算し、結果を返すもので、一般的に \( f(x) \) と書く。
プログラミングでは、与える値 \( x \) を引数、\( f(x) \) の結果値を戻り値または返り値と呼ぶ。

parseInt はJavaScript処理系に用意された定義済み関数で、parseInt(str, radix) のようにして使う。引数はstrとradixの2つで、テキストstrを基数radixの整数(radix進数)とみなし、整数に変換した結果(Number型)を返す。
引数radixは省略可能で、省略時には次のルールに則り変換を行う。
- 入力した string が "0x" または "0X" (ゼロに続いて小文字または大文字の X) で始まった場合は、radix を 16 と仮定し、残りの文字列が 16進数として解釈する。
- 入力した string が "0" (ゼロ) で始まった場合は、radix は 8 (8進数) または 10 (10進数) と仮定する。厳密にどちらの基数が選択されるかは実装に依存する。ECMAScript 5 では 10 (10進数) を使用するべきだと明示しているが、すべてのブラウザーが対応しているわけではない。したがって、parseInt関数を使うときは radix を常に指定すべきだ。
- 入力した string がその他の値で始まるときは、基数は 10 (10進数) となる。
関数とメソッド
コラム:手続き型言語とオブジェクト指向型言語

複数の式や制御文をひとまとまりの手続き(プロシージャ)としてモジュール化できるプログラミング言語を手続き型言語を呼ぶ。プロシージャは、JavaScriptやC、C++、BASIC、FORTRAN、PHP、Pythonでは関数と呼ぶ。BASICやFORTRANでは、関数とは別にサブルーチンと呼ぶプロシージャが用意されている。メソッドもプロシージャの一種である。

プロシージャがメソッドでしか現れないC#やJavaはオブジェクト指向型言語と呼ぶ。Java は JavaScript に名前が似ているが、まったくの別物である。

プロシージャがメソッドでしか現れないC#やJavaはオブジェクト指向型言語と呼ぶ。Java は JavaScript に名前が似ているが、まったくの別物である。
オブジェクト指向型言語と手続き型言語の間に優劣はない。数学の方程式で表せるような問題(例:天体の位置計算)をプログラミングするなら手続き型言語の方が短く書けるし、さまざまな種類のデータを取り扱うのであればオブジェクト指向型言語の方が適している。
(この項おわり)