数组的一些常用方法

132 阅读3分钟

面向对象

面向对象:(本质就是对面向过程的封装)

  1. 是一种注重解决结果的问题 思维方式
  2. 面向过程:注重的是过程
  3. 面向对象:注重的是结果

面向对象

  1. 函数封装:把冗余代码放入函数中
  2. 弊端:全局变量污染
  3. 变量名太多,导致增加重名的风险,代码会被覆盖。
  4. 对象封装:把函数作为对象的方法

面向过程:(注重过程)

  1. 特点:代码冗余

内置对象

  1. 含义:js作者提前封装好的对象

数组对象

arr.concat(数组)

作用:把两个数组连接成一个数组

应用:一般用于长列表(下一页)不断往后面进行拼接数组

arr.reverse()

作用:翻转数组

应用:价格从低到高,切换成从高到低,只需要翻转数据

arr.join('分隔符')

作用:把数组每一个元素拼接成字符串

应用:有些歌曲多人合唱,服务器会给我们一个按钮,这个时候需要将数组元素通过join拼接起来,然后再页面显示

arr.sort(function(a,b{return a-b})

作用:排序

return a-b 从小到大

return b-a 从大到小

字符对象

str.length或者str[4]

作用:字符串类似于数组,有长度和下标

str.indexOf('字符串')

作用:获取”字符串“在str中首字母下标

如果字符串存在首字母下标则返回字母下标,如果字符串不存在则返回固定值-1

应用:检查一个字符串中是否有 某个字符

split('分隔符') : 切割字符串

     //返回值一定是数组 : 元素对应切割的每一个部分
         let str1 = '我&爱*你'
         console.log( str1.split('&') )//['我', '爱*你']
         console.log( str1.split('*') )//['我&爱', '你']
         console.log( str1.split('=') )//['我&爱*你']
         //应用: 解析url中的参数(了解即可)   
         // 'http://www.baidu.com?name=张三&age=20'  得到  { name:'张三',age:20 }

str.substr(起始下标,截取长度)

作用:截取字符串

应用:返回截取所需要的值

’字符串“.toLocalLowerCase()‘小写转换

’字符串“.toLocaleUpperCase()‘大写转换只针对英文,中文无效

作用:大小写转换

应用:字母验证码,不区分大小写

构造函数

  1. 构造函数工作原理:

    1. 创建空数组
    2. this指向这个对象
    3. 对象赋值
    4. 返回这个对象(return)
  2. 注意点:

    1. 构造函数首字母一般大写,为了提醒调用者不要忘记加new关键字

    2. 构造函数主动写return :

      值类型 : 无效,还是返回new创建的对象

      (数组)引用类型:有效。 会覆盖new创建的对象

  3. 弊端:

    • 如果使用构造函数,里面还有函数执行,每次创建都要创建一个对空间,这样就导致内存资源的浪费

原型对象(构造函数名.prototype)

含义:任何函数在声明的时候,系统会自动帮你创建一个对象。

作用:弥补构造函数的内存浪费+全局变量污染

原型对象的三个属性:构造函数、原型对象、实例对象

prototype : 属于构造函数,指向原型对象

  • 作用:解决内存浪费+变量污染

proto : 属于实例对象,指向原型对象

  • 作用: 实例对象 访问 原型对象的成员

constructor:属于原型对象,指向构造函数

  • 作用:可以让实例对象知道自己的构造函数是谁
 //person是构造函数  也叫他爸    person.prototype指向的是原型函数    也叫他妈
         //原型函数  也叫他妈 用 person.prototypr表示    原型函数.constructor 就等于他爸
         //实例对象 也叫我   p1.__proto__ 表示他妈   p1.__proto__.constructor 就是等于他爸
 ​

构造函数关系.png

object的value的方法

静态成员: 函数的属相

实例成员: 实例对象的属性

 ​
         function Person(name,age){
             this.name = name
             this.age = age
         }
 ​
         //静态成员
         console.log( Person.prototype )
         Person.aaa = '111'//静态
         console.dir( Person )
 ​
         //实例成员
         let p1 = new Person('ne',30)
         console.log( p1.name )//实例
         console.log( p1.age )//实例
     
  1. 静态方法 objecct.value(对象名)

    返回一个数组,会储存对象的每一个属性值