在此先带大家做一个回忆,之前我们学字符串的时候,有个是获取字符串的长度,我们来看一下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
var str = '133'
console.log(str.length);
</script>
</html>
我们看结果:
是3个的长度没问题,此时有一个问题,对象的前面可以点加一个属性,就可以获取到,那么 str 这个变量明明是一个字符串,为什么就可以以 .语法,来获取一个属性呢,而且确实还有值,还拿到了我们字符串的长度,所以接下来就学到了我们的 包装对象
包装对象:
三种原始类型 数值 字符串 布尔
原始类型的数据在一定条件下可以自动转为对象 这就是包装对象
我们看下面代码:
... ...
var v1 =new Number(123);
console.log(v1);
</script>
</html>
打印出来是一 Number ,但是它是括号括起来的,这就是一个对象了,那我们把这个类型的东西转为对象,有什么意义或目的吗
JavaScript语言设计的时候,是想这样的,我要把所有的数据类型,都能够使用对象的的方式,来提供一些属性和方法,来方便操作
原始值 可以自动当做对象来调用,可以调用各种属性及方法
如果包装对象使用完成,会自动立即销毁
var a = '456';
a.length;
我们来看着代码,定义变量并赋值,这是一个字符串类型的
但是你下面加了 . 那么a变量的字符串类型就成为了对象,他就可以按照对象语法来调用属性了,就是length,也就是字符串的长度,这就叫做包装对象
那接下来我们就看对象里有哪些属性和方法可以供我们直接调用的,其实是有很多的,但是不可能全部都讲解一遍,我在这里呢这是,把经常用的来说一下
首先第一个呢,就是数学对象:
Math 是一个内置对象,也称为数学对象,也具有数学常数和函数的属性和方法。不会是一个函数对象。与其他全局对象不同的是,Math的所有属性和方法都是静态的,跟数学相关的运行直接使用Math中的成员即可
那接下来我们看几个Math的一些属性:
1、Math.abs(x) 函数返回指定数字“x”的绝对值:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
var n = 2;
var n2 = Math.abs(n);
console.log(n2)
</script>
</html>
我们看这段JS代码,用Math.abs 取绝对值,绝对值就是不管事正数还是负数,只要求它的绝对值,就是正数,我们看这个的结果;
那我们试一下负数:
... ...
<script>
var n = -2;
var n2 = Math.abs(n);
console.log(n2)
</script>
</html>
同样是正数没错
2、在看一个产生随机值的Math 属性
Math.random() 函数返回一个浮点,伪随机数在范围 [0,1) ,也就是说,从0(包括0)往上,到是不包括1(排除1),然后你就可以缩放到所需的范围。现实将初始种子选择到随机数生成算法,它不能被用户选择或重置
... ...
var r = Math.random();
console.log(r);
</script>
</html>
看结果是这个数
我们在刷新一下:
有是不一样了,就是每次刷新都是不同的数,但是都不会超过或者是1,但有时我们就是需要更大的数怎么办呢:
这时候我们就可以在这是属性的后面用乘号,乘10,假如我们取值取到的是 0.3,那么10 就是3了,这样的
... ...
var r = Math.random() * 10;
console.log(r);
</script>
</html>
那这还是不行啊,我就是想要整数,不要小数呢
3、Math.floor 返回小于或等于一个给定数字的最大整数
... ...
var r1 = Math.random() * 10;
var r2 = Math.floor(r1);
console.log(r2);
</script>
</html>
这样一直刷新就可以看到0到9的数字了