开发实战教程完整版课件全套ppt教学教程-最全电子讲义(最新).pptx

上传人:知****量 文档编号:75983645 上传时间:2023-03-06 格式:PPTX 页数:609 大小:6.88MB
返回 下载 相关 举报
开发实战教程完整版课件全套ppt教学教程-最全电子讲义(最新).pptx_第1页
第1页 / 共609页
开发实战教程完整版课件全套ppt教学教程-最全电子讲义(最新).pptx_第2页
第2页 / 共609页
点击查看更多>>
资源描述

《开发实战教程完整版课件全套ppt教学教程-最全电子讲义(最新).pptx》由会员分享,可在线阅读,更多相关《开发实战教程完整版课件全套ppt教学教程-最全电子讲义(最新).pptx(609页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第1章 Node.js入门000011110111010101110100101110000111010010111111010000111101001010100111010010101010101001010100101010101001000000011001010010111001110Node.js开发实战教程新一代信息技术“十三五”系列 规划教材Contents内容导航1.2 部署 Node.js 开发环境1.1 Node.js 简介1.3 开始开发 Node.js 应用程序u 什么是 Node.jsu Node.js 的特点u Node.js 的应用场合第1章Node.js 入门

2、 3 Node.js简介(1)了解什么是Node.js;(2)熟悉Node.js的特点和应用场合。【学习目标】00Section Node.js简称Node,是一个可以使JavaScript运行在服务器端的开发平台。JavaScript本是一种Web前端语言,Node.js让JavaScript成为服务器端脚本语言。Node.js选择JavaScript作为实现语言的原因:JavaScript满足CommonJS标准,符合事件驱动,用户较多且门槛较低;Chrome的V8引擎具有出色的性能。Node.js将V8引擎封装起来,作为服务器运行平台,以执行JavasScript编写的后端脚本程序。【什

3、么是Node.js】01Section第1章Node.js 入门 4 Node.js简介 【什么是Node.js】Node.js与Java运行时环境对比01SectionNode.js运行时环境包含执行JavaScript程序 所 需 的 一 切 条 件。该 引 擎 会 将JavaScript代码转换为更快的机器码。Node.js进一步提升JavaScript的能力,使JavaScript可以访问文件、读取数据库、访问进程,从而胜任后端任务。使用Node.js 的最大优点是开发人员可以在客户端和服务器端编写JavaScript,打通了前后端。Node.js发 展 迅 速,目 前 已 成 为Ja

4、vaScript服务器端运行平台的事实标准。第1章Node.js 入门 5 Node.js简介 【什么是Node.js】01SectionNode.js是跨平台的,能运行在Windows、macOS和Linux平台上。Node.js除了自己的标准类库之外,还可使用大量的第三方模块系统来实现代码的分享和重用。与其他后端脚本语言不同的是,Node.js内置了处理网络请求和响应的函数库,也就是自备了HTTP服务器,所以不需要额外部署HTTP服务器。Node.js与PHP对HTTP请求的处理第1章Node.js 入门 6 Node.js简介 【Node.js的特点】02Section非阻塞I/O又称异

5、步式I/O,是Node.js的重要特点。阻塞I/O是指线程在执行过程中遇到I/O操作时,操作系统会撤销该线程的CPU控制权,使其暂停执行,处于等待状态,同时将资源转让给其他线程。非阻塞I/O是指当线程遇到I/O操作时,不会以阻塞方式等待I/O操作完成或数据返回,而只是将I/O请求转发给操作系统,继续执行下一条指令。非阻塞I/ONode.js的非阻塞I/O第1章Node.js 入门 7 Node.js简介 【Node.js的特点】02Section非阻塞I/O是一种异步方式的I/O,与事件驱动密不可分。事件驱动以事件为中心,Node.js将每一个任务都当成事件来处理。Node.js在执行过程中会

6、维护一个事件队列,需执行的每个任务都会加入事件队列并提供一个包含处理结果的回调函数。在事件驱动模型中,会生成一个事件循环线程来监听事件,不断地检查是否有未处理的事件。Node.js的异步机制是基于事件的,所有磁盘I/O、网络通信、数据库查询事件都以非阻塞的方式请求,返回的结果由事件循环线程来处理。事件驱动Node.js事件循环机制第1章Node.js 入门 8 Node.js简介Node.js的应用程序是单进程、单线程的,但是通过事件和回调支持并发,性能变得非常高。在阻塞模式下,一个线程只能处理一项任务,要想提高吞吐量必须使用多线程。在非阻塞模式下,线程不会被I/O操作阻塞,该线程所使用的CP

7、U核心利用率永远是100%,I/O操作以事件的方式通知操作系统。Node.js在主线程中维护一个事件队列,当接收到请求后,就将该请求作为一个事件放入该队列中,然后继续接收其他请求。Node.js内部通过线程池来完成非阻塞I/O操作,Node.js的单线程是指对JavaScript层面的任务处理是单线程的,而Node.js本身是一个多线程平台。【Node.js的特点】02SectionNode.js采用非阻塞I/O与事件驱动相结合的编程模式,与传统同步I/O线性编程思维有很大的不同,Node.js程序的控制很大程度要依靠事件和回调函数,这不符合开发人员的常规线性思路,需要将一个完整的逻辑拆分为若

8、干单元(事件),从而增加了开发和调试的难度。单线程第1章Node.js 入门 9 Node.js简介REST API:REST API是一种前后端分离的应用程序架构。单页Web应用:加载单个HTML页面,并在用户与应用程序交互时动态更新该页面的Web应用程序。统一Web应用的UI层:Node.js是面向服务的架构,其能够更好地实现前后端的依赖分离,可以将所有的关键业务逻辑都封装成REST API,UI层只需要考虑如何用这些API构建具体的应用。准实时系统:如聊天系统、微博系统、博客系统的准实时社交系统,特点是轻量级、高流量,没有复杂的计算逻辑。游戏服务器:程序员不必使用C语言就能开发游戏的服务

9、器程序。微服务架构:Node.js也可用于实现基于微服务架构的应用。【Node.js的应用场合】03Section适合用Node.js的场合第1章Node.js 入门 10 Node.js简介 【Node.js的应用场合】03Section不适合用Node.js的场合数据加密和解密。数据压缩和解压。模板渲染。存在的问题解决方案CPU密集型任务偏向于CPU计算操作,需要Node.js直接处理,在事件队列中,如果前面的CPU计算任务没有完成,那么后面的任务就会被阻塞,出现响应慢的情况,使得后续I/O操作无法发起将大型运算任务分解为多个小任务,适时释放CPU计算空间资源,以免阻塞I/O调用的发起单线

10、程无法利用多核CPU。多CPU或多核CPU的服务器当Node.js被CPU密集型任务占用,导致其他任务被阻塞时,其他CPU核心处于闲置状态,从而造成资源浪费;Node.js程序一旦在某个环节崩溃,整个系统都会崩溃,这会影响其可靠性(1)部署Nginx反向代理和负载均衡,开启多个进程,绑定多个端口(2)使用cluster模块构建应用集群,启动多个Node.js实例,开启多个进程以监听同一个端口弥补Node.js不足的解决方案Contents内容导航1.3 开始开发Node.js应用程序1.2 部署Node.js开发环境1.1 Node.js 简介u 在 Windows 系统上安装 Node.js

11、u 在 Linux 系统上安装 Node.jsu 管理 Node.js 版本u 交互式运行环境REPLu 安装开发工具 Visual Studio Code第1章Node.js 入门 12 部署Node.js开发环境(1)掌握在Windows和Linux平台上安装Node.js的方法;(2)安装开发工具Visual Studio Code,熟悉其基本用法。【学习目标】自定义安装00Section 【在Windows系统上安装Node.js】01Section两种文件格式的安装包Windows安装包(.msi)Windows二进制文件(.exe)安装包检查Node.js版本 node-versi

12、on第1章Node.js 入门 13 部署Node.js开发环境 源代码 二进制发行版 软件源安装 n模块 nvmLinux操作系统上安装Node.js的方式 【在Linux系统上安装Node.js】02Section第1章Node.js 入门 14 部署Node.js开发环境使用二进制发行版安装Node.js 【在Linux系统上安装Node.js】02Section从Node.js官网下载二进制发行版的安装包Linux Binaries(x64)。根据官网说明执行安装步骤。(1)创建Node.js安装目录,这里准备安装到/usr/local/lib/nodejs目录下。sudo mkdir

13、-p/usr/local/lib/nodejs(2)将下载的二进制发行版安装包解压到该目录。sudo tar-xJvf node-v10.16.0-linux-x64.tar.xz-C/usr/local/lib/nodejs(3)编辑环境变量配置文件/.profile,将以下内容添加到该文件末尾并保存该文件。VERSION=v10.16.0DISTRO=linux-x64export PATH=/usr/local/lib/nodejs/node-v10.16.0-linux-x64/bin:$PATH第1章Node.js 入门 15 部署Node.js开发环境使用二进制发行版安装Node.

14、js 【在Linux系统上安装Node.js】02Section(4)运行该配置文件,以使新的环境变量配置生效。zxphost-test$./.profile(5)测试Node.js安装是否成功。先查看node版本:zxphost-test$node-vv10.16.0再查看npm的版本:zxphost-test$npm-v6.9.0(6)要使其他用户也能运行和使用Node.js,需要创建以下软链接:sudo ln-s/usr/local/lib/nodejs/node-v10.16.0-linux-x64/bin/node/usr/bin/nodesudo ln-s/usr/local/li

15、b/nodejs/node-v10.16.0-linux-x64/bin/npm/usr/bin/npmsudo ln-s/usr/local/lib/nodejs/node-v10.16.0-linux-x64/bin/npx/usr/bin/npx第1章Node.js 入门 16 部署Node.js开发环境zxphost-b:$sudo apt-get install nodejszxphost-b:$sudo apt install nodejs:i386zxphost-b:$node-vv8.10.0zxphost-b:$sudo apt install npmzxphost-b:$n

16、pm-v3.5.2软件源安装Node.js 【在Linux系统上安装Node.js】02Section第1章Node.js 入门 17 部署Node.js开发环境(1)需要升级将npm升级为目前最新版本:sudo npm install npmlatest-g(2)以全局方式(使用选项-g)安装n模块:zxphost-b:$sudo npm install-g nn模块常用命令 n:不带任何选项或参数会列出已安装的所有Node.js版本。n latest:安装最新的Node.js版本。n stable:安装最新的Node.js稳定版本。n lts:安装最新的长期支持的Node.js版本。n r

17、m 版本号:删除指定的Node.js版本。n-h:给出帮助信息。使用n模块升级和管理Node.js版本 【在Linux系统上安装Node.js】02Section第1章Node.js 入门 18 部署Node.js开发环境nvm是专门的Node版本管理器。nvm在Windows平台上的名称为nvm-windows。以在CentOS 7系统上安装和使用nvm为例讲解。(1)通过Git克隆方式进行安装nvm。(2)安装完毕后需要设置环境变量。export NVM_DIR=$HOME/.nvm -s$NVM_DIR/nvm.sh&.$NVM_DIR/nvm.sh示例nvm current#显示当前正

18、在使用的版本nvm ls#列出已在本机安装的版本,同时也会显示当前使用的版本nvm install 8.0.0#安装指定版本的Node nvm uninstall 8.0.0#卸载指定版本的Nodenvm use 8.0#指定当前要使用的Node版本(切换版本)nvm run 6.10.3 app.js#使用指定Node版本(6.10.3)运行指定程序(app.js)nvm alias default 8.1.0#设置默认的Node版本 【管理Node.js版本】03Section第1章Node.js 入门 19 部署Node.js开发环境功能JavaScript脚本的简单调试主要执行的操作读

19、取用户输入,解析输入的JavaScript数据结构并将其存储在内存中。执行输入的数据结构,打印(输出)结果。循环操作以上步骤直到用户按下两次+组合键。进入命令行界面,执行node命令即可启动Node终端,出现“”提示符表示进入REPL命令行交互界面。【交互式运行环境REPL】04Section第1章Node.js 入门 20 部署Node.js开发环境Visual Studio Code用于集中进行编码、运行和调试。以在Windows 7 64位系统上安装Visual Studio Code为例。从微软官网上下载Visual Studio Code 64位Windows版本的安装包进行安装。【

20、安装开发工具Visual Studio Code】05SectionContents内容导航1.3 开始开发Node.js应用程序1.1 Node.js 简介u 构建第一个 Node.js应用程序u 运行 Node.js 程序u 调试 Node.js 程序1.2 部署Node.js开发环境第1章Node.js 入门 22 开始开发Node.js应用程序(1)熟悉开发工具Visual Studio Code的基本使用;(2)掌握Node.js应用程序的编写、运行和调试的基本方法。【学习目标】00Section第1章Node.js 入门 23 开始开发Node.js应用程序/导入http模块con

21、st http=require(http);const httpServer=http.createServer(function(req,res)/设置响应头信息 res.writeHead(200,Content-Type:text/plain);/发送响应数据 Hello World!res.end(Hello World!n););httpServer.listen(8080,function()/向终端输出如下信息 console.log(服务器正在8080端口上监听!););编写程序 【实战演练构建第一个Node.js应用程序】01Section第1章Node.js 入门 24 开

22、始开发Node.js应用程序在终端窗口中运行程序进行测试测试程序 【实战演练构建第一个Node.js应用程序】01Section第1章Node.js 入门 25 开始开发Node.js应用程序通过浏览器访问Web应用程序进行测试测试程序02Section 【实战演练构建第一个Node.js应用程序】第1章Node.js 入门 26 开始开发Node.js应用程序程序结构分析01Section部分源代码说明1const http=require(http);导入模块。导入Node.js自带的http模块,并将实例 化 的 HTTP组 件 赋 值 给 变 量 http。模 块 是Node.js程序

23、组织可重用代码的方式,可使用require()方法来载入模块2const httpServer=http.createServer(function(req,res)res.writeHead(200,Content-Type:text/plain);res.end(Hello World!n););创 建 HTTP服 务 器。调 用 http模 块 提 供 的 http.createServer()方法创建服务器,使用一个回调函数作为参数,该回调函数又接受两个参数,分别是代表客户端的请求对象和向客户端发送的响应对象,所有请求和响应都由此回调函数处理3httpServer.listen(808

24、0,function()console.log(服务器正在8080端口上监听!););启 动 HTTP服 务 器,并 设 置 监 听 器 的 端 口 号。http.createServer()方法返回一个HTTP服务器对象,它使用listen()方法启动HTTP服务器以监听连接、指定端口号。该方法包含一个回调函数参数,用于设置启动HTTP服务器之后的操作 【实战演练构建第一个Node.js应用程序】第1章Node.js 入门 27 开始开发Node.js应用程序node命令语法 node Sections -e script|script.js|-arguments运行当前目录下的index.

25、js脚本文件,可以使用点号代替:node.按下+组合键终止正在运行的Node.js程序。选项-e(-eval)表示直接执行某语句:node-e console.log(Hello World!);使用node命令运行Node.js程序 【运行Node.js程序】02Section scripts:start:node demo.js,test:node test.js 使用npm命令运行Node.js程序第1章Node.js 入门 28 开始开发Node.js应用程序安装该模块 npm i nodemon-g监控并运行Node.js程序 nodemon 文件路径使用nodemon监视文件改动并

26、自动重启Node.js程序 【运行Node.js程序】02Section新开一个终端窗口,在其中执行node命令以非调试方式启动当前的Node.js脚本文件在Visual Studio Code中运行Node.js程序第1章Node.js 入门 29 开始开发Node.js应用程序使用console.log()方法检查变量或字符串的值,记录脚本调用的函数,或记录来自第三方服务的响应。使用console.warn()或console.error()方法记录警告或错误信息。使用日志工具进行调试 【调试Node.js程序】03SectionNode.js内置一个进程外的调试实用程序,可通过V8检查器

27、和内置调试客户端访问。执行node命令时加上inspect参数,指定要调试的脚本的路径。Node.js调试脚本示例global.x=5;setTimeout()=/此处用到的回调函数的形式是箭头函数,()=相当于function()debugger;console.log(world);,1000);console.log(hello);使用Node.js内置调试器第1章Node.js 入门 30 开始开发Node.js应用程序 调试步骤(1)设置调试配置文件。关键是设置program属性,使其指向要运行的脚本文件。(2)设置断点。(3)根据需要设置监视器。(4)启动该脚本的调试。在Visua

