Web前端105天-day29-Node.js

node.jsday01

目录

前言

一、复习

二、ES6

2.1块级作用域

2.2参数增强

2.3箭头函数

三、Node.js概述

3.1对比JS

3.3运行方式

3.4特点

四、全局对象

4.1global对象

4.2console对象

4.3process对象

4.4Buffer对象

五、模块

总结


前言

node.jsday01学习开始


一、复习

 

二、ES6

  • ECMAScript:是JS的标准规范
  • ES6 / ES2015:是第6版的标准规范
  •  ES6简化了之前的JS功能,同时增加新的功能

2.1块级作用域

  • let声明的变量会进入到一个暂时性的死区,在赋值前不允许访问;let声明的变量不允许重复声明
  • 大括号之间的语句块,就是块级作用域,例如:if、else、for...
  •  let声明的变量和const声明的常量在块级作用域下都是局部的,不允许被外部访问
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>ES6新特性</title>
	</head>
	<body>
		<script>
			// var声明变量特点: 存在变量声明提升,允许重复声明
			//var a
			console.log(a)
			var a = 1
			var a = 2
			console.log(a)
			
			// ES6 新增声明方式
			// b进入了一个暂时性的死区
			// let b
			// console.log(b)
			let b = 3
			// let b = 4
			b = 4
			console.log(b)
			
			// 1.块级作用域
			{
				var n1 = 1  //全局变量
				let n2 = 2  //局部变量
				const n3 = 3  //局部常量
			}

			console.log(n3)
			
			// 练习:计算1~100之间所有整数的和,使用for循环,变量声明是let
			let sum=0
			for(let i=1;i<=100;i++){
				// 求和
				sum+=i
			}
			console.log(sum)

		</script>
	</body>
</html>

2.2参数增强

  • 可以给参数设置默认值
function add(a,b,c=0){
   b = b || 0   ES6之前设置默认值的方式
}
add(5000)
  • 逻辑运算符赋值:选择将其中一个进行赋值
    • 如果执行了第一个表达式,没有执行第二个表达式,就把第一个表达式的值赋过去

    • 如果执行了第一个表达式,又执行了第二个表达式,就把第二个表达式的值赋过去

    • var m1 = 3 || 4   //3

    • var m2 = 3 && 4   //4

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>ES6新特性</title>
	</head>
	<body>
		<script>
			// 2.参数增强
			// 给参数设置默认值
			function add(a,b,c=0){
				// 给参数b设置默认值
				// if(b===undefined) {
				// 	b=0
				// }
				// 短路逻辑
				// 逻辑运算符赋值:选择将其中一个进行赋值
				// 如果执行了第一个表达式,没有执行第二个表达式,就把第一个表达式的值赋给b
				// 如果执行了第一个表达式,又执行了第二个表达式,就把第二个表达式的值赋给b
				b = b||0
				console.log(a+b+c)
			}
			// add(5000,8000,300)
			add(5000,8000)
			add(5000)
			// true &&  执行
			// false &&  不执行
			// false || 执行
			// true  || 不执行	
			var m1 = 3 || 4   //3
			var m2 = 3 && 4   //4
			console.log(m1,m2)

		</script>
	</body>
</html>

2.3箭头函数

  • 简化了匿名函数的写法,不等价于匿名函数
  • ()=>{  }
sort( (a,b)=>{
  return a-b
} )
//如果箭头函数的函数体中只有一行代码,并且是return形式,可以进一步简化
sort( (a,b)=>a-b )
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>ES6新特性</title>
	</head>
	<body>
		<script>			
			// 3.箭头函数 
			// 匿名函数用法
			// var fn=function(){}
			// (function(){    })()
			// sort(function(){})
			// var p={ play: function(){} }
			// btn.onclick = function(){}
			
			var arr = [23,9,78,6,45]
			// arr.sort( function(a,b){
			// 	return a-b
			// } )
			// arr.sort( (a,b)=>{
			// 	return a-b
			// } )
			// 如果箭头函数的函数体中只有一行代码,并且是return形式,可以进一步简化
			arr.sort( (a,b)=>a-b )
			
			console.log(arr)
			// 练习:使用匿名函数创建函数getAvg,传递任意3个数字,返回平均值;箭头函数代替匿名函数
			var getAvg = (a,b,c)=>(a+b+c)/3
			console.log( getAvg(70,80,85) )
		</script>
	</body>
