JSの基本に戻る


私が戻って&JSコアの概念のnitty gritties再訪としてこれらは私のノートです.

JavaScriptデータ型
JavaScriptの値は常に特定の型(Ex : Number)です-データ型は特定の値の振舞いを決定する属性とそれがどのように扱われるか(Ex : 1対“1”)です.これは、異なる演算子がどのように値を扱うかにも影響します.
JavaScriptは動的な言語であるかloloely型になっているので、変数はどんな型とも関連しません.つまり、同じ変数を別の型の新しい値に再割り当てすることができます.
var x = 5; //x is a number
x = "Hello world" //x is now a string
基本的には9種類のデータ型があります

  • 6プリミティブ:番号、文字列、ブール、未定義、bigint、シンボル.プリミティブデータ値は、単一の単純なデータ値です.追加のプロパティとメソッドはありません.

  • 2構造:オブジェクトと機能.objectはプロパティのコレクションであり、プロパティは名前(またはキー)と値の間の関連付けです.プロパティの値は関数でありえます.この場合、プロパティはメソッドとして知られています.配列、正規表現、日付などはすべて異なるオブジェクトです.
    関数はサブタイプのオブジェクトのようです.
  • 1原始の特別な種類:NULL.null 存在しないか無効なオブジェクトまたはアドレスに意図的に指す原始的なデータ型の特別なインスタンスです.
  • 両方null and undefined 値を保持できません.
    この記事はプリミティブ型をカバーしますnull )

    NULLと未定義undefined 変数が宣言されているが、まだ値が割り当てられていないことを意味します.(** *未宣言* varは対照的に、まだ宣言されていないもので、リファレンスエラー*を返します).null null、空、または存在しない参照を表します.それは空白のオブジェクトリファレンスです.

    特異性Number

  • 数≠ 整数( 1 , 1.0 , 1 . JS内のすべての' number 'です.数値メソッドを呼び出すときに重要です).
    
       console.log(1.toPrecision( 6)) // Uncaught SyntaxError
       console.log(1..toPrecision( 6)) //4.00000
    
    
    理想的には、変数に値を代入し、それからVARにアクセス機能を割り当てます.

  • 浮動小数点演算は常に100 %正確ではない
    
       console.log(0.1 + 0.2) //0.30000000000000004
    
    

  • NaN(数ではない):両方のオペランドが数字(または数に強制されない値)でないどんな数学的な操作も無効な数をもたらします.そして、NaN値を与えます.
    
       console.log(5 - '123' ) // -118
       console.log(5 - '12 3' ) // NAN
    
    
    NaNは別のNaN値とは決して等しくないという点で非常に特別な値です.
    
       console.log(NaN == NaN) //false
    
    

  • 型変換と強制
    js変数は別のデータ型に変換できます.
  • JavaScript関数の使用-私たちは異型に別のタイプに変換します.(例:String(123) )
  • 値の自動または暗黙の変換- jsは予期しないデータ型に不正な型を強制します.(例:2*"2" )
  • 3つの可能な変換があります.
  • 結ぶ
  • 数える
  • boolean

  • 1 .文字列String() or toString() 関数は明示的に文字列に変換できる.すべてのプリミティブは期待通りに文字列型に変換されます.
    String(123)  '123'
    String(true)  'true'
    String(null)  'null'
    String(undefined)  'undefined'
    
    暗黙の強制はバイナリ演算子によって引き起こされます.
    'a'+2 //a2
    
    注意: +文字列連結は可換です.EX :'$' + 4 + 5 が' 45ドル'を与える4 + 5 + '$' ' 9 $ 'を与える

    2 .番号

  • 算術演算では、数値への暗黙の変換が行われます(文字列への変換を行う場合は+を除いて).それは有効な番号ではないかもしれません-再びNaNは数のサブタイプです!
       typeof(5 + true); //number
       typeof("6a"*"2"); //number
       typeof(5 - '12'); //number
    
    空の文字列、空の配列は0になります.true は1ですfalse は0です.
  • 文字列の明示的な変換では、startとendからの空白文字が削除されます.
  • Number(' 123 ') // 123
    Number('12 3') // NaN
    
  • 異なるタイプの値を比較するとき、数値への暗黙の変換があります.我々はすぐに比較を訪問します.

  • 3 . boolean
  • 0のように直観的に「空」である値、空の文字列、null、undefined、およびfalseになります.
    他のすべてはtrueです
  • If 文:論理演算子(加月& amp ;)はboolean値を返さない.
    
       a||0; [//a](//a) 
    
    
    ある状態で使用されるときif 文には、boolean型への暗黙の保理があります.

  • 比較( LOW ' == VS vs strict = = = '等値)
    前述の通り.== 必要に応じて型強制型の数値を使用します.
    厳密な等値演算子=== 型変換のない等値をチェックします.つの値が異なる型の場合、a === b すぐにfalseを返します.
    console.log('0' == 0) //true
    console.log('0' == false); //true
    console.log('0' === false); //false
    
    Number(null) & Number(undefined) は0とNaNです.したがって、それらは等しくありません.
    null==undefined // false
    
    ソース
    You-Dont-Know-JS/types & grammar
    MDN: JavaScript data types and data structures
    https://javascript.info/