js学习笔记(数据在内存中的表现~数组的方法)

数据在内存中的表现
1.基本类型在内存中的存储
在这里插入图片描述

   var str1 = 'xg';
   var str2 = str1; 
   //把str1的值给str2,重新开辟一块空间给str2
   str1 = 'tttt';
   //str1再怎么改也不会影响到str2的值
   document.write(str1 + '<br>'); //tttt
   document.write(str2); //xg

(2)复杂类型在内存中的存储
修改p1时,也会修改p2的属性
在这里插入图片描述
(3)基本类型作为函数的参数
存放在栈区
在这里插入图片描述
(4)复杂类型作为函数参数
在这里插入图片描述

内置对象
Array、Boolean、Date、Math、RegExp、String、Number、Functions、Events
1.Array对象
(1)检测一个对象是否是数组
(1).1instanceof有缺陷,因为数组、数字·····都是对象

	var arr = ['小范', '小耿'];
    var a = 1;
    document.write(arr instanceof Array);  //true
    document.write(a instanceof Array);   //false
    document.write(arr instanceof Object);  //true
    //有缺陷,因为数组、数字·····都是对象

(1).2Array.isArray( )有唯一性,最常用

 	var arr = ['小范', '小耿'];
    var a = 1;
    document.write(Array.isArray(arr));  //true
    document.write(Array.isArray(a));   //false

(2)数组名.toString()将数组转换成字符串
(3)数组名.valueOf()返回数组本身
(4)数组名.join('分隔符')将数组转换成字符串,并用分割符进行分割
(5)数组名.push('其他参数')接收任意数量的参数,将它们添加到数组的末尾,最后返回数组的个数
(6)数组名.pop()删除数组最后一项,然后返回删除的那一项
(7)数组名.shift()删除数组的第一项,然后返回删除的那一项;如果本身数组为空,则返回undefined
(8)数组名.unshift('其他参数')接收任意数量的参数,将它们添加到数组的开头,最后返回数组的个数

	var arr = ['小范', '小耿'];
    document.write(arr.toString());  //将数组转换成字符串
    document.write(arr.valueOf());   //返回数组本身
    //document.write(arr.join('-'));  
    //将数组转换成字符串,并用分割符进行分割
    document.write(arr.push('love','hahah'));  //输出4
    document.write(arr.pop());  //输出hahah
    document.write(arr.shift());  //输出小范
    document.write(arr.unshift('啦啦啦啦', 'kekekek'));  
    //输出4

(9)数组名.reverse()将数组反转,原数组也反转了

	var arr = [1,2,3,4];
    document.write(arr.reverse()); //4,,3,2,1

(10)数组名.concat(数组名, 数组名)合并多个数组;在没有给concat添加参数时,它只会复制当前数组并返回

	var arr = [1,2,3,4];
    var arr1 = [5,6,7,8];
    var arr2 =[9,10,11,12];
    document.write(arr.concat(arr1, arr2));//合并多个数组

(11)数组名.indexOf(要找的元素,从这个下标开始找)正着找
(12)数组名.lastIndexOf(要找的元素,从这个下标开始找)倒着找

	var arr = [1,2,3,4,3];
    document.write(arr.indexOf(3,0)); //2
    /*从下标为0的元素(包括这个元素)开始找3,
    第一个3的下标为2,所以返回2*/
    document.write(arr.indexOf(3,3)); //4
    /*从下标为3的元素(包括这个元素)开始找3,
    第一个3的下标为4,所以返回4*/
    document.write(arr.lastIndexOf(3));
     //4,返回字符串最后一次出现的位置
    document.write(arr.lastIndexOf(3,0)); //-1
    /*从下标为0的元素(包括这个元素)开始倒着找3,
    找不到所以返回-1*/

(12)遍历数组数组名.forEach()

var arr = [1,2,3,4,3];
    arr.forEach(function (value, index, array) {
        document.write(value +'<br>' ); //数组的值
        document.write(index +'<br>'); //数组的下标
        document.write(array +'<br>'); //数组本身
    })

(13)数组排序数组名.sort()
(13).1 数组名.sort()用于对数组元素进行排序,默认是按照字符编码的顺序进行升序排序

	var arr = [10,20,5,1000,50];
    document.write(arr.sort()); //10,1000,20,5,50
    //先比较第一个数字,若相同再比较第二个数字
    var arr1 = ['10', '20', '5', '1000', '50'];
    document.write(arr1.sort()); //10,1000,20,5,50
    //先比较第一个数字,若相同再比较第二个数字

(13).2 数组名.sort(函数)如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字,比较函数应具有两个参数a和b,其返回值如下:
①a<b,返回一个小于0的值
②a=b,返回0
③a>b,返回一个大于0的值

	var arr = [10,20,5,1000,50];
    document.write(arr.sort(function (a, b) {
        return a -b; //升序
        //return b - a;   //降序
    }));
     //5,10,20,50,1000

sort()的内部排序和冒泡排序一样。
(14) 数组名.map(函数)会按照你的规则得到一个新的数组,不满足规则的元素直接返回false。而且必须要有return值,如果没有就会返回undefined

 var arr = [10,20,5,1000,50];
 var newarr = arr.map(function (value, index, array) {
      return value *2;
  });
  document.write(newarr);

(15)数组名.filter(函数)过滤筛选,当满足你制定的条件时,会返回一个新的数组

var arr = [10,7,5,1000,50];
var newarr = arr.filter(function (value, index, array) {
     return value % 2 ===0;
 });
document.write(newarr);  //10,1000,50

(16)数组名.every(函数)当数组中每一个元素都满足制定的条件时,返回true;否则返回false

	var arr = [10,7,5,1000,50];
    var a = arr.every(function (value, index) {
        return value > 10;
    });
    document.write(a); //false

(17)数组名.some(函数)只要数组中的一个元素满足制定的条件,就返回true;当数组中每一个元素都不满足制定的条件时,才返回false

	var arr = [10,7,5,1000,50];
    var a = arr.some(function (value, index) {
        return value > 10;
    });
    document.write(a); //true

2.Math对象
3.String对象
4.Date对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于学习数据结构的C语言笔记,我可以给你一些基本的指导和概念。数据结构是计算机科学非常重要的一门课程,它涉及存储和组织数据方法。C语言是一种常用的编程语言,很适合用于实现各种数据结构。 下面是一些数据结构的基本概念,你可以在学习笔记包含它们: 1. 数组(Array):一种线性数据结构,可以存储相同类型的元素。在C语言数组是通过索引访问的。 2. 链表(Linked List):也是一种线性数据结构,但不需要连续的内存空间。链表由节点组成,每个节点包含数据和指向下一个节点的指针。 3. 栈(Stack):一种后进先出(LIFO)的数据结构,类似于装满物品的箱子。在C语言,可以使用数组或链表来实现栈。 4. 队列(Queue):一种先进先出(FIFO)的数据结构,类似于排队等候的队伍。同样可以使用数组或链表来实现队列。 5. 树(Tree):一种非线性数据结构,由节点和边组成。每个节点可以有多个子节点。二叉树是一种特殊的树结构,每个节点最多有两个子节点。 6. 图(Graph):另一种非线性数据结构,由节点和边组成。图可以用来表示各种实际问题,如社交网络和地图。 这只是数据结构的一些基本概念,还有其他更高级的数据结构,如堆、哈希表和二叉搜索树等。在学习笔记,你可以介绍每个数据结构的定义、操作以及适合使用它们的场景。 希望这些信息对你有所帮助!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值