Web前端之Node.js(1)——错误处理和nodejs概述

一、复习

1. Math对象

PI/abs()/floor()/ceil()/round()/max()/min()/pow(x,y)/random()

2. Date对象

创建对象

   new Date('2018/12/25 10:20:30')
   new Date(2018,11,25,10,20,30)

计算机元年

3. 获取时间
getFullYear()/Month()/Date()/Hours()/Minutes()/Seconds()
/Milliseconds()/Day()/Time()

4. 设置时间
set…
复制Date对象 new Date(d1)
两个对象相减,相差的毫秒数

5.转本地格式
toLocaleString()/toLocaleDateString()/toLocaleTimeString()

6.Number对象
new Number(‘123’)
toFixed(2)/toString()
Number.MAX_VALUE/MIN_VALUE

7.Boolean对象
new Boolean()

8.ES6
块级作用域 let {}
箭头函数 回调函数一种写法 ()=>{}

二、学习一门编程语言的基本步骤

(1)了解背景知识:历史、现状、特点、应用场景
(2)搭建开发环境:编写hello world
(3)变量和常量
(4)数据类型
(5)运算符
(6)逻辑结构
(7)通用小程序
(8)函数和对象
(9)第三方库、框架
(10)实用的项目

三、nodejs

1.ES6
(1)函数中的参数
ES6允许为形参设置默认值,如果没有传递实参,则自动调用形参的默认值。

  function add (num1, num2=7){   }

(2)模板字符串

反引号 在此之间可以写任意形式代码 ${JS语法} 反引号
俩个反引号中间写字符串。

练习:创建一个员工对象,包含姓名,性别,生日,工资;使用模板字符串打印员工信息
‘姓名:…,性别:…’

var emp={
  ename:'tom',
  sex:1,
  birthday:'1997-9-10',
  salary:8000
};
console.log(`
姓名:${emp.ename}
性别:${emp.sex==1 ? '男' : '女'}
生日:${emp.birthday}
工资:${emp.salary}
`);
console.log(`姓名:${emp.name},性别: ${emp.sex}`);

2.错误处理
(1)常见的错误
SyntaxError 语法错误,错误的使用了中文符号,缺少括号…程序不会执行
ReferenceError 应用错误,使用了未声明的变量,会影响后续代码的执行
TypeError 类型错误,错误的使用了数据的类型。例如把变量当函数使用,把对象当函数使用。会影响后续代码的执行
RangeError 范围错误,参数的使用超出了范围,会影响后续代码的执行 例如:new Array(3.5)

(2)错误处理

 try{
   尝试执行可能出现错误的代码
 }catch(err){
   捕获出现的错误,把错误信息放入到err中
   错误处理的方案
 }

3.NODEJS概述
NODEJS基于谷歌的V8引擎(JS解释器),运行在服务器端的语言,基于JS。
http://nodejs.org 英文官网
http://nodejs.cn 中文

对比JS和NODEJS:
(1)JS运行在浏览器端,存在兼容性的问题;NODEJS运行在服务器端,不存在兼容性问题。
(2)两者都有内置(ES)对象、自定义对象、宿主对象(根据执行环境的不同)。
Js的宿主对象是DOM&BOM对象。NODEJS对象是node.js扩展对象。
(3)JS用于网页中的交互效果,NODEJS用于服务器端操作,例如:创建web服务器、操作数据库、文件的读取…

NODEJS的执行方式
脚本模式 node C:/xampp/…/01.js
交互模式
node 回车 进入交互模式
两次ctrl+c或者输入 .exit 退出交互模式

NODEJS特点及应用
支持数万个并发连接
应用于基础社交网络的大规模web应用

4.全局对象
NODEJS: global
在交互模式下,声明的变量和创建的函数都是全局对象下的,可以使用global来访问,例如 var a=1; global.a
在脚本模式下,文件中声明的变量和创建的函数不是全局对象下的,不能使用global来访问
JS: window
在浏览器下,文件中声明的变量和创建的函数是全局对象下的,可以使用window来访问,例如 var a=1; window.a
(1)console对象
global.console.log() 打印日志
global.console.info() 打印消息
global.console.warn() 打印警告
global.console.error() 打印错误
global.console.time(‘自定义字符串’); 开始计时
global.console.timeEnd(‘自定义字符串’); 结束计时
自定义字符串前后要保持一致
练习:使用计时查看for、while、do-while循环10000次的耗时

global.console.time('for');
for(var i=1;i<=10000;i++){}
global.console.timeEnd('for');
global.console.time('while');
var i=1;
while(i<=10000){i++;}
global.console.timeEnd('while');
global.console.time('do');
var i=1;
do{i++;}while(i<=10000);
global.console.timeEnd('do');

(2)process
当前计算机的进程
process.arch 查看当前CPU的架构 X64
process.platform 查看当前的操作系统 win32
process.env 查看当前的环境变量有哪些
process.version 查看当前nodejs的版本号
process.pid 查看当前的进行编号
process.kill(编号) 杀死某个编号的进程
(3)Buffer
缓冲区:在内存中存储数据的区域,存储网络传输时的资源。
创建buffer

  var buf=Buffer.alloc(5, 'abcde');

将buffer数据转为普通字符串

 buf.toString()

练习:创建两个buffer区域,分别存储两个数字,计算两个数字相加。

var a=Buffer.alloc(2,'13');
var b=Buffer.alloc(1,'2');
console.log(Number(a)+Number(b));

5.模块系统
模块是一个预定义好的功能体,在nodejs下,每一个文件都是一个模块。
在NODEJS下分为自定义模块、核心模块(官方提供)、第三方模块
在NODEJS下,一个文件就是一个模块,文件中的代码默认是被一个构造函数所包含。
以下红色的代码都是nodejs自动为每个文件添加的。

(function(exports,require,module,__filename,__dirname){
  程序编写的代码
})

__filename 当前文件的完整路径和文件名称
__dirname 当前文件的完整路径
require 是一个函数,用于引入模块; require(’./07_2.js’) ;

./就是当前目录下

module 指代当前的模块
module.exports 当前模块导出的对象(公开的内容),可以供其它的模块使用的属性和方法。
exports 等价于module.exports

四、课后任务

(1)复习今天内容,整理思维导图
(2)练习:
创建两个模块 main.js(主模块),circle.js(功能模块);在功能模块中创建两个函数,传递1个参数作为半径,分别获取圆的周长和面积,导出(公开)两个函数;在主模块中引入功能模块,调用两个函数。

 Circle.js
    var PI=3.14;
    var c=function(r){
       return  2*PI*r;
    }
    var s=function(r){
    	return PI*r*r;
    }
    //公开——导出   
    module.exports===exports;
    module.exports.c=c;//公开=前面的可以任意取名
    module.exports.s=s;//=后面的是公开的变量或者方法


Main.js
    //引入当前目录(./)下circle.js
    var obj=require('./circle.js');
    //obj表示引入的模块中公开的内容。
    //console.log(obj);
    //调用公开的内容
    console.log(obj.c(1)+'   '+obj.s(1));

(3)预习模块系统, querystring、url

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值