01_NodeJs初步了解

1.ES6

 (1)块级作用域

  let a = 1;

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

  大括号之间的语句块就是一个块级作用域,例如:if、else、while、do-while、for... 在块级作用域下,let和const声明的都是局部的,无法被块级作用域以外访问到。

var let const三个区别

var声明的变量存在提升,在同一个作用域下可以重复声明同一个变量

let声明的变量不存在提升,在同一个作用域下不允许重复声明同一个变量,存在块级作用域,即使在全局作用域下let声明的变量也不是全局的

const 声明的时候必须赋值,不允许重新赋值,存在块级作用域,即使在全局作用域下const声明的常量也不是全局的

 练习:计算1~100之间所有整数的和,使用let声明变量

 (2)参数增强

  可以给函数的参数设置默认值

function fn(a,b,c=0){

   //c = c || 0;  //es6之前的默认值设置

}

fn(10000,2000)  //没有出现的实参就会使用默认值

 (3)箭头函数

  ()=>{   }

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

sort( (a,b)=>{

  return a - b;

} )

  如果箭头函数的函数体中只有一行代码并且是return形式,可以简化为

   sort( (a,b)=>a-b );

  练习:使用函数表达式创建函数,将之前的匿名函数使用箭头函数代替,计算任意3个数字的平均值并返回结果。

 (4)模板字符串

  解决了字符串的拼接问题

   ` 模板字符串 ${JS表达式} `

  练习:声明变量保存一条员工的数据,格式为对象,包含的属性有编号,姓名,性别(1/0),工资;最后打印出以下格式

    编号:x

    姓名:xx 

    性别:男/女

    工资:xxxx.00 元

 

 

1.Node.js概述

 Node.js是运行在服务器端的JS解释器,基于谷歌的V8引擎。

 (1)对比JS

  JS运行在客户端浏览器,存在多种JS解释器,存在代码兼容性问题;Node.js只有V8引擎一种解释器,不存在代码兼容性问题

  JS和Node.js都有共同的ES(内置)对象和自定义对象,不同的宿主对象

  JS用于开发浏览器端的交互效果,Node.js用于服务器端开发,例如数据库的访问,其它服务器的调用....

 (2)网址

  www.nodejs.org   官网

  www.nodejs.cn   中文镜像

 (3)使用Node.js

  脚本模式

    node   拖拽脚本文件     回车

  交互模式

    node  回车  进入交互模式

    两次ctrl+c  或者  ctrl+d

 (4)特点

  Node.js属于单线程运行逻辑,支持数万个并发连接,适合做基于社交网络的大规模WEB应用,不适合做CPU密集型的操作。

2.全局对象

 (1)global

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

  交互模式属于全局作用域,创建的函数和声明的变量是全局的

  每个脚本文件都是在一个作用域下,里边的函数和变量都是局部的,不存在全局污染

  JS下的global叫做window

  练习:编写脚本03_global.js,在脚本文件下声明变量、创建函数,然后通过global检测是否为全局。

  练习:创建04_window.js和04.html,把js嵌入html中,声明变量、创建函数,然后通过window检测是否为全局

 (2)console

  console.log(1)  //日志

  console.info(2)  //消息

  console.warn(3)  //警告

  console.error(4)  //错误

  console.time()  开始计时

  console.timeEnd()  结束计时

  开始计时和结束计时的参数要保持一致

  练习:分别查看for、while、do-while三种循环分别循环100000次的耗时。

 (3)process

  进程:计算机让的软件运行都是代表相应的进程

  process.arch   查看当前CPU架构

  process.platform   查看当前的操作系统

  process.version   查看当前Node.js版本

  process.pid   查看当前Node.js进程编号

  process.kill()    结束指定编号的进程

 (4)Buffer

  缓冲器:在内存临时存储数据的区域,常用于保存网络传输时的资源

  let buf = Buffer.alloc(5,'abcde');  //创建Buffer,大小为5个字节

  buf.toString()  //将Buffer数据转为字符串

3.定时器

 一次性定时器

开启

var timer = setTimeout( 回调函数, 间隔时间 )

当间隔时间到了,调用一次回调函数

清除

clearTimeout(timer)

4.模块

 是一个独立的功能体,模块可以被其它的模块引入,也可以引入其它的模块

 require()   用于引入其它的模块

 module.exports   是一个空对象,用于存放导出的内容

 

课后任务

 (1)复习今天内容,整理思维导图

 (2)练习

   创建主模块(main.js)和功能模块(circle.js),在功能模块下导出两个函数,传递参数半径,分别返回周长和面积;在主模块下引入成功后,调用这两个函数

 (3)预习nodejs第2天内容,异步

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值