JavaScript 中的对象分类
自定义对象 、内置对象、 浏览器对象
自定义对象和内置对象是JS 基础 内容,属于 ECMAScript;
第三个浏览器对象属于 JS 独有的, JS API 内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法),内置对象最大的优点就是帮助我们快速开发
内置对象
JavaScript 提供了多个内置对象:Math
、 Date
、Array
、String
等。
查文档推荐MDN: https://developer.mozilla.org/zh-CN/
Math对象
Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。
属性、方法名 | 功能 |
---|---|
Math.PI | 圆周率 |
Math.floor() | 向下取整 (parseInt()) |
Math.ceil() | 向上取整 |
Math.round() | 四舍五入版 就近取整 注意 -3.5 结果是 -3 |
Math.abs() | 绝对值 |
Math.min() | 求最大和最小值 |
Math.max() | 如果没有参数,则结果为 – Infinity 如果有任一参数不能被转换成数值,则结果为NaN |
Math.random()(后面不跟参数) | 获取范围在[0,1)内的随机值 返回一个随机的小数 0 =< x < 1 |
注意:上面的方法使用时必须带括号
案例
例子:最大值
console.log(Math.PI); // 一个属性 圆周率
console.log(Math.max(1, 99, 3)); // 99
console.log(Math.max(-1, -10)); // -1
console.log(Math.max(1, 99, '李老师')); // NaN
console.log(Math.max()); // -Infinity
例子:封装自己的数学对象
// 利用对象封装自己的数学对象 里面有 PI 最大值和最小值
var myMath = {
PI: 3.141592653,
max: function() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
},
min: function() {
var min = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] < min) {
min = arguments[i];
}
}
return min;
}
}
console.log(myMath.PI);
console.log(myMath.max(1, 5, 9));
console.log(myMath.min(1, 5, 9));
例子:其他方法
// 1.绝对值方法
console.log(Math.abs(1)); // 1
console.log(Math.abs(-1)); // 1
console.log(Math.abs('-1')); // 隐式转换 会把字符串型 -1 转换为数字型
console.log(Math.abs('pink')); // NaN
// 2.三个取整方法
// (1) Math.floor() 地板 向下取整 往最小了取值
console.log(Math.floor(1.1)); // 1
console.log(Math.floor(1.9)); // 1
// (2) Math.ceil() ceil 天花板 向上取整 往最大了取值
console.log(Math.ceil(1.1)); // 2
console.log(Math.ceil(1.9)); // 2
// (3) Math.round() 四舍五入 其他数字都是四舍五入,但是 .5 特殊 它往大了取
console.log(Math.round(1.1)); // 1
console.log(Math.round(1.5)); // 2
console.log(Math.round(1.9)); // 2
console.log(Math.round(-1.1)); // -1
console.log(Math.round(-1.5)); // 这个结果是 -1
随机数
Math对象随机数方法 random()
返回一个随机的小数 0 =< x < 1 [0,1)
示例代码:
console.log(Math.random());//这个方法里面不跟参数
获取指定范围内的随机整数:
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
//传入1,,10,过程如下:
//Math.floor( 0 =< x < 1 * (max - min + 1) ) + min;
//Math.floor( 0 =< x < 1 * 10 ) + min;
//Math.floor( 0 =< x < 10 ) + min; // 这个是带小数的范围
// 0 =< x < 10 + 1; // 取过floor之后就是整数
// 1 =< x < 11 // [1,10]
}
console.log(getRandom(1, 10));
案例-随即点名:
var arr = ['张三', '张三丰', '张三疯子', '李四', '李思思', '李老师'];
// console.log(arr[0]);
console.log(arr[getRandom(0, arr.length - 1)]);
案例-猜数字游戏:
// 猜数字游戏
// 1.随机生成一个1~10 的整数 我们需要用到 Math.random() 方法。
// 2.需要一直猜到正确为止,所以需要一直循环。
// 3.while 循环更简单
// 4.核心算法:使用 if else if 多分支语句来判断大于、小于、等于。
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var random = getRandom(1, 10);
while (true) {
// 死循环
var num = prompt('你来猜? 输入1~10之间的一个数字');
if (num > random) {
alert('你猜大了');
} else if (num < random) {
alert('你猜小了');
} else {
alert('你好帅哦,猜对了');
break; // 退出整个循环结束程序
}
}