28、l Studio Code中调试Node.js程序 【调试Node.js程序】03SectionNode.js脚本的调试第1章Node.js 入门 31 开始开发Node.js应用程序调试器3种单步执行方式Step Into(键):单步执行,遇到子函数就进入该函数并且继续单步执行。Step Out(+组合键):当单步执行到子函数内时,使用它执行完子函数余下部分,并返回上一层函数。Step Over(键):在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完毕并返回下一条语句。03Section单步执行 【调试Node.js程序】在Visual Studio Cod

29、e中调试Node.js程序Summary本章小结 本章的内容主要是Node.js的基础知识和基本操作技能,涵盖了Node.js的简介、Node.js开发环境搭建与调试。读者应重点了解Node.js的非阻塞I/O、事件驱动和单线程的特点,知道Node.js适合哪些应用场合。Thank you第2章 Node.js编程基础000011110111010101110100101110000111010010111111010000111101001010100111010010101010101001010100101010101001000000011001010010111001110Node.

30、js开发实战教程新一代信息技术“十三五”系列 规划教材Contents内容导航2.2 Node.js回调函数2.1 JavaScript基本语法2.3 Node.js事件机制u JavaScript版本与JavaScript运行环境u JavaScript语句与注释u 变量、数据类型、流程控制、函数、类u JavaScript编程规范2.4 Node.js全局对象2.5 Node.js的定时器2.6 Buffer数据类型2.7 Node.js的流2.8 实战演练提供图片浏览服务JavaScript基本语法(1)了解JavaScript的基本语法;(2)能读懂JavaScript代码。【学习目标

