一、复习
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