zoukankan      html  css  js  c++  java
  • javascript学习笔记-数据类型

    一 数据类型

      基本类型:undefined,null,boolean,number,string     保存在栈内存中     占用空间固定        变量直接从栈内存中存取的是该值

      引用类型:array,object,function,regexp           保存在堆内存中     占用空间不固定     变量从栈内存中读取指针,再通过指针在堆内存中访问该值

      1.动态属性

        不能给基本类型添加属性或方法

      2.复制变量值

        值类型属于基本类型的变量,复制的是值;值类型属于引用类型的变量,复制的是指针,他们都指向的同一个对象。

        赋值对象的时候,实际上复制的是对象的引用(引用指的就是对象的指针),但是为对象添加属性时,则操作的是对象本身

      3.参数传递

        ECMAScript中所有的函数参数都是按值传递

    function setName (obj) 
    {
         obj.name = "Mysic";     
    }
    
    var person = {};
    setName(person);
    alert(person.name) // Mysic
    
    //看似是引用。其实仍然是按值传递。
    //这里的值指的是对象在栈内存中保存的指针。
    
    function setName(obj)
    {
         obj.name = "Mysic";
         obj = {};//创建了一个新对象并把指针赋值给obj,那么obj的值保存的是新对象的地址,不再是person所保存的地址
         obj.say = "Blabla";//say属性添加到新对象中,并未添加到person所指的对象中                         
    }
    var person = {}
    setName(person);
    alert(person.name) //Mysic
    alert(person.say) // undefined
    
    //如果是引用传递,那么person应该是指向函数中的新的对象,并存在say属性。实际上并不存在。
    //引用传递这里可以理解为传递的是指针的指针,也就是person变量的地址

      4. 检测类型

        基本类型数据用typeof

        引用类型数据用instanceof  Object[,Array,RegExp]

  • 相关阅读:
    C. Shaass and Lights 解析(思維、組合)
    D. Binary String To Subsequences(队列)(贪心)
    CodeForces 1384B2. Koa and the Beach (Hard Version)(贪心)
    CodeForces 1384B1. Koa and the Beach (Easy Version)(搜索)
    CodeForces 1384C. String Transformation 1(贪心)(并查集)
    CodeForces 1384A. Common Prefixes
    POJ-2516 Minimum Cost(最小费用最大流)
    POJ3261-Milk Patterns(后缀数组)
    HDU-1300 Pearls(斜率DP)
    HDU-4528 小明系列故事-捉迷藏(BFS)
  • 原文地址:https://www.cnblogs.com/mysic/p/5324390.html
Copyright © 2011-2022 走看看