# 一、对象
1. js的对象的分类
- 内置对象:
- ES提供可以直接被使用的对象,已经是一个具体的实例了,不需要创建
- Math对象,数学对象
- 本地对象:
- 其实只是ES提供的一种类方法,需要被实例化之后,才能使用
- 需要被new执行之后,才能使用
- String,Object,Array,Number,Boolean,RegExp,Date
- 宿主对象:
- 由浏览器或W3C提供的运行ES的环境,所带的对象
- BOM:window,DOM:document
- 所有的自定义对象
- 注:实例化:转化成实际的案例
2. 补充关键字:delete,用来删除自定义对象的属性
- delete
- `delete 对象.属性名`;
- 只能删除自定义对象的属性,且一次只能删一个属性
- 建议:少用
3. Math数学对象,不需要数学知识支撑,使用这个对象直接得到想要的结果
- Math 是 js 的一个内置对象,提供了一堆的方法帮助我们操作数字
- 属性
- Math.PI
- 圆周率
- 方法
- Math.random()
- 随机数,随机产生0-1之间的数,不包括0,1
- Math.round()
- 取最近的整数
- Math.ceil()
- 向上取整
- Math.floor()
- 向下取整
- Math.max()
- 参数是多个数字,求最大数字
- Math.min()
- 参数是多个数字,求最小数字
- Math.pow(底数,指数)
- 求幂
- Math.sqrt()
- 开根号
- Math.abs()
- 求绝对值
- Math.sin(弧度)
- 正弦
- Math.cos(弧度)
- 余弦
- ......
- console.log(Math);
4. 如何得到范围随机数
- `Math.floor(Math.random() * (max-min+1) ) + min`
# 三、进制的转换
- 十进制转其他
- 十进制是日常使用进制,是数值型数据
- 其他进制,如:十六进制中含有abcdef,所以需要用字符的形式表示
- 其实就是将数值转成字符
- num.toString(进制)
```js
var num = 234;
console.log(num);
var er = num.toString(2);
console.log(er);
var ba = num.toString(8);
console.log(ba);
var sl = num.toString(16);
console.log(sl);
```
- 其他转十进制
- 其他都使用字符表示
- 其实就是将字符转成数值
- parseInt(要转换的数据, 作为哪个进制转换)
```js
var str = "101010";
console.log(parseInt(str, 2)); // 42
console.log(parseInt(str, 8)); // 33288
console.log(parseInt(str, 16)); // 1052688
console.log(parseInt(str, 10)); // 101010
console.log(parseInt(str)); // 101010
```
- 其他转其他
- 利用十进制做过渡
// var str = "110110";
// console.log(parseInt(str, 2).toString(8)) // 66
- u编码:得到的直接就是十进制,被系统自动转了
- 颜色值
# 四、日期对象
1. Date日期对象,用来获取当前系统日期
- 是本地对象,本地对象的特点是不能直接使用,这仅仅是个类方法(类似于函数),需要new执行后才能使用
2. 创建日期对象
- 系统的默认日期
- new Date();
3. 获取日期对象的每一部分
```js
var year = d.getFullYear();
var month = d.getMonth(); // 0~11
var myDate = d.getDate();
var day = d.getDay(); // 0~6
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
var millS = d.getMilliseconds();
```
4. 设置日期对象
- 需求:计算北京奥运会距离今天过去了多少天?
- 过去的日期怎么拿?设置指定日期
- 如何设置
- 直接设置
- 简单粗暴,但必须整体设置
- `new Date(要设置的数据)`
- 字符:一个参数,直接设置,不允许日期溢出,否则会无效的日期,没有设置的部分,为0
```js
var d = new Date("2008.8.8");
var d = new Date("2008/8/8");
var d = new Date("2008-8-8");
var d = new Date("2008,8,8");
var d = new Date("2008 8 8");
var d = new Date("2008.14.8 8:8");
var d = new Date("2008.8.8 8:8");
```
- 数值:多个参数,直接设置,月份从0开始,日期溢出,向前进1,没有设置的部分,为0
```js
var d = new Date(2008,8,8);
var d = new Date(2008,7,8);
var d = new Date(2008,15,8);
var d = new Date(2008,15,8);
var d = new Date(2008,15,8,20,8,8);
```
- 通过方法设置
- 繁琐,但可以针对性设置
- 没有设置的部分,采取当前日期,月份从0开始,溢出部分,向前进1
```js
d.setFullYear(2008);
d.setMonth(14);
d.setDate(8);
d.setHours(8);
d.setMinutes(8);
d.setSeconds(8);
d.setMilliseconds(666);
```
- 还可以独立设置时间戳
```js
d.setTime(从1970.....到要设置的日期的毫秒数)
```
5.8 进制转换 日期设置 随机数
原文:https://www.cnblogs.com/xiaokeai233/p/12853679.html