zoukankan      html  css  js  c++  java
  • js 基础复习 之 js 类型判断

    ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型。

    1.基本类型

    基本的数据类型有:`undefined,boolean,number,string,null.基本类型的访问是按值访问的,就是说你可以操作保存在变量中的实际的值。
    基本类型有以下几个特点:

    1.基本类型的值是不可变得:

        1.任何方法都无法改变一个基本类型的值.

    var name = 'hello';
    name.toUpperCase(); // 输出 'HELLO'
    console.log(name); // 输出  'hello'

      2.我们不能给基本类型添加属性和方法,再次说明基本类型时不可变得.

    var person = 'hello';
    person.age = 18;
    
    console.log(person.age); // undefined

    2.基本类型的比较是值的比较:

    var a = 1;
    var b = true;
    console.log(a == b);//true

    3.基本类型的变量是存放在栈区的(栈区指内存里的栈内存)

    2.引用类型

    javascript中除了上面的基本类型(number,string,boolean,null,undefined)之外就是引用类型了

    1.引用类型的值是可变的

    var person = {};//创建个控对象 --引用类型
    person.name = 'hello';
    person.age = 22;
    person.sayName = function(){console.log(person.name);} 
    person.sayName();// 'hell0'
    
    delete person.name; //删除person对象的name属性
    person.sayName(); // undefined

    2.引用类型的值是同时保存在栈内存和堆内存中的对象

    var person1 = {name:'123'};
    var person2 = {name:'456'};
    var person3 = {name:'789'};

    3.引用类型的比较是引用的比较

    var person1 = '{}';
    var person2 = '{}';
    console.log(person1 == person2); // true

    基本类型的比较的时候提到了当两个比较值的类型相同的时候,相当于是用 === ,所以输出是true了。

    var person1 = {};
    var person2 = {};
    console.log(person1 == person2); // false

    引用类型时按引用访问的,换句话说就是比较两个对象的堆内存中的地址是否相同,那很明显,person1和person2在堆内存中地址是不同的:

  • 相关阅读:
    位运算 & 网络序字节序
    TFTP & commons-net-3.3.jar
    存储过程
    poj1185-炮兵阵地(状态压缩dp)
    hdu4570-区间dp
    codevs1026-dp(记忆化搜索)
    hdu1494 跑跑卡丁车(动态规划)
    hdu5094-Maze
    hdu4403- A very hard Aoshu problem(搜索)
    hdu2510-符号三角形(dfs+打表)
  • 原文地址:https://www.cnblogs.com/hzhj/p/6486603.html
Copyright © 2011-2022 走看看