复习
- 基本使用
- 1 引包
- 2 启动 对于seajs和requirejs 我们最好都用数组的方式(requirejs中写.js有时不好使)
- 3 定义模块
- 4 向外暴露
- 5 引入模块
- 高级配置
- seajs alias 别名 paths 别名目录 base 基本路径
- 路径’abc’ 优先匹配别名和目录名,匹配不上才做base使用
- 以上匹配规则基于不以./ || ../ || C:// 开头才匹配
- 进阶
- index.html:18 Uncaught TypeError: $ is not a function
- source中存在说明引入文件有,但是没有该对象
- 由于jquery并没有做CMD化 需要手动CMD
- seajs 已经停止更新大概三年了,国外的一些第三方包,支持情况较差,对于特殊情况,请google 或者百度
- requirejs 垫 shim
requirejs.config({
//别名:
pahts:{
'jq':'../jquery'//文件名称
},
shim:{//代码AMD化
//垫谁,拿什么值
'jq':{exports:'$'}
}
});
JavaScript是世界上最好的语言?
- JavaScript是目前世界上最好的语言?
- DBA database administrator 后期待遇
- JavaScript 当前是最流行的语言
- 流行: 生态圈活跃
- 更多的企业开发解决方案
- 插件、文章
- 与之配合的工具也会比较多,完善
- 三大框架 angular react vue
客户端JavaScript是怎样的?
- 弱类型 浏览器动态脚本语言
- 弱类型: 没有设置数据类型
- 动态:计算机只认识0101,一边编译一边运行
- 静态:先编译成系统可执行文件,再来运行
- 动态语言就是脚本语言
- JavaScript分为几个部分:
- ECMA 负责语法规范,if else
- DOM 文档对象模型 (定义的是接口) document.getElementById();//浏览器来为我们实现
- BOM 浏览器对象模型 (定义的是接口) //浏览器来实现具体功能,我们来调用
JavaScript的运行环境是什么?
- 浏览器–> js解析引擎
- nodejs –> js解析引擎
浏览器中的JavaScript可以做什么?
- 操作dom 操作元素
- 操作bom 操作浏览器对象 Location
- 发送请求
- 接受响应数据
- 数据持久化 –> localstorage()
浏览器中的JavaScript不可以做什么?
- 不能接收请求
- 不能操作文件 –> 其实js可以操作文件 –> 浏览器不允许,因为不安全
- 不能操作程序
- 不能操作数据库
在开发人员能力相同的情况下变成语言的能力取决于什么?
- 宿主的环境
- 在浏览器中操作浏览器各种功能
- 在服务器操作服务器各种功能
- Chrome浏览器的实现结构
- webkit 布局引擎:html/css 静态文件代码
- javascript 动态效果: V8 引擎
node的实现结构
- javascript 动态效果: V8 引擎
- 对于服务器来讲,并不需要页面的渲染,所以没有了webkit
浏览器中js= ecma + dom + bom
nodejs中的js = ecma
node启程
node简介
- 09年推出了node 瑞恩.达尔
- 移植了V8引擎
什么是node?
- 解决web应用的问题,轻量、高效
- 基于V8 JavaScript runtime –> 服务器 –> 平台:服务器,js解析代码引擎V8
node可以做什么?
- 接收请求
- 操作文件 –> 其实js可以操作文件 –> 浏览器不允许,因为不安全
- 操作程序
- 数据持久化 –> localstorage()
- 不能操作数据库
Node.js 和 PHP 有什么区别?
- 都是后端语言
- php 需要依靠apache/iis/tomcat…
- nodejs本身就是一个服务器 ,直接接收请求并且处理
谁在使用 Node
国外: 推特/Uber/google/linked in/
国内: BAT 天猫: 前后端分离 浏览器发送请求-->中间层用node来做页面的渲染,将具体请求转发 --> java服务器
970亿 成交量
pv:pageview 访问量无法估计
一些创业公司
node应用场景
- 多人的游戏服务器
- 基于浏览器的聊天程序
- 开发单页面程序
基于JSON支持的API
nodejs适合开发 IO密集 (基于网络数据的输入和输出)
- nodejs不适合 CPU密集
如何学习 Node
- 多练习
node.js 安装
- 全体傻瓜式安装,下一步
体验node.js
- node -v 查看node版本信息
- Node 文件名 运行文件
- 第一个node.js程序hello world
- 第一个settimeout打印hello
- 第一个读取文件
- 第一个计数访问的服务器
- 第一个自动关机的案例
面试题:JavaScript如何区分当前运行环境是node还是浏览器
- 没有了DOM和BOM
- 没有了document和location
if(document){
console.log('浏览器环境');
}else{
console.log('node环境');
}
CMD路径
- node quickStart.js 文件存在与当前的目录下,直接Node 文件名
- 非当前目录
- 绝对路径 node C:\Users\tujunxiong\Desktop\node02\code\03_quickStart\quickStart.js
- 根据左边路径直接 给一个路径不全
- WIN + R 输入CMD(非nodejs)
- 推荐 shift + 鼠标右键 –> 选择在此处打开命令行窗口
- ./ 和 ../相对路径 node ./quickStart.js
命令行基本命令
- CD 进入目录 cd..进入上级目录
- DIR 显示当前目录下的文件
- D: 或者C: 切换盘符
- cls 清屏 tab 补全
- 测试IP是否联通 ping 192.168.28.128
- 查看IP信息ipconfig /all 以太网或者无线 里面的IPV4
- 远程连接 mstsc micro soft terminal service client
- 查看服务 services.msc
- 查看注册表 regedit 关于系统的配置,不建议改,(客户机器)
- where 命令名称
- set 查看当前命令行启动时的环境变量,如果这个里面的path有,你启动任何程序都ok
组合键的补充
- WIN + E 我的电脑
- WIN + D 切换显示桌面
- WIN + R 运行
- WIN + L 切换用户
- WIN + tab 切换窗口
- WIN + X 显示管理菜单
- Ctrl + WIN + D 新建一个桌面
- ctrl + WIN + 左右键
环境变量
- 方式1:通过我的电脑-> 属性 –>高级–>环境变量–>系统环境变量–>path变量
- 方式2:在系统变量中创建一个系统变量NODE_PATH 值是:目录路径,在path中加入一个%NODE_PATH%
- 环境变量查找机制是先由当前命令行目录开始查找,然后再查找环境变量中的path变量
REPL(Read-eval-print-loop)环境操作
- 测试代码(一些方法)
Global对象类别及作用域
- 杠杠dirname : 显示当前文件目录的绝对路径,每个文件的值都不一样
- 杠杠filename: 显示当前文件的绝对路径,每个文件的值都不一样
- nodejs模块部分 规范是根据CommonJS 中的Modules规范来的
- 在这个规范中,一个文件就是一个模块
- CMD可能就来自于Modules1.1 的参考 seajs中模块部分和nodejs中模块部分非常相似
区分全局和伪全局对象
- process.nextTick(function(){//1 优先级 idea 空闲观察者 底层用的是数组
- setTimeout(function(){//2 timer观察者
- setImmediate(function(){//3 check观察者 底层用的是链表
- 在程序的运行中,有的对象不论在哪个模块都是一个值,而有的对象会根据模块的不同,有不同值
- 伪全局对象 杠杠filename 杠杠dirname require、module、exports
- 真全局对象 global process console Buffer
- 全局对象就是我们任何时候可以直接拿来用的对象
模块作用域
- 在模块中声明的变量都是模块作用域
- 模块间的对象需要共享可以通过global.属性来挂载
- 模块间需要导出对象,通过module.exports
- 定义模块相比seajs 没有了define(….)
- 导出对象一样、引入对象一样
nodejs中的3M安装法
- NVM node版本管理工具 ,下载并且安装Node 切换版本
- 既要按新版本开发,又要做老版本的维护
- window支持,不是太好
- NPM 下载第三方资源包(既有前端包,也有后端包)
- NRM 切换NPM镜像源(配置私有的镜像源)
nvm基本操作
- 安装 nvm-setup.exe
- mac系统可以直接安装 nvm
- nvm version 查看版本
- nvm install [系统位数]
- nvm uninstall [系统位数]
- 查看当前可用版本列表 nvm list(ls) 注意:给*代表当前正在使用
- 使用指定版本 nvm use 版本号
NODE绿色安装版
- 下载历史版本 other downloads –》Previous Releases
- 直接下载指定版本的msi文件
- 安装该文件 –> 安装第二个版本的时候,会出现nodejs已经被安装,需要删除,退出
- 将原来安装好的文件夹,改名
- 安装新的版本
重点掌握
- JavaScript 在node中和浏览器中的区别的理解?
- nodejs是什么?
- 环境变量配置的两种方式?
- 必须掌握第二种
- where 命令名
- set 显示环境变量
- 绿色版的使用
- nvm命令:install uninstall list[ls] use 版本号
- 全局对象中 杠杠dirname,杠杠filename
- 对象的导出: 一对一暴露 module.expots, 一对多 global.属性名共享数据