学習ノート:Javascriptデータタイプと値


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を使うことが少ないです.指定するのは貧乏のためですか?それとも無限の大きさですか?
    いくつかの例を見ます
    
    	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タイプがありません.私たちが注意するのは文字列定数の中のシリアルです.例えば:
  • \xXX:二人の16進数の数値XXで指定されたLatin-1文字
  • \uXXXX:16進数4桁XXで指定されたユニック文字
  • \0:空の文字列
  •      一例を見てください.フロントフォームで検証する時、入力された文字列の長さをよく検出します.入力の長さがデータベースで保存できる最大の長さより大きいことを防止します.しかし、文字コードの問題で文字列のlength属性を簡単に使って文字の個数を判断することはできません.バイト数を判断します.例えば漢字1文字の長さを占めるが、2バイトの空間サイズを占めている.ここでは、関数を使って文字列のバイト数を計算できます.
    
    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
    
    文字列の使用:
  • レングス属性:文字数
  • charAt()方法:文字操作
  • を行う.
  • substring(start,end)方法:サブ文字列を取り、startがend
  • を含まないことを含む.
  • indexOf(arg):元の文字列のサブ文字列の位置を検索します.戻り値が見つかりません.-1
  • charCodeAt(index)は、0から65535までの文字コードを返します.indexが負または文字列の長さより大きい場合、NaN
  • に戻る.
  • concat():私達は普通直接「+」で実現します.
  • lastIndexOf:
  • match():正則でマスターよりモードマッチングを実行する
  • replace():正規表現で検索、置換動作を実行します.
  • search():正規表現にマッチする文字列を検索する
  • slice():文字列の一セグメントまたは一文字列を返します.
  • スプリット():
  • toLowerCase():
  • toUpperCase():
  • 一部の例:
    
    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に変換されます.