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在堆内存中地址是不同的:

  • 相关阅读:
    洛谷P2568 GCD
    线段树(模板)
    题解 CF1296D 【Fight with Monsters】
    图片针对父元素居中 TileImg
    npm
    echarts线图,柱状图,饼图option
    mac下修改环境变量
    input获取焦点,但不调起键盘
    mac shh 关联git仓库
    根据滚动条触发动画
  • 原文地址:https://www.cnblogs.com/hzhj/p/6486603.html
Copyright © 2011-2022 走看看