LoginSignup
0
0

More than 3 years have passed since last update.

Javascript 備忘録1<基礎>

Last updated at Posted at 2021-04-07

■変数について

// とちらも変数宣言(ただしwindowは省略可能なので一般的に省略)
let a = 0;
window.d = 1;
// スコープにより書き換え可能
d = 2;

■ブロックスコープ

{/* 普通{}で囲まれた範囲をブロックという */}

{
    function d() {
        console.log('d is called');
    }
}
// 下の関数は実行可能で、「d is called」がコンソールに出力される
d();

function a() {/* この場合、ブロックスコープではなく関数スコープという */}

■レキシカルスコープ
→宣言した場所で変数が見える範囲が決まること
→自身よりも外部にあるスコープは、自身の中で参照することが可能

// グローバル変数
let a = 2;
function fn1() {
    let b = 1;
    function fn2() {
        let c = 3;
        // bはfn2からみると外部スコープなので参照することが可能
        console.log(b)
    }
    fn2();
}

fn1();

■オブジェクトについて

let obj = {
    prop1: 'value1',
    // 無名関数をオブジェクト内に宣言することができる
    prop2: function() {
        console.log('value2')
    }
}

// オブジェクトないの関数を呼び出す
obj.prop2();

■Javascriptの互換性
→ブラウザ、ネット上で使用できる物が異なってくる
→ブラウザだと、DOM APIなどを使用することができる
→その反面、ネット上だとnode.js(common.js)を使用する
→Javascriptをどこで実行するかにより、使用する物が異なっている

■コールスタック

function a() {
} 
function b() {
    a()
}
function c() {
    b();
}

c();

コールスタックとは、後から入ってきた関数が先に呼び出されること
→呼び出された関数は、関数が終了後破棄される
→今回の場合なら、関数cが終了すると一連のコールスタックが終了する

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0