一.Math对象
提供一组数学相关的API
是一种特殊的对象,不需要通过new来创建对象,可以直接调用API
PI 获取圆周率
abs() 计算绝对值
floor()向下取整
ceil()向上取整
round()四舍五入取整
pow(x,y)计算x的y平方
max()获取一组数字最大值
min()获取一组数字最小值
random()获取随机数,范围0~1 [0,1)
双色球
红球:随机获取1~33之间的6个数字,不能重复,从小到大排列
篮球:随机获取1~16之间的6个数字,可以和之前的红球重复,将这组数字放入到一个数组
二、Date对象
用于日期时间的存储和计算
1.创建
new Date(‘2022/1/18 14:19:30’)
new Date(2022,0,18,14,19,30)//月份的范围0~11代表1~12月
new Date()//存储的是当前操作系统的时间
new Date(150000000000)//存储的是时间戳,距离计算机元年(1970-1-1 0:0:0)的毫秒数
2.获取
getFullYear()/getMonth()/getDate()
月份0~11 代表1~12月
getHours()/getMinutes()/getSeconds()getMilliseconds()
getDay()星期,范围0~6,代表日~六
getTime() 时间戳
练习:创建Date对象,保存当前操作系统的时间,获取日期时间,打印以下格式 ‘今天是xxxx年xx月xx日 星期二’
3.转为本地字符串格式
存在兼容性问题,只能用于开发阶段
toLocalString()
toLocalDateString() 显示日期部分
toLocalTimeString() 显示时间部分
4.设置
用于修改日期时间
setFullYear()/setMonth()/setDate()
setHours()/setMinutes()/setSeconds()/setMilliseconds()
setTime()设置时间戳,产生新的日期时间
5.拷贝Date对象
var d1=new Date();
//拷贝d1这个Date对象
var d2=new Date(d1);
练习:创建Date对象,保存一个员工的入职时间2022/2/10,假设合同期为3年,计算出到期时间;最后打印出两组日期时间的本地字符串形式
入职时间:xx...
到期时间:xx...
三、Number对象
new Number() 将一个数字包装为对象
Number()将一个值强制转换为数字
toFixed(n)强制保留小数点后n位
四、Boolean对象
new Boolean() 将一个布尔型值包装为对象
Boolean()将一个值强制转换为布尔型
!!值 把一个值隐式转换为布尔型
function getDays(time){
var now=new Date(time);
var getYear=now.getFullYear();
var firstDay=new Date(getYear.toString());
var thisDay=new Date(time);
var Times=(thisDay-firstDay)/1000;
var d=Math.ceil(Times/(3600*24))+1;
return d +'天';
}
console.log(getDays('2019/5/30'));
4.模板字符串
简化了字符串拼接
模板字符串${`JS表达式`}
//练习:假设从后端获取到了一条商品数据,格式为对象,
//包含的属性有标题、价格、是否在售(1/0),打印出以下格式
//标题:xx
//价格:xx.00元
//是否在售:是/否
三、Node.js概述
Node.js是JS在服务器的运行环境,可以让JS实现后端开发
www.nodejs.org 官网
www.nodejs.cn 中文版
1.对比JS和Node.js
JS运行在客户端浏览器,有多款浏览器,存在代码兼容性问题;
Node.js运行在服务器端,只有一种解释器,不存在代码兼容性问题。
两者都有相同的自定义对象和内置对象,不同的宿主对象
JS用于开发浏览器端交互效果,Node.js用于服务器端开发,例如:访问数据库、调用其它服务器..
2.运行JS
(1)脚本模式
node 拖拽文件 回车
(2)交互模式
node 回车 进入交互模式
两次 ctrl+c 或者 ctrl+d 退出交互模式
四、全局对象
1.global对象
用来检测是否为全局,JS下global名称为window
一个js文件在Node.js下是在一个独立的作用域;
一个js文件在JS下是在全局作用域下
练习:编写脚本文件04_global.js,声明变量和创建函数,使用global检测是否为全局的
var a=1;
function fn(){
return 2;
}
console.log(global.a);
console.log(global.fn());
2.console 对象
console.log(1);//打印日志
console.info(2);//打印消息
console.warn(3);//打印警告
console.error(4);//打印错误
console.time(); //开始计时
console.timeEnd(); //结束计时
注意事项:开始计时和结束计时的值保持一致
3.Buffer 缓冲区
缓冲区:是内存中用于临时存储数据的区域
Buffer.alloc(5,‘abcde’); //创建Buffer,分配内存空间,为5个字节,并存储字符,每个中文字符占3个字节
buf.toString() //将Buffer数据转为字符串
五.模块系统
模块:代表的是一个功能体,每个文件就是一个模块
module.exports:暴露的对象,默认是一个空对象
require();是一个函数,用于引入其它的模块,回到暴露的对象
练习:创建主模块(main.js)和功能模块(circle.js),在主模块下创建两个函数,传递半径,返回周长和面积;最后在主模块下引入功能,并调用两个函数
//创建主模块(main.js)和功能模块(circle.js),在主模块下创建两个函数,传递半径,返回周长和面积;
//最后在主模块下引入功能,并调用两个函数
let obj=require('./circle.js')
obj.myarea(2);
obj.mygirth(3);
function girth(radii){
let pi=Math.PI;
girth=PI*radii*2;
console.log(girth.toFixed(2));
}
girth(5)
function area(radii){
let pi=Math.pi;
area=Math.pow(radii,radii)*pi;
console.log(area.toFixed(2));
}
area(5);
module.exports={
mygirth:girth,
myarea:area
}