2.8包装类型-原始类型的属性和方法

1.认识包装类型

1.1原始类型的包装类

再JavaScript中的原始类型并非对象类型,所以从理论上来说,它们是没有办法获取属性或者调用方法的

但是,在开发中会看到,我们会经常这样操作

那么,为什么会出现这样奇怪的现象呢?

原始类型是简单的值,默认并不能调用属性和方法

这是因为JavaScript为了可以使其可以获取属性和调用方法,对其封装了对应的包装类型;

常见的包装类由:String、Number、Boolean、Symbol、BigInt类型

1.2包装类型的使用过程

默认情况下,当我们调用一个原始类型的属性或者方法的时候,会进行如下操作:

根据原始值,创建一个原始类型对应的包装类型对象;

调用对应的属性或者方法,返回一个新的值;

创建的包装类对象被销毁;

通常JavaScript引擎会进行很多的优化,它可以跳过创建包装类的过程在内部直接完成属性的获取或者方法的调用

我们也可以自己来创建一个包装类的对象:

name1是字面量(literal)的创建方式,name2是new创建对象的方式;

注意事项:null、undefined没有任何的方法,也没有对应的“对象包装类”

2.数字类型Number

Number属性补充:

Number.MAX_SAFE_INTEGER:JavaScirpt中最大的安全整数(2^53-1);

Number.MIN_SAFE_INTEGER:JavaScirpt中最小的安全整数-(2^53-1);

Number实例方法补充:

方法一:toString(base),将数字转成字符串,并且按照base进制进行转化

        base的范围可以从2到36,默认情况下是10

注意:如果是直接对一个数字操作,需要使用...运算符

方法二:toFixed(digits),格式化一个数字,保留digits位的小数;

digits的范围是0到20(包含)之间

Number类方法补充:

方法一:Number.parseInt(sring[,radix]),将字符串解析成整数,,也有对应的全局方法parseInt;

方法二:Number.parseFloat(string),将字符串解析成浮点数,也有对应的全局方法parseFloat;

更多Number的知识,可以查看MDN文档:

    <script>
      
      //Number构造函数 window.Number
      //var num = 123 // new Number(num)

      //Number中本身是有自己的属性
      console.log(Number.MAX_VALUE)
      console.log(Number.MIN_VALUE)

      //integer:整数
      console.log(Number.MAX_SAFE_INTEGER)
      console.log(Number.MIN_SAFE_INTEGER)

      //对象的方法
      //toString(base)
      var num = 1000
      console.log(num.toString(), typeof num.toString())
      console.log(num.toString(2))
      console.log(num.toString(8))
      console.log(num.toString(16))

      console.log(123..toString(2))
      var pi = 3.1415926
      console.log(pi.toFixed(3))

      //类的方法
      //整数:123
      //浮点数:小数 123.321

      var num1 = "123.321"
      console.log(Number(num1))
      console.log(Number.parseInt(num1))
      console.log(Number.parseFloat(num1))

      //window对象上面
      console.log(parseInt(num1))
      console.log(parseFloat(num1))

      function HYNumber() {

      }

      HYNumber.parseInt = function() {

      }
      winndow.parseInt = HYNumber.parseInt
    </script>

3.数学对象Math

在除了Number类可以对数字进行处理之外,JavaScript还提供了一个Math对象

 Math是一个内置对象(不是一个构造函数),它拥有一些数字常数属性和数学函数方法;

Math常见的属性:

Math PI: 圆周率,约等于3.14159;

Math常见的方法:

Math.floot:向下舍入取整

Math.ceil:向上舍入取整

Math.round:四舍五入取整

Math.random:生成0-1的随机数(包含0,不包含1)

Math.pow(x,y):返回x的y次幂

可以查看MDN文档

Math - JavaScript | MDN (mozilla.org)https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math

4.字符串类型String

4.1String类的补充-基本使用

在开发中,我们经常需要对字符串进行各种各样的操作,String类提供给我们对应的属性和方法。

String常见的属性:

length:获取字符串的长度

String也有很多常见的方法和操作。

操作一:访问字符串的字符

使用方法一:通过字符串索引str[0]

使用方法二:通过str.charAt(pos)方法

它们的区别是索引方式没有找到会返回undefined,而charAt没有找到会返回空字符串;

练习:字符串的遍历

方式一:普通for循环

方式二:for...of遍历

4.2修改字符串

字符串是不可变性:

字符串在定义之后是不可以修改的,所以下面的操作是没有任何的意义

      message[2]="a"
      console.log(message)
      //这个是没有任何的意义,不会修改原来的字符串
    <script>

      var message = "Hello World"


      //var message = "my name is chen" //这个不算是修改字符串,是把新的字符串赋值给一个遍历
      //1.严格的修改字符串,之前的字符串内部修改掉
      message[2]="a"
      console.log(message)
      //这个是没有任何的意义,不会修改原来的字符串

      //message中所有的字符变成大写:toUpperCase
      var message1 = message.toUpperCase()
      console.log(message)
      console.log("message1:",message1)
      //等价于
      message = message.toUpperCase() //把原来的字符串生成一个新的字符串,赋值给原来的变量

      //将所有的字符变成小写:toLowerCase()
      messageLower=message.toLowerCase
      console.log(messageLower)
    </script>

4.3String类型的搜索字符串

在开发中我们经常会在一个字符串中查找或者获取另外一个字符串,String提供了如下方法:

方法一:查找字符串 str.indexOf(searchValue [, fromIndex])

从fromIndex开始,查找searchValue的索引

如果没有找到,那么返回-1

有一个相似的方法,叫做astIndexOf,从最后开始查找(用的比较少)

方法二:是否包含字符串str.includes(searchString[,position])

从position位置开始查找searchString,根据情况返回true或者false

这里是ES6新增的语法

方法三:以xxx开头 str.atartsWith(searchString,[position])

从po

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值