JavaScript学習ノート01(変数宣言、データタイプ)


JavaScriptノート01
先週の日曜日からJavaScriptを読むつもりでしたが、今日はずっと忙しいです.JavaScriptの高級プログラムの設計という本を読み始めたばかりです.この本は前に見たことがありますので、今回は一回準備しました.何か問題があったり、注意しなければならないことがあったら記録してください.全部覚えられないです.この過程は少し長い時間がかかります.やはりjsは先端の基礎だと思います.jsはこれをマスターしました.先端がよく分かります.先端の友達に勧められて、廖雪峰先生のJavaScript教程と一緒に見るつもりです.読んでからES 6の教程を探します.あとはvueを見ることができます.実は今週は自分で先にvueを見たいです.仕事の中でいくつかの困難な点があったので、しばらく見たらやはり焦って成功を求めることができないと思います.jsの基礎をしっかり固めなければなりません.今日はTyboraを使いました.本当に使いやすいです.これからはTyboraで書いて、現地で書き終わったら、copyからgithubと略書に書きます.これは関連教程です.
1.変数の昇格
これを参照すると、変数宣言とは、変数と関数宣言が現在のスコープ , , , の一番上に移動され、コンパイル時にのみ変数と関数宣言が実行され、賦値は実行されません.実は上のリンクにはいくつかの例を見て分かります.その後、letとconstには変数引き上げ現象が存在しません.
例を挙げます
a = 9;
var a;
console.log(a);
このコードはコンパイル時にvar aを先に実行し、実行時にはa=9を実行するので、結果は9をプリントします.もう一つの詳細は、関数が変数によって後で現れる関数宣言が上書きされます.
2.var letの違い
この記事を参照してください
  • varには変数が存在します.letとconstには変数が存在しません.実は最初のポイントはこれを見てから詳しく見に行きます.
  • **letが宣言したグローバル変数は、グローバルオブジェクトの属性ではありません.**.これは、window. を通じてこれらの変数にアクセスできないことを意味します.
  • letで変数を再定義すると文法エラーが発生します.
  • とにかく、letはもっと完璧なvarです.これからはletだけを使って、varを使わないようにします.
    ちなみにconstはJavaの中のfinalで定数を定義するのに相当しますが、jsの中のconstは定義しなければならない同時に値を賦課します.でないと、エラーが発生します.
  • 3.グローバル変数を宣言する(推奨せず、理解のみ)
    上ではなるべくletを使うと言いましたが、今読んでいるこの本はまだvarを使っています.だから私が記録したのはvarです.自分の心の中ではっきりしていればいいです.
    varのスコープは関数内であり、letはコードブロック内であるが、varオペレータを省略することによってグローバル変数を宣言することができる.
    function test(){
        message = "hi"; //     
    }
    test();
    alert(message); // "hi"
    
    4.データタイプ
  • シンプル/基本データタイプ(5種類)
  • Udefinedは、一つの値だけです.undefined
  • Nullは、一つの値だけです.null
  • .
  • Boolean
  • Number
  • String
  • 複合データタイプ(1つ)
  • Object
  • データタイプを検出する方法:typeof
    let message = "some string";
    alert(typeof message);  // string
    alert(typeof(message)); // string
    alert(typeof "message");// string
    alert(typeof 95);       // number
    
    true/false
    データの種類
    true
    false
    ボロア
    true
    false
    String
    空の文字列以外
    '(空の文字列)
    Number
    ゼロ以外の数値
    0とNaN
    Object
    任意のオブジェクト
    null
    Udefined
    適用されません
    undefined
    NaN
    Not a Number
    alert(isNaN(NaN));     //true
    alert(isNaN(10));      //false
    alert(isNaN("10"));    //false       10
    alert(isNaN("blue"));  //true         
    alert(isNaN(true));    //true       1
    
    Objectのインスタンスが持つ方法と属性
    この部分をメモしておくと、主に後でデバッグしたり、バグを見つけたりするためです.
  • constructor:構造関数
  • hasOwnProperty(propertyName):与えられた属性が現在のオブジェクトインスタンスに存在するかどうかを検出する.eg:o.hasOwnProperty("name")
  • isPrototypeOf(Object):着信したオブジェクトが現在のオブジェクトかどうかを検出するためのプロトタイプ
  • propertyIsEnumerable(propertyName):与えられた属性がfor-in文を使ってエニュメレーションされるかどうかを検出するための
  • toLocaleString():返却対象は、実行環境の領域に対応する文字列表現である.
    tolocaleStering設計の目的は開発者に「同一の論理で世界各地が分かる」という方法を提供することです.呼出時に参加しないと、宿主環境言語をデフォルトにして結果を返します.ラベルのlang指定言語を使ってもいいです.このように実行する時はデフォルトで使うlangを指定します.
  • toString():戻り対象の文字列表現
  • valueOf():返却対象の文字列、数値またはブール値は
  • を表します.
    今日は先にこんなに多く書きました.昼間はゲームに夢中になりました.今日は内容が少ないです.明日は続けて、再度Typeraを自慢します.本当に使いやすいです.でも、自分もゆっくりとmarkdownの文法と他のブログのレイアウトを勉強しています.結局見るのも楽です.
    やはり問題が起きました.コメントの機能はgithubにかけられました.この機能が好きです.辛いです.飛んで、痛みを我慢して他のものに変えましょう.
    ふと思い出したらflexのレイアウトが足りなくなりました.明日書きます.