javaScript的内置对象

javascript内置对象

概念:

可以直接使用的对象(不需要使用字面量、Object、构造函数创建的对象,是javascript已经定义好的对象)

  • 使用MDN

​ (web开发文档的网站)查询资料:客户端 Web API - 学习 Web 开发 | MDN (mozilla.org)

Math对象

  • 是一个内置对象,用于数学运算的,不是一个函数对象(通过构造函数创建的对象称为函数对象),在创建Math对象时,不能使用new运算符(既不能 new Math( ) )

  • 使用方法:

    Math.属性名
    Math.方法名(【参数】)
    
  • 方法:

    • Math.PI:表示圆周率
      console.log(Math.PI); //3.1415926...
    
    • Math.abs(x):返回参数的绝对值

    • Math.floor(x):返回小于形参x的最大整数,向下取整

    • Math.ceil(x):返回大于等于形参x的最小整数,向上取整

    • Math.max(a,b,c,d…n):找到最大的数,只能用数字(数组的话得用ES6)

         let num = (123123,12310,10000,999)
              console.log(Math.max(num));
      
    • Math.pow(x,y):x的y次方

    • Math.sqrt(x)x的平方根

    • Math.round(x):x四舍五入的整数

    • Math.random():大于0.0-1.0的随机数(不包含1.0)

    • Math.trunc():取整

    // 表示生成大于或等于min且小于max****的随机值

    Math.random**() * (max - min) +** min**;**

    // 表示生成0到任意数之间的随机整数

    Math.floor**(Math.random() * (max + 1****));**

    // 表示生成1到任意数之间的随机整数

    Math.floor**(Math.random() * (max + 1) + 1****);**

练习1:生成一个0~50的随机数:

  function Random() {
            this.geiRandom = function (min, max) {
                let num = Math.random() * (max - min) + min;
                return Math.round(num)
            }

        }
        let r1 = new Random()
        console.log(r1.geiRandom(10, 50));

练习2:生成一个二维数组,3行4列

        function Random() {
            this.geiRandom = function (min, max) {
                let num = Math.random() * (max - min) + min;
                return Math.round(num)
            }
        }
        let r1 = new Random()
        console.log(r1.geiRandom(10, 50));
        let arr = new Array(
            new Array(4),
            new Array(4),
            new Array(4),
        )
        let str = ""
        for (let i = 0; i < arr.length; i++) {
            for (let j = 0; j < arr[i].length; j++) {
                arr[i][j] = r1.geiRandom(0, 99)
                str += arr[i][j] + '\t'
            }
            str += '\n'
        }
        console.log(str);

Date对象

  • 是一个函数对象,可以用new 运算符创建对象

    • 无参的构造函数:new Date()
      let d1 = new Date();
            console.log(d1);
    //   Fri Oct 21 2022 15:40:42 GMT+0800 (中国标准时间)
    
    • 传入年月日、时分秒,月份值应该在0-11之间,0表示1月,11表示12月

      new Date (,,,,,)new  Date(2022,9,21,15,42,50);
      
    • 传入字符串表示日期和时间

      new Date(`字符串`)
      
    • 传入整数:new Date

  • 其他函数

    • getFullYear( ) :获取年份(4位)
    • getmoth( ):获取月份(0-11)
    • getDate( ) :获取日期(月份中 的某一天,1~31之间)
    • gatDay( ) :获取今天是周几(0~6)0表示周天
    • getHours( ) :获取小时数
    • getMinutes( ):获取分钟数
    • getTime( ):获取1970年1月1日0时0分0秒到当前日期时间之间的毫秒数
    • toLocaleDateString( ):返回该日期对象日期部分的字符串,将年月日转换成字符串
    • toLocaleString( );返回该日期对象字符串,日期对象转换为字符串
    • toLocaleTimeString( ):返回日期对象时间部分的字符串

函数默认的内置对象:argements(本质是数组,存放的调用函数是传递的实参个数)

3、对象:是一种复合数据类型。是属性和行为的结合体

(1)使用字面量:{ }

(2)使用Object对象:new Object({ })

(3)使用构造函数:new 构造函数名(【参数】)—- 重难点

a、构造函数的定义:构造函数的本质是函数,作用是初始化对象的

function 构造函数名(【参数】){

this.属性名 = 属性值

this.函数名 = function(【参数】){

函数体语句

}

}

function Book(){

this.bookName = ‘西游记’

}

b、构造函数的使用

let b1 = new Book()

let b2 = new Book()

(4)通过对象来访问属性和函数

对象名.属性名

对象名.函数名(【参数】)

(5)对象数组:数组中存放的元素是对象

4、内置对象:

(1)Math对象:非函数对象。使用时直接通过 Math.属性名 、Math.方法名(【实参】)

(2)Date对象:使用时需要先创建对象( new Date() )

(3)Array对象:

String内置对象

String对象

:字符串。用单引号(’’) 或双引号(””)括起来的字符序列

(1)创建方式:

a、字面量:’’ 或 “”

let  s1 = 'abcd'
let  s2 = "玛卡巴卡" 
let s3 = "abcde'def'"  //注意单引号和双引号的嵌套(不能交叉)

b、使用构造函数:new String()

let s4 = new String('西安') //s4是一个字符串对象