31、】ECMA组织制定了JavaScript语言的标准ECMAScript(简称ES)。大多数场合使用JavaScript名称,可将JavaScript看作是ES标准的实现语言。主要版本:2009年ES5;2015年ES6(ES2015);ES7(ES2016)、ES8(ES2017)、ES9(ES2018)和ES10(ES2019)。ES6是目前的主流版本,Node.js自6.0版本开始全面支持ES6。Node.js自7.6版本开始就默认支持async/await异步编程。【JavaScript版本】00Section01SectionJavaScript基本语法Node.js REPL交互式运

32、行环境浏览器控制台 【JavaScript运行环境】02SectionJavaScript基本语法 JavaScript每条语句都以分号“;”结束。一行代码可包含多条语句。一行语句太长,则可以使用续行符“”进行换行。【JavaScript语句与注释】03Section语句 语句块是一组语句的集合,作为一个整体使用大括号“”封装。语句块可以嵌套,形成层级结构。语句块 行注释/我是单独一行注释alert(Hello World);/我是句尾的行注释注释 块注释/*我要开始注释啦我要结束注释啦*/JavaScript基本语法 JavaScript的变量可以是任意数据类型。变量名可以是大小写英文字母、

33、数字、符号“$”或“_”的任意组合,但不能以数字开头。【变量】04Section变量的命名 弱类型的编程语言,所有数据类型都可以用var关键字声明。在定义变量时无须指定变量类型。var hello;/声明一个名为hello的变量,此时该变量的值为undefined,表示未定义 使用等号对变量进行赋值,可以将任意数据类型赋值给变量。hello=我是个字符串;/此时变量的值为“我是个字符串”可以在声明变量的同时对变量进行赋值。可以反复赋值同一个变量。变量的声明与赋值JavaScript基本语法 变量可以在声明之前使用,值为undefined。console.log(temp);/返回undefin

