JS高级复习-(1)

面向对象

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

  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 就是等于他爸

在这里插入图片描述

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(对象名)

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值