(2)字符串的属性:length —— 表示字符串的长度(字符串中字符的个数)

字符串对象名.length

2、String对象的常用方法:字符串名.方法名(【实参】)

charAt( index ):

返回字符串中index位置上的字符。参数index代表索引值(下标),若没有找到则返回空

charCodeAt(index):

返回字符串中index位置上的字符的Unicode编码

ASCII码:是美国做的字符编码 (’a’:97……) ——— 只支持英文字符。表示一个字符使用1个字节(byte),即8个二进制位(bit)

Unicode码:国际标准化组织做的一套编码。表示一个字符使用2个字节,即16个二进制位(bit) —— 支持中文

ISO-8859-1码:不支持中文

GBK:支持中文

GB2312:支持简体中文

(3)concat(字符串):将两个及两个以上的字符串进行连接

(4)endsWith(字符串):判断字符串是否是以给定的子串结尾。是则返回true,不是则返回false

indexOf(子串):

返回子串在字符串中首次出现的位置(下标)。若返回-1,表示没有找到子串 。

lastIndexOf(子串):返回子串在字符串中最后出现的位置(下标)

includes(子串):查找字符串中是否包含指定的子串。若包含返回true,不包含返回false

startsWith(子串):判断字符串是否以给定子串开头。是则返回true,不是则返回false

split(分隔字符):将字符串分割成字符串数组

replace(oldStr,newStr):在字符中查找oldStr第一次出现的位置,并用newStr替换它

substr(start,length):截取字符串中从start开始的连续length个字符。当参数length省略时,截取从start开始到串末尾的所有字符

substring(start,end):截取start到end之间的子串,不包含end

trim():去掉字符串两端的空白字符

trimEnd():去掉字符串末尾的空白字符

trimStart():去掉字符串前面的空白字符

toLowerCase():将字符串中的所有字母转换为小写字母

toUpperCase():将字符串中的所有字母转换为大写字母

toString():将字符串对象转换成字符串

字符串的不可变性

:指当一个字符串被定义后,它的内容是不变的。虽然通过调用相关函数看似改变了串的内容,实际是在内存中新开辟了一个空间存放新的串

综合练习:

1、查找字符的位置:

let str = '离谱他妈给离谱开门,离谱到家了'        let first_index = str.indexOf('谱') //返回’谱‘在字符串str中第一次出现的位置        console.log(first_index)        /*           需求:字符串中除了'谱'第一次出现的位置之外,它下一次出现的位置是什么             indexOf(子串):返回'子串'在源串中第一次出现的位置             indexOf(子串,整数):从大于等于整数的位置开始,查找子串第一次出现的位置        */       let s_index = str.indexOf('谱',2) //从下标为2的位置开始查找'谱'第一次出现的位置       console.log(s_index)

2、查找字符串“abcoefoosxjisodhqoxufo”中所有o出现的位置和次数

// 查找字符串“abcoefoosxjisodhqoxufo”中所有o出现的位置和次数        let str = 'abcoefoosxjisodhqoxufo'        let count = 0 //统计'o'出现的次数        let index = str.indexOf('o') //返回'o'在字符串中第一次出现的位置        while(index != -1){            console.log(index)            count++            index = str.indexOf('o',index+1) //从index+1的位置开始查找下一个'o'出现的位置        }        console.log(`字母o一共出现了${ count }次`)

3、[‘red’,‘blue’,‘red’,‘green’,‘pink’,‘red’]中red出现的位置和次数

(1)将数组转换成字符串:join

let arr = ['red','blue','red','green','pink','red']        //第一步:将字符串数组转换成字符串:join        let str = arr.join()        console.log(str)        //第二步:在str中查找子串red出现的位置和次数        let count = 0 //统计'o'出现的次数        let index = str.indexOf('red') //返回'o'在字符串中第一次出现的位置        while(index != -1){            console.log(index)            count++            index = str.indexOf('red',index+1) //从index+1的位置开始查找下一个'o'出现的位置        }        console.log(`子串red一共出现了${ count }次`)

4、统计字符串中出现最多的字符和次数

(1)关于对象的属性的访问:

对象名.属性名

对象名[‘属性名’]

let user = {            idCard:'610302201511210045',            userName: '张三',            show:function(){                console.log('身份证号:',this.idCard)                console.log('姓名:',this.userName)            }        }        // console.log(user.idCard)        // user.show()        let proty = 'idCard'        console.log(user[proty])        user['show']()

(2)在对象中保存每个字符即该字符出现的次数

let str = "abcoefooaa";        let k = {}  //定义一个空对象:用于保存字符串中字符及统计该字符出现的次数        for(let i=0;i<str.length;i++){            let chars = str.charAt(i)  //将下标为i的字符取出赋给变量chars            if(k[chars]){ //若对象k中存在属性chars(chars变量代表某个字符)                k[chars]++            }else{  //对象k中不存在属性chars(chars变量代表某个字符)                k[chars] = 1            }        }        //遍历对象的属性:for...in循环        let max = 0        let ch = ''        for(let t in k){ //t='a',k[t]<=>k['a']<=>k.'a'  == 1            if(k[t]>max){                max = k[t] //max = a                ch = t //ch = 'a'            }        }        console.log(`出现次数最多的字母是${ ch } :${ max }`)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值