タスク17-jsデータタイプ

7768 ワード

1、JavaScriptはいくつかのデータタイプを定義していますか?どれがオリジナルタイプですか?どれが複雑なタイプですか?元のタイプと複雑なタイプの違いは何ですか?
全部で6種類のデータタイプがあります.数値(number):整数と小数(例えば1と3.14)文字列(string):文字構成のテキスト(例えば"Hello World")ブール値(bollan):true(真)とfalse(false)の2つの特定値undefined:「未定」または存在しないことを示します.つまり、ここには何の値もありません.nullは空席を表します.ここに値があるはずですが、現在は空のオブジェクトです.様々な値からなるセットです.
数値、文字列、ブール値は元のタイプの値と呼ばれています.つまり、元のタイプのデータです.これ以上細かくすることはできません.オブジェクトを複雑なタイプの値と呼びますが、一つのオブジェクトは複数の元のタイプの値の合成が多いので、様々な値を格納する容器として見られます.undefinedとnullは、それらを2つの特殊な値と見なします.
2、typeofとinstance ofの役割と違い?
変数と値でtypeofを呼び出すと、この変数または値の種類を示す文字列が返されます.この変数または値が参照タイプである場合は、「object」に戻ります.元のタイプの出力の場合、以下のようになります.
typeof "ABC"        ==> string
typeof true            ==> boolean
typeof 112            ==> number 
typeof undefined  ==> undefined  
typeof null            ==> object  
typeof function (){}==>function
typeof {}               ==> object
typeof []               ==>object
このうちtypeof nullが戻ってきたobjectは、JavaScriptが最初に実現したエラーのために、現在まで使用されています.現在、nullは対象のプレースホルダと考えられ、この矛盾を説明しています.nullは技術的にも要素タイプです.例えば、var obj変数は対象のタイプで、プログラムではobjの初期値:var obj=null;
typeofは参照タイプを演算すると、常にobjectに戻ります.この参照の種類が配列かオブジェクトかを判断できません.この場合はinstance ofを使用して、変数があるオブジェクトかどうかを判断します.
var o = {};
var a = [];

o instanceof Array // false
o instanceof Object //true  Array  Object   ,    true
a instanceof Array // true
3、どのように変数が数字、文字列、ブール、関数かを判断しますか?
typeで変数名を指定しますこの変数タイプの文字列を返します.この変数名はa:type a==numberです.type a==「string」type a==「bolean」type a==「function」
4、NaNは何ですか何か特別なところがありますか?
数値(非数値)ではなく、Not a Numberは本来返すべき数値の操作数が数値に戻っていない場合(これではエラーを出さない)を表し、NaNの値を返します.NaN値は非常に特殊で、「数字ではない」ため、どの数も同じではなく、NaN自体もNaNに等しくない.NaNに関する任意の動作(例えばNaN/10)は、マルチステップ計算において問題を引き起こす可能性があるNaNに戻る.
isNaN()はパラメータを計算して、それが数値であるかどうかを確認します.文法はisNaN(testValue)で、trueまたはfalseに戻ります.
5、どのように非数値を数値に変換しますか?
javascriptには3つの関数があり、非数値を数値に変換することができます.Number()、パーrseInt()、パーパーパーミッションFloat().
Number()は任意のデータタイプに使用できます.
パーrseInt()、パーrseFloat()は、文字列を数値に変換するために専用である(一般的な).
Number()変換規則:

【1】   Boolean ,true false       1 0。

【2】      ,          。

【3】   null ,  0。

【4】   undefined,  NaN。

【5】      ,      :

  1)、           (             ),           , "1"  1,"123"  123,  "012"   11(  :        );

  2)、               , "1.1",            (         );

  3)、                 , "0xf"                 ;

  4)、        (       ),      0;

  5)、                  ,      NaN;

【6】     ,      valueOf  ,               。        NaN,      toString()  ,                    。

  
var num1 = Number("Hello world");      //NaN
var num2 = Number("");                 //0
var num3 = Number("000011");           //11
var num4 = Number(true);               //1
Number()関数は文字列を変換する時複雑で合理的ではないので、関数を処理する時はパー秒Int()関数をよく使います.
【1】parseInt():         ,     ,   ,      。

【2】parseInt()             (2、8、10、16   ),   10  。

         ,        :        (     ),  10           。

【3】parseInt()          NaN:

   1)、               ;

   2)、      
var num1 = parseInt("22.5");               //22
var num2 = parseInt("1234blue");           //1234
var num3 = parseInt("blue1234");           //NaN
var num4 = parseInt("");                   //NaN

var num5 = parseInt("AF", 16);             //175(   16      ,          "0x")

