01-Math

  1. // Math 是ECMAScript中的内置对象<br /> // 它是引用数据类型<br /> // console.log(Math);<br /> // ECMAScript 没有给Math提供构造函数 所以无法使用new进行实例化<br /> // var m = new Math(); // Math is not a constructor<br /> // Math 主要封装了一些 数学中的 常数 和 函数<br /> // 访问Math的常数 直接使用 Math.属性<br /> // 常数 -> 常量 固定值不可改变的为常量<br /> // 在编程语言中 常量通常使用全大写的方式进行命名<br /> // var PI = 3.14;

02-Math对象常用方法

  1. // console.log(Math.abs(-5)); // 绝对值<br /> // console.log(Math.ceil(-3.1)); // 向上取整<br /> // console.log(Math.log(2)); // 自然对数<br /> // console.log(Math.floor(3.9)); // 向下取整<br /> // console.log(Math.max(31, 654, 12)); // 返回最大值<br /> // console.log(Math.min(31, 654, 12)); // 返回最小值<br /> // console.log(Math.round(3.6)); // 四舍五入<br /> // console.log(Math.sqrt(9)); // 根号<br /> // console.log(Math.pow(2, 6)); // 幂运算<br /> // --------------------------------------------<br /> // var arr = [654, 13, 543, 765, 3, 21];<br /> // // 要求查找数组中的最大值和最小值<br /> // // ... 展开运算符(扩展运算符) 展开数组或类数组对象

// 三角函数
// Math.sin() = 对边/斜边
// Math.cos() = 领边/斜边
// Math.tan() = 对边/领边
// 在JavaScript中 没有角度的概念 只有弧度的概念
// 勾股定理
// var a = 3;
// var b = 4;
// var c = Math.sqrt(a 2 + b 2);
// console.log(c);

03-random

// Math.random() 返回一个 (0-1] 的随机数
// 编写一个随机数函数 通过参数设置随机数范围
function random(min, max) {
return Math.round(Math.random() * (max - min) + min);
}
for (var i = 0; i < 100; i++) {
console.log(random(1, 15));
}

04-Date

// Date 日期对象 引用数据类型
// ECMAScript 提供了 日期对象的构造函数
// 可以使用 new 来创建日期对象
// var d = new Date(); // 获得当前系统时间 当前电脑的操作系统设置的时间
// console.log(d);
// console.log(typeof d);
// 月份的取值是0-11 0表示1月 11表示12月
// var d2 = new Date(2020, 4, 10, 0, 0, 0); // 6个参数 分别是 年月日 时分秒
// console.log(d2);
// var d3 = new Date(‘2022,3,12 12:6:5’); // 不推荐
// console.log(d3);

05-获得时间信息

// 获得时间信息
// 所有获得时间信息的函数 都被存储在 Date.prototype 中
var d = new Date(2021, 3, 1, 0, 0, 0);
// 获得日期部分
// console.log(d.getFullYear()); // 获得年份
// console.log(d.getMonth() + 1); // 获得月份 取值范围是0-11
// console.log(d.getDate()); // 获得日期
// console.log(d.getDay()); // 获得星期 星期的取值范围是 0-6
// 获得时间部分
// console.log(d.getHours()); // 获得小时 0-23
// console.log(d.getMinutes()); // 获得分钟 0-59
// console.log(d.getSeconds()); // 获得秒钟 0-59
// ————————————————————————-
// Date.prototype.getTime() 获得当前日期对象的时间 距离1970年1月1日 0点0分0秒的 毫秒差
// 1秒 = 1000毫秒
// 时间戳 它在计算机时间中是一个非常有意义的值
// 它是一个不会重复的数
// console.log(d.getTime());
// 快速获得当前时间的时间戳
// console.log(Date.now());
// 应用场景
// 做数据存储的时候(时间戳的优先级会高于字符串)
// ‘2022年7月4日14点21分50秒’
// 1656915629672
// var d2 = new Date(1656915629672); // 将时间戳传入时间的构造函数 可以恢复成时间对象
// console.log(d2);
// 订单号 (不可重复的数据)
// 2022070414251812311629672
// ———————————————————-
// 用于判断时区
// console.log(d.getTimezoneOffset() / 60); // 本地时间与格林威治标准时间(GMT)的分钟差

