-【 浏览器 】的JavaScript是怎样的
什么是JavaScript ?
- 一个脚本语言
- 运行在浏览器 (浏览器的js解析内核 V8)
- 实现用户的交互 (interactive)
变量 赋值 循环 逻辑 判断 分支 对象 函数 …
dom操作 bom操作 ajax
JavaScript 的运行环境 ?
浏览器内核解析内核 es6
- es6 [ EcmaScript 2016 ]
- const let
- 箭头函数
- this
- es6 解构赋值
- class
- 模块化
浏览器中的JavaScript 可以做什么 ?
- 用户交互
- pc端的网站动态效果:轮播、楼梯效果
- 事件绑定
浏览器中的JavaScript 不可以做什么 ?(不安全)
- 访问数据库
- 文件进行操作
- os x 系统进行操作
- 不安全 浏览器运行的机制有关
在开发人员能力相同的情况下编程语言的能力取决于什么 ?
语言 | 运行环境 | 运行平台 |
---|---|---|
cordova | hbuilder | platform(运行平台) |
java | java虚拟机 | |
php | php虚拟机 | |
c# | .net | framework |
js | 解析内核 | Chrome v8 |
node ?
- node js 不是因为js产生的
- node 选择了 js
- 创始人Ryan dahl
- 2009.2 有想法 2019.5 githup 开源 2019.11 jsconf 讲解推广node 2010年底被收购 2018年 发现bug (node工作社区回收)
- npm 是node.js 的包管理器
- npm帮助node安装插件
- github 世界上最大的代码托管网站
- 国内的一个代码托管平台: 码云
什么是node ?
- Node.js 是一个基于Chrome V8 引擎的JavaScript运行环境
- Node.js 使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效
- 事件驱动
- 事件执行
- 任务执行
- 事件执行
- 非阻塞式 I/O模型
- 非阻塞
- 异步
- I/O模型
-Input/Output 输入输出
- 数据库操作
- 非阻塞
- Node.js 的包管理工具npm,是全球最大的开源库生态系统
- 官网 http://nodejs.cn/
- npm 插件官网:https://www.npmjs.com/
-插件文档阅读
环境配置
Node 的安装
- Node version Manager (Node版本管理工具),简称nvm
- 会在多个Node版本中测试,Node的版本比较多,需要nvm来管理
相关版本
- node 版本常识
- 偶数版本为稳定版
- 奇数版本为非稳定版
- LTS (Long Term Support)
- [ LTS 和 Current区别](https://blog.csdn.net/u012532033/article/details/73332099)
- LTS 为稳定版
- Current 为测试版
windows和linux下常用的命令行操作
- 切换当前目录(change directory): cd
- 创建目录(make directory): mkdir
- 查看当前目录列表(directory):dir
- linux :ls(list) - 清空当前控制台(终端):cls
- linux :clear - 删除文件 :del
- linux :rm -r f 文件目录 /文件名
Node两种运行形式
-
REPL 终端命令运行
- Node全局对象 :global
- Node 中的javascript它是没有BOM/DOM,ECMAScript有BOM / DOM
- Node增加了一些api ,每个api都有特定的功能- 缺点:
- 代码维护,更新繁琐
- 缺点:
- 运行文件
- 格式:node 文件名称 [ 可以省略后缀 ]
- 实时监听文件的变动 [ 工具 ] / 自动刷新文件
- nodemon [ 推荐 ]
- 安装:
$ cnpm i nodemon -g
- 使用:nodemon 文件名
- 安装:
- supervisor
- 安装:
$ cnpm i supervisor -g
- 使用:supervisor 文件名称
- 安装:
- nodemon [ 推荐 ]
- Node全局对象 :global
常用的Node.js 的api
- querystring
- path
- fs
- http
- url:是Node中负责处理url字符串的
- parse :将url字符串转成url对象
const url = require('url')
const urlStr = 'https://s.taobao.com/search?spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67'
console.log( url.parse( urlStr ) )
Url {
protocol: 'https:',
slashes: true,
auth: null,
host: 's.taobao.com',
port: null,
hostname: 's.taobao.com',
hash: null,
search: '?spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67',
query: 'spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67',
pathname: '/search',
path: '/search?spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67',
href: 'https://s.taobao.com/search?spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67'
}
- format :将url对象转成url字符串
console.log( url.format({
protocol: 'https:',
slashes: true,
auth: null,
host: 's.taobao.com',
port: null,
hostname: 's.taobao.com',
hash: null,
search: '?spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67',
query: 'spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67',
pathname: '/search',
path: '/search?spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67',
href: 'https://s.taobao.com/search?spm=a21bo.2017.201856-fline.3.5af911d9mqRAK8&q=T%E6%81%A4&refpid=420462_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f67'
}))
- resolve :做url替换
const str = 'http://localhost:3000/shop/dist'
console.log(url.resolve(str, 'a'))