js高级复习

158 阅读3分钟

原型对象

1.面向对象

  • 面向对象:是一种只注重结果的思维方式
  • 面向过程:注重过程
  • 两者的关系:面向对象的本质是面向过程的一种封装

2.内置对象

1.内置对象api
  • 内置对象api : js作者写好的对象的一些方法
  • 内置对象 : js作者提前写好的对象,直接拿来使用即可
  • api : 是预先定义的函数
2.array对象
  • (1).数组增删改查
          push() : 向数组的末尾添加一个或更多元素,并返回新的长度。
          unshift() :向数组的开头添加一个或更多元素,并返回新的长度。
          pop() :删除数组的最后一个元素并返回删除的元素。
          shift() : 删除并返回数组的第一个元素。
  • (2)join('分隔符') : 把数组元素拼接成一个字符串 // 应用:歌手['周杰伦','温岚']->周杰伦&温岚
  • (3)concat() 连接两个或更多的数组,并返回结果
   // 应用:下拉加载下一页,返回值是新的数组
  // 注意使用时,需要赋值
  • (4)reverse() : 翻转数组 // 应用:价格升降序,距离远近等
  • (5)sort() : 数组排序
         //参数:回调函数 固定语法死记硬背
          arr.sort(function (a, b) {
          // return a - b//从小到大排序
          // return b - a //从大到小排序
          }) 

3.string对象:

(1).str[下标]

// 字符串也可以像数组那样通过下标获取 某个字符 console.log(str[5]) //5下标 前

(2). indexOf() : 返回某个指定首字符的位置下标

//应用: 检查一个字符串中是否有 某个字符 //返回的是第一个字下标 //有 : 下标 没有: 固定值-1

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

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

(4)substr(起始下标,截取长度) : 截取部分字符串

let str = str.substr(2, 5) //从第二个下标开始,往后截取5个字

(5).大小写转换(中文没有大小写)

.toLocaleLowerCase //小写 .toLocaleUpperCase //大写

(6)charAt()返回在指定位置的字符.(通过下标)
(7)trim()去除字符串两边的空格

4.原型对象

  • 概念:当我们创建函数的时候,系统会自动帮你创建一个与之对应的对象,称之为原型对象
  • 作用:解决变量污染,但是这个对象本身也会造成污染

5.原型对象关系

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

  • 作用:解决内存浪费+变量污染 proto : 属于实例对象,指向原型对象
  • 作用: 实例对象 访问 原型对象的成员 constructor : 属于原型对象,指向构造函数
  • 作用: 可以让实例对象知道自己是被谁创建的
      (1) 构造函数
         function person(name,age){
         this.name=name
         this.age=age
         }
         
      (2)原型对象
       person.prototype=function(){
       this.eat=eat
       }
      
      (3)实例对象
       let p1=new person(name,age)
       let p2=new person(name,age) 
     
       //检测构造函数、原型对象、实例对象三者之间关系: 两行代码
       console.log(p1.__proto__.constructor === Person)
        //true (你爹是你爹,你妈的老公是你爹)
       console.log(p1.__proto__ === Person.prototype) 
       //true (你妈是你妈)

   (4) 静态与实例成员
       静态成员:属于函数的成员
       实例成员:属于实例对象的成员
       获取对象所有的属性值:
       Object.value(对象名)
       let obj={}
       Object.value(obj)
       Object.key(obj)