</html>

三、Node.js概述

  • Node.js是JS运行在服务端的一种环境

3.1对比JS

  • JS运行在客户端浏览器,有多种浏览器,存在代码兼容性问题;Node.js只有一种解释器,不存在代码兼容性问题
  • 两者都有共同的自定义对象、内置对象,不同的宿主对象
  • JS用于实现用户交互,Node.js使用服务器端开发,例如:其它服务器的调用,数据库的操作...

 3.2网址

3.3运行方式

  • (1)脚本模式
    •  node   拖拽js文件    回车

  • (2)交互模式
    •  在命令行下输入

    • node  回车   进入交互模式

    • 两次  ctrl+c,或者 一次  ctrl+d--退出

3.4特点

  • 单线程逻辑处理

四、全局对象

4.1global对象

  • 检测一个变量(函数)是否为全局,全局变量或者全局函数会存储global对象下
  • JS下的global对象名称为:window
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>全局对象window</title>
	</head>
	<body>
		<script>
			// 全局作用域
			// 全局变量
			var a = 1
			// 全局函数
			function fn(){
				return 2
			}
			console.log(window.a, window.fn())
		</script>
	</body>
</html>

4.2console对象

  • 提供一组用于控制台输出的API
  • console.log(1)  //打印日志
  • console.info(2)  //打印消息
  • console.warn(3)  //打印警告
  • console.error(4)  //打印错误
  • console.time()   开始计时
  • console.timeEnd()   结束计时
    • 说明 :开始计时和结束计时的参数要保持一致
/* 
console.log(1)  //打印日志
console.info(2)  //打印消息
console.warn(3)  //打印警告
console.error(4)  //打印错误
 */
// 开始计时
console.time('xin')
for(var i=1;i<=100000;i++){
	
}
// 结束计时
console.timeEnd('xin')

console.time('while')
var j=1
while(j<=100000){
	j++
}
console.timeEnd('while')

console.time('do-while')
var k=1
do{
	k++
}while(k<=100000)
console.timeEnd('do-while')

4.3process对象

  • 进程:计算机每一个软件都是一进程,都会有相应的资源占用
  • process对象用来查看当前运行的Node.js进程
  • process.arch   查看当前的CPU架构
  • process.platform   查看当前的操作系统
  • process.pid   查看当前的进程编号
  • process.kill()   结束指定编号的进程

4.4Buffer对象

  • Buffer:缓冲存储区,是内存中的一块区域,用于临时存储数据

 

// 创建Buffer,分配内存空间,单位是字节
var buf = Buffer.alloc(9,'abc新哥')
console.log(buf)
// 转为字符串
console.log( buf.toString() )

五、模块

  • 每个文件就是一个模块,每个模块就是一个独立的功能
  • module--当前的模块对象
  • module.exports--当前模块暴露的对象,默认是一个空对象,要暴露的内容都是添加到这个空对象下
  • require()--是一个函数,用于引入其它的模块,会得到暴露的对象

// 07_yan.js
console.log('引入了新哥的眼睛')
// 是局部变量,不能被其它模块直接使用
var a=1
// 是局部函数
function fn(){
	return 2
}
// 创建一个函数,传递任意两个数字,返回总和
// 把这个函数暴露出去
function add(n1,n2){
	return n1+n2
}

// 默认每个模块暴露的是一个空对象
// 暴露的对象
// 如果要让外部使用哪一个,就需要把哪一个给暴露出去
module.exports = {
	myA: a,
	myFn: fn,
	add: add
}
// 07_tou.js
// 引入同一级目录下的07_yan.js模块
// ./ 同一级目录下
// 引入模块成功后,得到的是另一个模块暴露的对象
var obj=require('./07_yan.js')
console.log(obj)
console.log(obj.myA, obj.myFn())

// 在主模块下调用暴露函数
console.log( obj.add(3,5) )

总结

node.jsday01学习结束

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值