学習ノート:Javascriptデータタイプと値
3743 ワード
JSには数字、文字列、論理値の3種類の基本データがあります.この他にも、2つの小さなデータタイプが許可されます.nullとundefinedは、それぞれ1つの値しかありません.
基本データタイプに加えて、JSは複合データタイプ:オブジェクトをサポートします.オブジェクトは値のセットです.ここでの値は基本的なデータタイプでも良いし、他のオブジェクトでもいいです.一般的なオブジェクトでは、値の集合は無秩序であるが、配列オブジェクトでは、値が順序正しい集合として保存されている.基本的には、配列オブジェクトも対象であるが、配列オブジェクトは、比較的一般的なオブジェクトに固有の特性と行為が多い.また、関数は別の特殊なオブジェクトとして、多くの独特な挙動を持っています.ですから、私たちはArayとFunctionを二つの特殊なObjectと見なすことができます.
また、JS言語は、Date、RegExp、Errerなどの専用オブジェクトもカスタマイズされています.これらは新しいデータタイプではなく、対象の新しいクラスです.
整数:JSでは整数値と浮動小数点型数値は区別されておらず、すべての数字は64ビット浮動小数点値で表されています.整数は10進数、8進数、16進数があります.8進数は0で始まり、16進数は0 xまたは0 Xで始まる.注意:すべてのJS実装ではなく、ECMAScript規格のような8進数対応です. 浮動小数点型:浮動小数点数は、[digits][.digits][(E|e)[(+|-]digits]と表現することができます. 無限大:InfinityとInfinityは、一つの数字がNaNかどうか、無限大か無限大かを検出するために使用されます.数値以外の種類の特殊値はNaNであり、それ自体は同じではない.この値を検出するためには専門的な関数が必要である. JSはこれらの特殊な定数を定義しています.Infinity、NaN、Number.MAX_VALE、Number.MIN_VALE(非常に0に近い正数)、Number.NaN、Number.POSITIVE_INFINITY、Number.NEGATIVE_INFINITY.プログラムの中で私達は直接Infinityを使うことが少ないです.指定するのは貧乏のためですか?それとも無限の大きさですか?
いくつかの例を見ます
文字列を見てください.文字列とは、シングルクォーテーションマークまたはダブルクォーテーションマークで囲まれたUnicode文字列です.JSにはcharタイプがありません.私たちが注意するのは文字列定数の中のシリアルです.例えば:\xXX:二人の16進数の数値XXで指定されたLatin-1文字 \uXXXX:16進数4桁XXで指定されたユニック文字 \0:空の文字列 一例を見てください.フロントフォームで検証する時、入力された文字列の長さをよく検出します.入力の長さがデータベースで保存できる最大の長さより大きいことを防止します.しかし、文字コードの問題で文字列のlength属性を簡単に使って文字の個数を判断することはできません.バイト数を判断します.例えば漢字1文字の長さを占めるが、2バイトの空間サイズを占めている.ここでは、関数を使って文字列のバイト数を計算できます.レングス属性:文字数 charAt()方法:文字操作 を行う. substring(start,end)方法:サブ文字列を取り、startがend を含まないことを含む. indexOf(arg):元の文字列のサブ文字列の位置を検索します.戻り値が見つかりません.-1 charCodeAt(index)は、0から65535までの文字コードを返します.indexが負または文字列の長さより大きい場合、NaN に戻る. concat():私達は普通直接「+」で実現します. lastIndexOf: match():正則でマスターよりモードマッチングを実行する replace():正規表現で検索、置換動作を実行します. search():正規表現にマッチする文字列を検索する slice():文字列の一セグメントまたは一文字列を返します. スプリット(): toLowerCase(): toUpperCase(): 一部の例:
Number.toString(base)
var product=「21」*「2」、JSは自動的に二つの文字列を数字に変換し、結果はNumberタイプの42です.
したがって、私たちは数字文字列を0に差し引くだけで、それを一つの数字に変換できます.
パーrseIntとパーrseFloatによって変換され、非デジタル部分を無視または切り捨てることもできる.変換に失敗したらNaNに戻ります.また、ParseIntは、入力された文字列が表す数字の進数を指定してもよい.
ParseInt(「11」、2)は「11」をバイナリ表示の「11」と指定しているので、10進数の整数に変換して3を得る.
覚えてください.パーrseIntとnumber.toStringは進数変換ができます.
ブールの種類:
JSのブール値は変換しやすいです.一つのブール値が数値環境で使われると、trueは数字1、falseは0に変換されます.文字列で使うなら、trueは「true」に変換され、falseは「false」に変換されます.空の値と定義されていない値はfalse【空の文字を含む】に変換されます.任意の非空のオブジェクト、配列または関数はtrueに変換されます.
基本データタイプに加えて、JSは複合データタイプ:オブジェクトをサポートします.オブジェクトは値のセットです.ここでの値は基本的なデータタイプでも良いし、他のオブジェクトでもいいです.一般的なオブジェクトでは、値の集合は無秩序であるが、配列オブジェクトでは、値が順序正しい集合として保存されている.基本的には、配列オブジェクトも対象であるが、配列オブジェクトは、比較的一般的なオブジェクトに固有の特性と行為が多い.また、関数は別の特殊なオブジェクトとして、多くの独特な挙動を持っています.ですから、私たちはArayとFunctionを二つの特殊なObjectと見なすことができます.
また、JS言語は、Date、RegExp、Errerなどの専用オブジェクトもカスタマイズされています.これらは新しいデータタイプではなく、対象の新しいクラスです.
いくつかの例を見ます
alert(isFinite(6));//true
alert(isFinite(Infinity));//false
alert(isFinite(Number.MIN_VALUE));//true
alert(isFinite(Number.POSITIVE_INFINITY));//false
alert(isNaN(Infinity));//false
alert(isNaN(0/0));//true
文字列を見てください.文字列とは、シングルクォーテーションマークまたはダブルクォーテーションマークで囲まれたUnicode文字列です.JSにはcharタイプがありません.私たちが注意するのは文字列定数の中のシリアルです.例えば:
function getBytes(str)
{
if(!str){return 0;}
var count = 0;
for (var i = 0; i < str.length; i++)
{
var c = str.charAt(i);
/^[\u0000-\u00ff]$/.test(c)?count++:count+=2;
}
return count;
}
alert(getBytes(''));//0
alert(getBytes('haha'));//4
alert(getBytes('haha '));//8
文字列の使用:
var str="welldone";
alert(str.charAt(0));//w
alert(str.substring(0,4));//well
alert(str.indexOf('ell'));//1
alert(str[0]);// JS , charAt
タイプ変換:数値を特定の進数に変換する文字列:Number.toString(base)
var n=17;
alert(n.toString(2));//10001
alert(n.toString(8));//21
alert(n.toString(16));//11
文字列を数値に変換:var product=「21」*「2」、JSは自動的に二つの文字列を数字に変換し、結果はNumberタイプの42です.
したがって、私たちは数字文字列を0に差し引くだけで、それを一つの数字に変換できます.
パーrseIntとパーrseFloatによって変換され、非デジタル部分を無視または切り捨てることもできる.変換に失敗したらNaNに戻ります.また、ParseIntは、入力された文字列が表す数字の進数を指定してもよい.
ParseInt(「11」、2)は「11」をバイナリ表示の「11」と指定しているので、10進数の整数に変換して3を得る.
覚えてください.パーrseIntとnumber.toStringは進数変換ができます.
ブールの種類:
JSのブール値は変換しやすいです.一つのブール値が数値環境で使われると、trueは数字1、falseは0に変換されます.文字列で使うなら、trueは「true」に変換され、falseは「false」に変換されます.空の値と定義されていない値はfalse【空の文字を含む】に変換されます.任意の非空のオブジェクト、配列または関数はtrueに変換されます.