zoukankan      html  css  js  c++  java
  • JavaScript连载20-数据存储方式、内置对象Array详解

    一、堆和栈,数据的存储方式

    1.注意点:

    JS中是没有堆和栈的概念,我们用堆和栈来讲解,目的就是方柏霓讲解,存储方式是一致的。

    2.存储方式:

    基础数据类型进行值传递,复杂数据类型进行地址传递

    <script>
        //1.基本数据类型
        var str1 = "xiaoliao";
        var str2 = str1;//基本数据类型是传输的值,引用数据类型传输的是内存地址
    
        str1 = "itLike";
        console.log(str1);
        console.log(str2);
        console.log("========================");
        //2.复杂类型
        function Person(name,age,intro) {
            this.name = name;
            this.age = age;
            this.intro = intro;
        }
    
        var p1 = new Person("xiaoming",45,"This is a virtuous person!");
        var p2 = p1;
        p1.name = "daliao";
        console.log(p1.name);
        console.log(p2.name);//可以看出来传输的是内容地址
        console.log("============================");
        //3.基本类型作为函数的参数
        var num1 = 10,num2 = 23;
        //可以看出来函数也是值传递
        fn(num1,num2);
        console.log("num1="+num1);
        console.log("num2="+num2);
        function fn(n1,n2) {
            n1 *= 2;
            n2 /= 2;
            console.log("n1="+n1);
            console.log("n2="+n2);
        }
        console.log("=========================");
        //4.复杂类型作为函数参数
        function Person(name,age,sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
    
        function func(person) {
            person.name = "周杰伦";
            
        }
    
        var  p = new Person("xiaoming",45,"男");
        console.log(p.name)
        func(p);
        console.log(p.name);//可以看出来是地址传递
    </script>
     

    运行结果20.1

    二、内置对象

    1.Array对象属性

    • 检测一个对象是否是数组

    两种方法,内置方法instanceof和一种成员方法isArray(变量)

        //1.检测一个对象是否是数组
        var arr = ["zhansan","lisi","wangwu"];
        console.log(arr instanceof Array);
        console.log(arr instanceof Object);//这句话可以看出数组也是一种对象
        console.log(arr instanceof Function);//数组不是函数类型
        //另一种方法,成员方法     .isArray()
        console.log(Array.isArray(arr));
        console.log(Array.isArray("arr"));
     

    运行结果20.1

    • 数组常用API

    toString()把数组转换成字符串,逗号分隔每一项;valueOf成员方法返回数组本身。

        //2.数组常用API
        var arr = ["zhangsan","lisi"];
        console.log(arr.toString());
        console.log(arr.valueOf());//返回的是数组本身
        //3.join(sperator)方法,将数组的元素组成一个字符串,以seperator为分隔符,省略的话则默认用逗号为
        //分隔符,该方法只接受一个参数:即分隔符。
        console.log(arr.join("-"));
        console.log(arr.join("^"));
        //4.压栈,出栈
        arr.push("附加的");//返回值就是数组的总长度
        console.log(arr.toString());
        arr.pop();
        console.log(arr.toString());
        console.log("=======================");
        //5.shift()函数,是相当于从头部进行删除
        arr.push("sdohf");
        arr.push("nvl");
        console.log(arr.toString());
        arr.shift();
        console.log(arr.toString());
     

    运行结果20.3

    三、源码:

    • D20_1_DataExpressionInMemory.html
    • D20_2_Built-inObject.html
    • 地址:
      https://github.com/ruigege66/JavaScript/blob/master/D20_1_DataExpressionInMemory.html 
      https://github.com/ruigege66/JavaScript/blob/master/D20_2_Built-inObject.html 
    • 博客园:https://www.cnblogs.com/ruigege0000/
    • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包
    • 20.4
  • 相关阅读:
    Python for Infomatics 第14章 数据库和SQL应用四(译)
    展望2017
    bing的简单英文字典工具
    自我安慰
    Python for Infomatics 第14章 数据库和SQL应用三(译)
    Python for Infomatics 第14章 数据库和SQL应用二(译)
    Python for Infomatics 第14章 数据库和SQL应用一(译)
    希望父亲早日恢复
    Python for Infomatics 第13章 网页服务四(译)
    Python for Infomatics 第13章 网页服务三(译)
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/13200606.html
Copyright © 2011-2022 走看看