js的简单基础:第五章

Math对象(数学对象)

Math对象提供一组数学相关的API;是一个特殊的对象,不需要new来创建即可使用

PI 获取圆周率

abs() 获取绝对值

ceil() 向上取整

floor() 向下取整

round() 四舍五入取整

pow(x,y) 计算x的y次方, 或者使用 X**Y

max() 获取一组数字的最大值

min() 获取一组数字的最小值

random() 随机数

//圆周率
Math.PI;
//获取绝对值
Math.abs(将进行计算的值(+_*/)计算的值)
//parseInt()取整
//向上取整
Math.ceil(计算的值);
//向下取整
Math.floor(计算的值);
//四舍五入取整
Math.round(计算的值);
//次方(的两种方式)
Math.pow(5, 2), 5 ** ;
//获取一组数字最大值
Math.max(23, 3146, 4787, 6897);
//获取一组数字最小值
Math.min(23, 3146, 4787, 6897);
//随机数
Math.random();

Date对象

用于对日期时间的存储和计算

创建对象

//第一种写法
new Date('2023/12/12 10:59:59')
//第二种写法(第2个参数月份的值为0~11,对应1~12月)
new Date(2023, 3, 4, 10, 59, 20)
//当前的系统时间
var d3 = new Date()
//距离计算机元年的毫秒数(时间戳)	1秒=1000毫秒
var d4 = new Date(53 * 366 * 24 * 60 * 60 * 1000)

获取

//获取年份
Date对象名.getFullYear()
//获取月份
Date对象名.getMonth() + 1
//获取日
Date对象名.getDate()
//获取小时
Date对象名.getHours()
//获取分钟
Date对象名.getMinutes()
//获取秒
Date对象名.getSeconds()
//获取毫秒
Date对象名.getMilliseconds()
//获取一个日期的时间戳
Date对象名.getTime()
//获取当前时间的时间戳
Date.now()
//获得星期	值是0~6,对应星期日到星期六
Date对象名.getDay()

练习

//计算出现在距离五一劳动节还剩多少天
//保存现在的时间
var b = new Date();
//保存五一的时间
var c = new Date('2023/4/29 00:00:00');
//计算出现在的时间到五一的时间需要多少秒,并取整
var e = parseInt((c.getTime() - b.getTime()) / 1000);
//计算秒部分:去除总的相差秒数中含有的分钟(60),剩下的值不满一分钟(60)
var m = e % 60
//计算分钟部分:去除总的相差秒数中含有的小时(3600),再把单位转为分钟
var f = parseInt((e % (3600)) / 60)
//计算小时部分:去除总的相差秒数中含有的天(24*3600),再把单位转为小时
var o = parseInt((e % (3600 * 24)) / 3600)
//计算天部分:直接转换为天
var t = parseInt((e % (3600 * 24 * 365)) / (3600 * 24))
//最后输出
console.log("现在距离五一劳动节放假还剩" + t + "天" + o + "小时" + f + "分钟" + m + "秒");

设置

//获取年份
Date对象名.setFullYear()
//获取月份
Date对象名.setMonth() + 1
//获取日
Date对象名.setDate()
//获取小时
Date对象名.setHours()
//获取分钟
Date对象名.setMinutes()
//获取秒
Date对象名.setSeconds()
//获取毫秒
Date对象名.setMilliseconds()
//获取一个日期的时间戳
Date对象名.setTime()

拷贝Date对象

把要拷贝的对象作为参数传递给new Date()

var d = new Date();
//拷贝d对象
var d1 = new Date(d);

将Date对象转为字符串

toLocaleString()

存在兼容性问题,只能用于开发调试阶段

数值对象

new Number() 将一个数字包装为对象

Number() 将一个值转为数值型

//字面量
 var 数值名 = 1
//包装为对象
var 数值名 = new Number(1);
//转为数值
var 数值名 = Number(true)

API

toFixed(n) 保留小数点后n位

布尔对象

new Boolean() 将一个布尔值包装为对象

Boolean() 将一个值转换为布尔型

!!值 将一个值隐式转换为布尔型

//字面量
var 名称 = true;
//包装为对象
var 名称 = new Boolean(true);

错误处理

常见错误

语法错误(syntaxError):代码编写不符合语法规范,例如:缺少半块括号,使用了中文符号…(所有代码不执行)

引用错误(ReferenceError):访问的变量找不到,例如:变量名称写错或由于作用域原因无法访问到(在错误之下的代码不执行)

类型错误(TypeError):调用API或者函数,不是一个函数类型,例如API名称写错(在错误之下的代码不执行)

范围错误(RangeErrot):使用的值超出了js的规范位置,例如:参数提供,递归调用可能出现内存占满\