34、ed var temp=你好;ES6用let关键字改变这种行为,变量一定要在声明之后使用。【变量】04Section变量提升 用来计数的循环变量使用var关键字声明后会泄露为全局变量。var temp=Hello!;for(var i=0;i temp.length;i+)console.log(tempi);console.log(i);/返回数字6 改用let关键字来声明循环变量避免变量泄露。变量泄露JavaScript基本语法 ES5中只有全局作用域(顶层作用域)和函数作用域。var temp=你好!;/全局作用域function testScope()var temp=早上好!;/函数

35、作用域 console.log(temp);testScope();/返回函数作用域中的“早上好”!console.log(temp);/返回全局变量的“你好”!【变量】04Section全局作用域和函数作用域JavaScript基本语法 ES5中只有全局作用域(顶层作用域)和函数作用域。var temp=你好!;/全局作用域function testScope()var temp=早上好!;/函数作用域 console.log(temp);testScope();/返回函数作用域中的“早上好”!console.log(temp);/返回全局变量的“你好”!【变量】04Section全局作用域

36、和函数作用域JavaScript基本语法 ES6引入块级作用域,使用let关键字声明的变量只能在当前块级作用域中使用。function testBlockScope()let name=小明;if(true)let name=小红;console.log(name);/返回“小红”console.log(name);/返回“小明”【变量】04Section块级作用域与let关键字 ES6引入const关键字声明只读的常量。const PI=3.1415;使用const关键字声明只读常量JavaScript基本语法 不区分整数和浮点数,统一用数值表示。十六进制数使用0 x作为前缀。二进制和八进制

