【JavaScript】基本データを扱うためのオブジェクト①
さ、前のわからなかった私が続きをやりますよ
Stringオブジェクト
文字列型(string)の値を扱うためのラッパーオブジェクトで
文字列の抽出や加工、検索などを行うための機能を提供する
var str = 'こんにちは';
new演算子で明示的に生成することもできるが
通常はリテラル表現を使って上記のような記述をする
ふむふむ
検索
- indexOf(substr [,start])
- 文字列前方(start+1文字目)から部分文字列substrを検索
- lastIndexOf(substr [,start])
- 文字列後方(start+1文字目)から部分文字列substrを検索
var str1 = 'にわにはにわにわとりがいる'; document.writeln(str1.indexOf('にわ')); //0(先頭から) document.writeln(str1.lastIndexOf('にわ')); //6(末尾から検索) document.writeln(str1.indexOf('にわ', 3)); //4(4文字目から右方向検索) document.writeln(str1.lastIndexOf('わ', 5)); //5(6文字目から左方向検索) document.writeln(str1.indexOf('ガーデン')); //-1(不一致)
部分文字列
- charAt(n)
- n+1番目の文字を抽出
- slice(start [,end])
- 文字列からstart+1~end文字目を抽出
- substring(start [,end])
- 文字列からstart+1~end文字目を抽出
- substr(start [,cnt])
- 文字列のstart+1文字目からcnt文字を抽出
- split(str [,limit])
- 文字列を分割文字列strで分割し、その結果を配列として取得(引数limitは最大分割数)
var str1 = 'にわにはにわにわとりがいる'; document.writeln(str1.charAt(11)); //い(12文字目を抽出) document.writeln(str1.slice(5, 8)); //わにわ(6~8文字目を抽出) document.writeln(str1.substring(5, 8)); //わにわ(6~8文字目を抽出) document.writeln(str1.substr(5, 6)); //わにわとりが(6文字目から6文字を抽出) document.writeln(str1.split('が')); //にわにはにわにわとり,いる document.writeln(str1.split('あ')); //にわにはにわにわとりがいる(対象文字列に含まれない文字列を分割文字列に指定) document.writeln(str1.split('わ', 3)); //に,にはに,に(3つに分割)
部分文字列を抽出する際の注意
- substring/sliceメソッド
- 開始位置~終了位置の範囲で抽出箇所を指定
- substrメソッド
- 開始位置からの文字数指定で抽出箇所を指定
substringメソッドとsliceメソッドの違い
- 引数start>引数endである場合
var str1 = 'みこむらめもむら'; document.writeln(str1.substring(8, 5)); //もむら(6~8文字目を抽出) document.writeln(str1.slice(8, 5)); //空文字
substringメソッドは引数startと引数endとの関係を入れ替えて
end+1~start-1文字目までを抽出するのに対し
sliceメソッドはこうした入れ替えは行わず、そのまま空文字を返す
うむ
- 引数start/endに負の数を指定した場合
substringメソッドは無条件に0とみなすが
sliceメソッドは「文字列末尾からの文字数」とみなす
var str1 = 'みこむらめもむら'; document.writeln(str1.substring(3, -2)); //みこむ(1~5文字目を抽出) document.writeln(str1.slice(3, -2)); //らめも(4~6文字目を抽出)
大文字⇔小文字
- toLowerCase()
- 小文字に変換
- toUpperCase()
- 大文字に変換
コード変換
- charCodeAt(n)
- n-1番目の文字をLatin-1コードに変換
- fromCharCode(c1, c2, ..)
- Latin-1コードc1、c2..を文字に変換
- 静的メソッド
文字装飾
- anchor(name)
- 文字列をアンカー化
- link(url)
- 文字列をリンク化
- sub()
- 下付き文字にする
- sup()
- 上付き文字にする
var str1 = 'みこむらめもむら'; document.writeln('TOP'.anchor(top)); //<a name="top">TOP</a> document.writeln(str1.link('http://micomura.hatenablog.jp/')); //<a href="http://micomura.hatenablog.jp/">みこむらめもむら</a> document.writeln('10'.sub()); //<sub>10</sub> document.writeln(str1.sup()); //<sup>みこむらめもむら</sup>
sub/supメソッドとかはあまり使わないとか
基本CSSで指定するからねー
その他
- concat(str)
- 文字列の後方に文字列strを連結
- length
- 文字列の長さを取得
var str1 = 'みこむらめもむら'; document.writeln(str1.concat('(・∀・)')); //<a name="top">TOP</a> document.writeln(str1.length); //8
正規表現に関しては後述があるそうです、うむ
たくさんあるなー‥次
Numberオブジェクト
数値型(number)の値を扱うためのラッパーオブジェクトで
数値の整形を行うための機能を提供するとともに
無限大/無限小、数値型の最大値/最小値などの特別な値を表すための
読み取り専用プロパティ(定数)を公開している
var num = 123;
Stringオブジェクトと同じように
new演算子で明示的に生成することもできるが
通常はリテラル表現を使って上記のような記述をする
プロパティ
- MAX_VALUE
- 利用できる最大値
- 静的プロパティ
- MIN_VALUE
- 利用可能な最小値(0に最も近い値)
- 静的プロパティ
- NaN
- 数値でない(Not a Number)
- 静的プロパティ
- NEGATIVE_INFINITY
- 負の無限大
- 静的プロパティ
- POSITIVE_INFINITY
- 正の無限大
- 静的プロパティ
POSITIVE_INFINITY/NEGATIVE_INFINITY、NaNは
いずれも特殊な数値(定数)を表す
POSITIVE_INFINITY/NEGATIVE_INFINITY(無限大)は
JavaScriptで表現可能な数値の範囲を超えた場合の
戻り値として利用される
NaN(Not a Number:数値以外)は
たとえば「0を0で除算した」など不正な演算が行われた場合に
数値として表現できない結果を表すために利用される
メソッド
- toString(rad)
- rad進数の値に変換(radは2~36)
- toExponential(dec)
- 指数形式に変換(decは小数点以下の桁数)
- toFixed(dec)
- 小数点第dec位で四捨五入
- toPrecision(dec)
- 指定桁数に変換(桁数が不足する場合は0で補う)
var num1 = 255; document.writeln(num1.toString(16)); //ff document.writeln(num1.toString(8)); //377 var num2 = 123.45678; document.writeln(num2.toExponential(2)); //1.23e+2 document.writeln(num2.toFixed(3)); //123.457 document.writeln(num2.toFixed(7)); //123.4567800 document.writeln(num2.toPrecision(10)); //123.4567800 document.writeln(num2.toPrecision(6)); //123.457
toFixedメソッドは小数点以下の桁数
toPrecisionメソッドは整数部の桁数も含めた全桁数
を指定する点に注意
NaNは、自分自身を含むすべての数値と等しくないため
以下のような比較式はfalseを返す
document.write(Number.NaN == Number.NaN)
NaN値を検出するにはisNaN関数を使用する必要がある
うむ、わかった
記事分けるよ