06-设置时间信息

// var d = new Date();
// d.setFullYear(2021);
// d.setMonth(6);
// d.setDate(15);
// d.setHours(15);
// d.setMinutes(0);
// d.setSeconds(0);
// console.log(d);
// var d = new Date(2021, 6, 15, 15, 0, 0);
// ————————————————
// 在这里使用频率最高的方法是 setDate()
var d3 = new Date();
d3.setDate(d3.getDate() + 31); // 设置日期时 如果超出取值范围 会自动在月份上进行相应调整
console.log(d3);
// 日期对象是允许运算的
// 日期对象进行运算时 会自动转换成时间戳

07-日期格式

// 常规格式
// console.log(d.toString());
// console.log(d.toTimeString()); // 时间部分
// console.log(d.toDateString()); // 日期部分
console.log(d.toLocaleString()); // locale 本地

08-周期性计时器

// 周期性计时器
// setInterval(callback,delay);
// 参数: callback(function) 回调函数
// delay(number) 延迟时间 单位ms
// 返回值:id(number) 计时器的唯一编号
// 描述: 周期性计时器 在每间隔一个固定的时间后 执行一次回调函数 循环往复
// 关闭周期性计时器
// clearInterval(id);
// var count = 0;
// var timer = setInterval(function () {
// if (count <= 5) {
// console.log(count++);
// } else {
// clearInterval(timer);
// }
// }, 1000);

09-BOM基本概念

// BOM没有相关标准
// BOM的功能由浏览器厂商 自行设计(浏览器自定义BOM)
// window 表示窗口 它指的是在浏览器中开启的标签页 每打开一个标签页 就是创建了一个window对象
// window 也是浏览器环境中 最高级别的对象(根对象)
// window 也是浏览器环境中 的全局对象
// window 所有的属性 也都是全局属性
// this 关键字 在全局环境下 也会指向 window
// console.log(this);
// 所有window对象的子属性和子方法 都可以省略 ‘window.’
// window.alert(‘你好世界’);
// alert(‘hahah’);
// console.log(window.alert === alert); // 引用类型比较地址 地址相同说明是同一个函数
// var 关键字声明的所有全局变量都会成为 window的子属性(var 声明的全局变量和window绑定)
// function 关键字 声明的全局函数 也会成为 window的子方法(function 声明的全局函数也与window绑定)
// function fn2() {
// // 函数中只声明了 变量a 没有声明变量b
// // 变量b 直接进行了赋值操作
// // 当变量b没有被声明 直接被赋值时 JS引擎将b看作是window的子属性
// // 应为window的子属性 可以省略window.
// // 浏览器就将这个b 理解成了 window.b
// function fn3() {
// var msg = ‘你好’;
// window.msg = msg; // 将函数中的变量 暴露给全局环境
// }
// this 在JS中是一个动态指针
// 它的指向由函数的调用者决定
// 如果在全局环境使用this它始终指向 window
// this 关键字
// 在函数中使用this 指向函数的调用者

10-全局属性

// 获得文档显示区域的大小
// console.log(innerHeight);
// console.log(innerWidth);
// // 获得浏览器大小
// console.log(outerHeight);
// console.log(outerWidth);
// 有一个全局属性叫做name 表示的窗口名称 属性已经被废弃了
// 它默认是字符串类型
// 所以 变量命名 避开他
// var name = 50;
// name += 50;
// console.log(name);
// 全局属性length 它表示页面中框架集的数量 框架集在HTML5标准已废弃
// 变量命名 避开
// console.log(length);