37、数值分别使用前缀0b(或0B)和0o(或0O)。无法计算结果时就可用NaN表示;Infinity表示无限大。【数据类型】05Section数值(Number)字符串是用单引号“”或双引号“”括起来的任意文本。ES6提供模板字符串,可使用反引号包括整个模板字符串,使用$将变量括起来。var msg=服务器侦听监听地址和端口:$srvip:$port,请注意!;模板字符串中也可以不嵌入任何变量,通常用于按实际格式输出(如换行)。字符串(String)JavaScript基本语法 布尔值只有true、false两种,经常用于条件判断中。在比较是否相等时,建议使用=而不要使用=。【数据类型】05Sec

38、tion布尔值(Boolean)null表示一个空值,即什么也没有。undefined表示“未定义”,仅用于判断函数参数是否正常传递。null和undefined JavaScript的数组可以包括任意数据类型。数组用表示,元素之间用逗号分隔。数组的元素可以通过索引来访问,注意索引的起始值为0。数组(Array)JavaScript基本语法 对象是一组由键值对组成的无序集合,用表示,键值对之间用逗号分隔。var myObj=isobj:true,num:1,2,3,desp:对象好像可以无所不包;键均为字符串类型,而值可以是任意数据类型。获取一个对象的属性可用“对象名.属性(键)名”的方式。E