自定义错误(在throw后面写错误内容):用户自己指定的错误,

​ 语法:

​ throw 自定义错误内容

错误处理

出现错误以后,不阻止后续代码执行

try {
	//尝试执行
	console.log(mun);
} catch (形参) {
	//捕捉到try中出现错误,放入到形参
	console.log(形参);
	//处理错误
	mun = 1
}

ES6

块级作用域

let 声明的变量,会进入暂时性的死区,提升后是暂时不允许访问的,只有赋值后才允许访问

let 声明的变量,不允许在同一作用域下重复声明

块级作用域:大括号之间的语句块,例如if、else、for… 块级作用域下,let和const声明的是局部变量或者常量,不允许被块级作用域以外访问

letconst即使声明在全局作用域下,也不是全局变量或者常量

参数增强

可以给参数设置默认值

逻辑运算符赋值

var a =1 ||2

选择将其中的一个值赋给变量a,当地第一个值转布尔型为true,则把第一个值赋给a;当第一个值转布尔型为false,则把第二个值赋给变量a

var a =1 &&2

选择将其中的一个值赋给变量a,当地第一个值转布尔型为true,还会继续执行第二个,则把第二个值赋给a;当第一个值转布尔型为false,不在执行的二个,则把第一个值赋给变量a

箭头函数

简化匿名函数的写法,但不等价于匿名函数

jsx ()=>{    函数体}//简化写法示例
var 数组名 = [元素1,元素2,元素3....]
数组名.sort((a,b) => {    return a-b})	
//如果箭头函数,函数体中只有一行代码并且是return形式,可以进一步简化,箭头的后面可以只写return的值
var 数组名 = [元素1,元素2,元素3....]
数组名.sort((a, b) => a - b)

Node.Js

Node.Js是js的一种环境

js,Node.Js的区别

Js运行在客户端浏览器,有多款浏览器,存在代码兼容性问题;Node.Js运行在服务器端,只有一种V8引擎环境,不存在代码兼容性问题。

两者都有共同的自定义对象和内置对象,不同的宿主对象

Js用于操作网页元素来实现用户交互,Node.Js用于服务器端开发,例如数据库访问,其他服务器的调用

使用Node.Js运行Js程序

1.脚本模式

在命令行下

node 脚本文件的路径

2.交互模式

在命令行下输入

​ node 回车 进入交互模式

​ ctrl+d 退出交互模式

全局对象

global对象

可以检测一个变量或者函数是否为全局的

如果一个变量或者函数是全局的,可以通过jlobal访问到

var a = 1 //全局变量
global.a  //1
functino fn(){//全局函数
    return 2
}
global.fn()	//2

Node.js的交互模式,属于全局作用域

Node.js下,每个js文件不是在全局作用域下,变量和函数都是局部的。

Js下全局对象global名称为window

console对象

用于控制台下输出

console.log(1); //打印日志
console.info(2); //打印消息
console.error(3); //打印错误消息
console.warn(4); //打印警告消息
console.time();//开始计时
console.timeEnd();//结束计时	开始计时和结束计时的值要一致

process对象

进程:在计算机上启动每个软件(应用程序)并且都会占用相应的资源

process.arch	//查看当前CPU架构
process.platform	//查看当前操作系统
process.pid		//查看当前Node.Js的进程编号
process.kill('编号')	//结束指定编号的进程

buffer对象

缓存:是内存中的一块区域,是临时存储数据

Buffer.alloc(5,'abcde')	//从内存中分配空间作为缓存,单位是字节,每个汉字占3个字节,默认存储的是16进制的编码形式
toString()		//将Buffer数据转为字符串

模块

Node.js下,每一个文件就是一个模块

reqyre():是一个函数,用于引用其他模块,得到的暴露的对象

module.exports:默认是一个空对象,当前模块要暴露的对象啊,如果要暴露那些只需要放到该对象即可

//主模块
//引入同一级目录下的08_fun.js模块
//如果成功引入一个模块,得到的是另一个模块暴露的对象
var 对象名称 = require('./08_fun.js')
console.log(对象名.功能模块的名称);
console.log(对象名.功能模块的函数名称());
console.log(对象名.功能模块的函数名称(实参1, 实参2));
console.log(对象名);
//功能模块
//模块作用域
console.log('引入了功能模块');
var 变量名称 = 1;
//每个模块下要暴露的对象,默认是个空对象
//要暴露哪一项只需要放入到暴露对象
function 函数名称() {
	return 2
}

function 函数名称(形参1, 形参2) {
	return 形参1+形参2
}
module.exports = {
	功能模块的名称: 变量名称,
	功能模块的函数名称: 函数名称,
	功能模块的函数名称: 函数名称
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值