var num6 = parseInt("10", 2);              //2(      )
var num7 = parseInt("10", 8);              //8(      )
var num8 = parseInt("10", 10);             //10(      )
var num9 = parseInt("10", 16);             //16(       )
6、==と==の違いは何ですか?
=:等しいですが、値を比較しないタイプで、両方の値のタイプが異なる場合は、まずタイプ変換を行い、比較します.
====完全にイコール演算で、比較値だけではなく、比較値のタイプもあります.両方のタイプが一致しない場合、タイプの変換をしないと、タイプが違っているのは違います.両者が一致してこそ本当です.
7、breakとcontinueは何の違いがありますか?
break文は循環体文(for,while,dowhile,switch)などの反復選択の特徴がある語句で使用され、しかも一番近い閉鎖コードブロック(つまり多重サイクルを終了するときは自分のサイクルだけ終了します)を終了し、全体コードはbreak文の後に続いて実行されます(break文が最後のコードでない場合は).
continue文はbreak文と同じように、continueの反復文(または循環文)を含んでいます.continue文に出会った後、コードは先に通常の上から下のコードの順に実行しないで、すぐに循環入り口に戻って次のループに入ります.continue文は単独のswitch文では使用できませんが、ループ内のswitch文では使用できます.この場合は次のループに入ります.
8、void 0とundefinedは使用シーンで何の違いがありますか?
ある値をifで判断してundefinedに等しいかどうかを判断するのが一般的です.しかし、一般的にはvoid 0をundefinedの代わりに使っています.undefinedはwindowsの属性です.使うたびに呼び出すので、時間がかかります.また、定義をリセットできる変数です.間違いやすいです.void後の演算数が何であれ、undefinedに戻り、void 0を使って、比較的に手間が省けます.void 1も使えます.void 100;
**以下は拡張読解**です.
undefined

    , undefined     JavaScript         ,           window.undefined   。

   undefined                    ,   undefined        ,    ES5     , window.undefined        、       。

    undefined :

        ,           undefined
          ,               ,               ,          undefined
        ,     undefined
void    

void            ,           ,     void          ,      void       undefined :

void (expression)
    ,   void         :

   undefined
       
   javascript:     URI
   undefined

   void 0    undefined        ,            window.undefined    ,            undefined 。

function checkLogin (loginName) {
    if (loginName === void 0) {
        console.log('Wrong!');
    } 
}
checkLogin();
// => 'Wrong!'

      

          ,         。   ,               ,   + 、 - 、 ! 、 ~         void     。  ,         (     ,      ):

(function(){
    console.log('    ');
})();
// => '    '
   javascript:     URI

          、       ,     a        ,      href="javascript:void(0)"       ,                  。

  href="javascript:void(0)"  ,       javascript:       URI,                ,            ,        ,      undefined ,               。

   ,             、       ,       Hack    ——        。

javascript:       URL         javascript   ,  javascript        ,     javascript:URL                 ,      ,     URL             ,     void 0 。
9、以下のコードの出力結果は?なぜですか
console.log(1+1);    //2
console.log("2"+"4");  //"24"
console.log(2+"4");// "24"
console.log(+"4");//4,      :+"str","str"-0,    :var+"",   :!!0=>false.     ,      ,        ,            。
10、以下のコードの出力結果は?
var a = 1;  
a+++a;  //3 (a++)+a,   a 1,   a    a=2,   3。
typeof a+2; //"number2" typeof     + 
11、以下のコードの出力結果は?なぜですか
 var a = 1;
 var b = 3;
 console.log( a+++b );//4  a++         ,    1,  b  4。   ++a+b,       b,  5。
12、配列を巡回して、配列内の印刷配列の各項目の平方を
 var arr = [3,4,5]
//1、
for(let i=0; i
13、JSONを遍歴して、中の値を印刷します.
var obj = {
 name: 'hunger', 
 sex: 'male', 
 age: 28 
}
for (let i in obj){
  console.log("abj["+i+"]="+obj[i]);
}
14、以下のコード出力結果は?どうしてですか?
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0 //==>typeof a+(b||true)==>typeof a+b==>number2 ||   ture,      , false,      。
console.log(val)  
var d = 5;
var data = d ==5 && console.log('bb')//==>true&&"bb"==>"bb"  &&   ture,      , false      。
console.log(data)
var data2 = d = 0 || console.log('haha')//0    false
console.log(data2)//"haha"
var x = !!"Hello" + (!"world", !!"from here!!");//x=1+(0,1);==》x=1+1;
console.log(x)//2,

            :
(   expr1&&expr2)   expr1        false,    expr1;  ,  expr2。
(   expr1||expr2)   expr1     true,    expr1;  ,  expr2。
(   !)           true   false;    true。

     false   null, 0, NaN,     ("") undefined。