39、S6允许将表达式作为对象的属性名,即把表达式放在方括号内。let numproperty=num;var myObj=numproperty:1,2,3,des+cription:我是个对象;【数据类型】05Section对象(Object)JavaScript基本语法 ES6引入数据类型Symbol,用于表示独一无二的值,其值通过Symbol()函数自动生成。Symbol值用于对象的属性名,可以有3种表示方法。let welcome=Symbol();/自动产生一个值/第1种表示方法let myObj=;myObjwelcome=欢迎光临;/第2种表示方法let myObj=welcome:

40、欢迎光临;/第3种表示方法let myObj=;Object.defineProperty(myObj,welcome,value:欢迎光临);【数据类型】05Section符号(Symbol)JavaScript基本语法 ES6引入Map数据结构,与对象类似,但各种类型的数据(甚至对象)都可以作为键。Map本身是一个构造函数,用于生成Map数据结构。const myMap=new Map();可以使用Map结构的set方法添加成员const myObj=welcome:欢迎光临;myMap.set(myObj,我是一个对象);使用Map结构的get方法读取键(成员)myMap.get(myO

41、bj);/结果为我是一个对象 Map结构的实例支持遍历方法。keys():返回键名的遍历器。values():返回键值的遍历器。entries():返回键值对的遍历器。forEach():使用回调函数遍历每个成员。【数据类型】05Section映射(Map)JavaScript基本语法 集合是无重复的、无序的数据结构,类似于数组,即没有重复的值。集合是一个构造函数,用于生成Set数据结构。const mySet=new Set();可以通过add()方法向Set结构加入成员。Set()函数可将Iterable类型的数据结构(数组、集合或映射)作为参数,用于初始化集合。const mySet=n

42、ew Set(1,2,3,4,4);/会自动过滤掉其中一个数字4Set结构中的元素可以看作是键,与Map结构不同的是,它只有键名没有键值。Set结构使用与Map结构相同的4种遍历方法来遍历成员。【数据类型】05Section集合(Set)遍历数组可以采用下标循环,而遍历映射和集合就无法使用下标。为了统一集合类型,ES6引入了新的Iterable类型,数组、映射和集合都属于Iterable类型。这种类型的集合可以通过新的for.of循环来遍历。更好的遍历方式是使用Iterable类型内置的forEach方法。JavaScript基本语法 if().else .if().else if().els

