• 变量类型和计算(1)
    • 值类型
    • 引用类型
    • 变量计算-强制类型转换
  • 变量类型和计算(2)
    • JS中使用typeof能得到的类型
    • 何时使用===和==
    • JS中的内置函数
    • JS按照存储方式区分变量类型
  • 变量类型和计算(3)-理解JSON

    变量类型和计算(1)

    • JS中使用typeof能得到的哪些类型
    • 何时使用===何时使用==
    • JS中有哪些内置函数
    • JS变量按照存储方式区分为哪些类型,并描述其特点
    • 如何理解JSON

    值类型

    • 从内存来说值类型是把每一个值存储在变量类型的每一个位置
    1. var a = 100;
    2. var b = a;
    3. a = 200
    4. console.log(b);//100

    引用类型

    • 把a赋值*-成一个对象,a的位置是通过指针指向一个位置
    • 把b赋值成a,其实是定义一个b,b的指针指向了那个对象位置
    • 也就是有两份age:20的对象
    • 对象的引用,就相当于复写一个对象,这两个对象之间相互独立
    • 引用类型:对象、数组、函数
    1. var a ={age:20};
    2. var b = a;
    3. b.age = 21;
    4. console.log(a.age); //21
    • typeof运算符
    1. typeof undefined //undefined
    2. typeof 'abc' // String
    3. typeof 123 //number
    4. typeof true //boolean
    5. typeof {} //object
    6. typeof [] //object
    7. typeof null //object
    8. typeof console.log //funciton

    变量计算-强制类型转换

    • 字符串拼接
    1. var a = 100 + 10;//110
    2. var b = 100 + '10';//10010
    • == 运算符
    1. 100 == '100' //true
    2. 0 == '' //true
    3. null == undefined //true
    • if语句
    1. var a = true;
    2. if(a){
    3. //....
    4. }
    5. var b = 100;
    6. if (b) {
    7. //....
    8. }
    9. var c = '';
    10. if (c) {
    11. //...
    12. }
    • 逻辑运算
    1. console.log(10 && 0); //0
    2. console.log('' || 'abc'); //abc
    3. console.log(!window.acb); //true
    4. //判断一个变量会被当做true还是false
    5. var a = 100;
    6. console.log(!!a);//true

    变量类型和计算(2)

    JS中使用typeof能得到的类型

    1. //问题:JS中使用typeof能得到哪些类型
    2. typeof undefined //undefined
    3. typeof 'abc' // String
    4. typeof 123 //number
    5. typeof true //boolean
    6. typeof {} //object
    7. typeof [] //object
    8. typeof null //object
    9. typeof console.log //funciton
    • 总结来说typeof可以得到
      undefined、String、number、boolean
      可以区分值类型,但对于引用类型无法很细的区分,只能区分函数。
    • 尤其是
      typeof null object
      它是一个引用类型

    何时使用===和==

    1. //问题:何时使用===何时使用==
    2. if (obj.a == null) {
    3. //这里相当于 obj.a === null || obj.a === undefined,简写形式
    4. //这是jquery源码中推荐的写法
    5. }

    JS中的内置函数

    1. //问题:JS中有哪些内置函数----数据封装类对象
    2. //作为构造函数的作用
    3. Object
    4. Array
    5. Boolean
    6. Number
    7. String
    8. Function
    9. Date
    10. RegExp
    11. Error

    JS按照存储方式区分变量类型

    1. //JS 变量按照存储方式区分为哪些类型,并描述其特点
    2. //值类型
    3. var a = 10;
    4. var b = a;
    5. a = 11;
    6. console.log(b); // 10
    7. //引用类型
    8. var obj1 = {x:100}
    9. var obj2 = obj1;
    10. obj1.x = 200;
    11. console.log(obj2.x); // 200
    • ES中,引用类型是一种数据结构,用于将数据和功能组织在一起

    变量类型和计算(3)-理解JSON

    1. //问题:如何理解JSON
    2. //JSON只不过是一个JS对象
    3. //JSON也是一个数据格式
    4. JSON.stringify({a:10,b:20});
    5. JSON.parse('{"a":10."b":20}')