单var形式:

    var a, b, c, d;

    以上这种用一个var关键字声明多个变量叫做单var形式。

    栈:
    原始值(栈stack数据):Number、Boolean、String、undefined、null;
    原始值指得是基本类型的值,直接按值存放的,所以可以直接访问。栈是一个类似有底无顶的器具,栈的特点是先进后出;stack为自动分配的内存空间,它由系统自动释放。
    栈存值原理:
    js的入门、栈和堆 - 图1

    堆:
    引用值(堆heap数据):array、Object、function、…date、RegExp; 引用类型存放在堆内存中的对象,变量实际保存的是一个指针,这个指针指向另一个位置。每个空间大小不一样,根据情况开进行特定的分配
    数据内存删除的不是数据本身,而是指针。访问引用类型的值时,首先从栈中获得该对象的地址指针,然后再从指针指向的堆内存中取得所需的数据。
    js的入门、栈和堆 - 图2

    更正图片错误:以上第四行是a3[2] = ‘a’, 并非a3[0] = 3
    错误的两种类型:语法解析错误(低级错误) 、逻辑错误(标准错误,情有可原)

    var a = 1 + 1 + ‘a’ + 1 + 1; // 2a11
    var b = 0 / 0; // NaN;
    var c = 1 / 0; // infinity;

    ++符号的位置区别:
    例1:

    var a = 1;
    document.write( a ++ ); //1,这里其实机器是分两步来执行的,先打印a再执行a+1运算
    document.write( a ); // 2

    例2:

    var b = 1;
    document.write( ++ b); // 2,这里也是分两步执行,先执行b+1,后打印b
    document.write(b) // 2

    例3:

    var a = 1;
    var b = a++ +1;
    document.write(b);// 2

    例3:

    var a = 1;
    var b = a— + —a;
    console.log(b); // 0;

    例3:

    var a = 1;
    var b = —a + —a;
    console.log(b); // -1;