43、e .switch.case switch(变量)case 值1:代码1;break;case 值2:代码2;break;default:如果以上条件都不满足,则执行该代码;【流程控制】06Section分支结构JavaScript基本语法 for for.in for(var key in obj)console.log(key);while do.While break continue 【流程控制】06Section循环结构循环结构中的条件需使用括号括起。JavaScript基本语法 声明函数需要使用function关键字。function sumAge(x,y)return x+y;E

44、S6直接支持默认参数 sumAge(x=19,y=20)在ES5中设置默认参数需要采用变通的方法function sumAge(x,y)x=arguments0=undefined?21:arguments0;/设置参数x的默认值为21 y=arguments1=undefined?20:arguments1;/设置参数y的默认值为20 return x+y;【JavaScript的函数】07Section函数声明JavaScript基本语法声明函数之后使用“函数名(参数)”的形式,按顺序传入参数进行调用。sumAge(22,20);/两人加起来42岁 【JavaScript的函数】07Sec

45、tion函数调用arguments对象JavaScript的函数默认带有arguments对象,利用该对象可以获得调用者传入的所有参数。function sumAge()var sum=0;var numcount=arguments.length for(var i=0;i)定义函数。【JavaScript的函数】07Section箭头函数示例箭头函数普通函数一个参数var f=x=x;var f=function(x)return x;多个参数var sumAge=(x,y)=x+y;var sumAge=function(x,y)return x+y;无参数var f=()=20;var

46、 f=function()return 20;代码块包含多条语句var diffAge=(x,y)=var diff=x y;return Math.abs(diff);var diffAge=function(x,y)var diff=x y;return Math.abs(diff);JavaScript基本语法 以一个或多个函数作为参数的函数。function diffAge(m,n,abs)return abs(m-n);diffAge(19,22,Math.abs);【JavaScript的函数】07Section高阶函数JavaScript基本语法当函数作为返回值,或者作为参数传递

47、时,该函数就被称为闭包。闭包是能够读取其他函数内部变量的函数,可以使用函数之外定义的变量。var basePrice=10.00;/起步价var baseMiles=3.00;/起步里程function taxiPrice(unitPrice,Mileage)function totalPrice()/计算总费用;这是定义在一个函数内部的函数 if(Mileage baseMiles)/超过起步里程 return unitPrice*Mileage;/单价与里程相乘 else /在起步里程内 return basePrice;return totalPrice();taxiPrice(2.00

48、,6.00);/打车费用12.00 【JavaScript的函数】07Section闭包JavaScript基本语法 【JavaScript的类】08SectionES5通过构造函数生成实例对象ES6引入类作为对象的模板,通过class关键字定义类function Visitor(name,sex)/来宾信息 this.name=name;this.sex=sex;VisitorPoint.prototype.getInfo=function()return this.name+,+this.sex;var visitor=new Visitor(张勇,先生);class Visitor co

49、nstructor(name,sex)this.name=name;this.sex=sex;getInfo()return this.name+,+this.sex;var visitor=new Visitor(张勇,先生);JavaScript基本语法 变量必须声明后使用。不能出现两个命名参数同名的情况,否则报错。不能使用with语句。不能对只读属性赋值,否则报错。不能使用前缀0表示八进制数,否则报错。不能删除不可删除的属性,否则报错。不能删除变量,只能删除属性。eval关键字不会在它的外层作用域引入变量。eval和arguments不能被重新赋值。不能使用arguments.calle

50、e和arguments.caller属性。禁止this关键字指向全局对象。不能使用fn.caller和fn.arguments属性获取函数调用的堆栈。增加了保留字(如protected、static和interface)。【严格模式】09SectionJavaScript基本语法 每条JavaScript语句应该以分号结束。缩进使用2个半角空格或4个半角空格,而不使用Tab键。每行仅声明一个变量,而不要声明多个变量。字符串尽量使用单引号。符号“”应在行末,表示代码块的开始,符号“”应在行首,表示代码块的结束。【JavaScript编程规范】10Section代码格式 变量推荐使用小驼峰命名法。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