**### js入门、变量、值类型**

148 阅读1分钟

1 赋值

   var a = 100;
   var b = 200;
   document.write(a);

2 运算

    var a = 10;
    var b = 20;
    var c;
    c = a + b;
    document.write(c);

一、不可改变的原始值(栈数据)

Number/String/Boolean布尔/Undefined/Null 放在stack栈(先进后出)
    // var a = -123.2;
    // document.write(a);

    // var b = "abc字符串";
    // document.write(b);

    // BOOlean包含2个属性
    // var a = true;
    // var b = false;
    // document.write(b);

    // var b = undefined;
    // document.write(b);

    // var b = null;
    // document.write(b);
    // console.log(typeof(b));类型:object

    // var arr = [1,3];
    // var arr1 = arr;
    // arr.push(2);
    //.push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
    // document.write(arr1);结果:arr1=1,3,2
    

二、引用值

array/Object/function/..../date regExp 放在heap堆

// 引用值和原始值不同:赋值形式

// 1.错误分两种{低级错误--语法解析错误(直接不执行)、高级错误--逻辑错误(执行到错误的地方)
例子// var a = 10;
// var b = 20;
2.赋值的顺序,自右向左;计算的顺序,自左向右

例一

// var a =10;
// var b = ++a - 1 + a++;
// document.write(b + "" + a);
(结果a = 12;b = 21;)

例二

var a = (10 * 3 - 4 / 2 + 1) % 2,
//     b = 3;
// b %= a + 3;
// document.write(a++);
// a++先打印a再++,所以a1
// document.write("<br>");
// document.write(--b);   --b=2

例三 调换a和b的位置

// var a = 123;
// var b = 234;

方法1

// a = a + b;
// b = a - b;
// a = a - b;

方法2

// var c = a;
// a = b;
// b = c;

例四

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