- 上次课程回顾
HTML/CSS/JS
querySelector、querySelectorAll
createElement、appendChild、removeChild
Atom开发工具
级联菜单作业:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script type="text/javascript"> // 准备数组,来作为省份的初始化数据 var allArea = ["北京","河北","山东"]; var allAreaplus = [["顺义","朝阳","海淀"],["石家庄","保定","唐山"],["济南","青岛","日照"]]; function initArea() { // 取得下拉列表 var area = document.querySelector("#area"); for (var i = 0;i < allArea.length;i++) { var option = document.createElement("option"); option.value = i+1; option.innerText = allArea[i]; area.appendChild(option); } }
function changeAreaplus(areaid) { var areaplus = document.querySelector("#areaplus"); // 每次切换省份时,需要把城市下拉列表清空 areaplus.length = 1;
for (var i = 0;i < allAreaplus[areaid-1].length;i++) { var option = document.createElement("option"); option.value = i+1; option.innerText = allAreaplus[areaid-1][i]; areaplus.appendChild(option); } } </script> </head> <body οnlοad="initArea();"> 省份: <select id="area" οnchange="changeAreaplus(this.value);"> <option value="0">-请选择省份-</option> </select> 城市/区域: <select id="areaplus"> <option value="0">-请选择城市-</option> </select> </body> </html> |
2、本次课程内容
2.1、前端项目构建
为了能够保证前端项目安全的实施,一般会将前端的项目单独通过nodejs进行项目构建。
这里必须先安装一个nodejs的开发环境。
https://nodejs.org/zh-cn/download/
可以从上面的地址根据自己的操作系统进行环境的下载
安装后,打开命令行,输入npm查看是否能够显示对应的命令。
然后需要对象项目目录结构进行定义。
准备一个文件夹作为项目的根目录。
在企业开发中,建议构建的结构为:
app:开发的前端代码
css:样式代码
js:javascript代码
views:页面的HTML模板代码,这里使用基于express的模板,因此扩展名为ejs
server:构建的服务器代码(一般都自动生成),通过express生成
tasks:自动构建脚本
为了能够自动生成server下的内容,我们需要先安装express的nodejs扩展库。
安装的命令就是 npm install express -g(mac下建议加入一个sudo提升权限)
还需要按章一个npm install -g express-generator 来让命令行能够支持express命令
确认express命令可以用后,通过命令行进入到server文件夹下,执行
express -e .
在server目录下生成标准的服务器结构。
之后开始完成自动构建的操作。
这里自动构建使用了nodejs的另一个扩展库:gulp
所有的自动生成的操作,都是基于这个库完成的,当然还用到了一些其它的库。
在项目根目录下拷贝一个gulpfile.babel.js文件,作为项目的构建启动目录。
再拷贝一个.babelrc文件到根目录。
在命令行中进行服务器的初始化安装,找到server目录,执行npm install
在项目根目录下,执行 npm init,进行导入库的初始化。
拷贝tasks下的所有js文件。
然后需要安装这个tasks任务支持的扩展js库,还是通过npm install命令来安装
npm install gulp gulp-if gulp-concat webpack webpack-stream vinyl-named gulp-livereload gulp-plumber gulp-rename gulp-uglify gulp-util yargs gulp-live-server del babel-loader@7.1.5 babel-core babel-preset-env require-dir babel-preset-es2015 connect-livereload gulp-sequence --save-dev
|
修改服务器的app.js文件
加入一行内容
app.use(require("connect-livereload")()); |
还需要用npm命令安装一个gulp客户端,以便用gulp命令可以启动服务器。
npm install gulp -g
以上都完成后,理论上就可以使用服务器了。
通过gulp --watch命令,即可启动服务器,默认端口为3000
2.2、ES6基本语法
ECMAScript 3 对应支持的是IE6版本
ECMAScript 5 对应支持的是IE8版本,也是现在JavaScript的默认语法
ECMAScript 6 开始改名为EMACScript 2015
ES5 à ES6 里面改变和添加的语法非常多,变化的成都类似 HTML à HTML5 的变化。
如果JavaScript也想使用ES6的语法,只需要在代码中加入"use strict" 。
但是现在的新版本的浏览器默认都是ES6,所以这句话也可以不加入了。
各位浏览器必须使用chrome内核的浏览器,而且版本最好在65以上。
由于后面开发大部分情况下写的都是js,为了提升开发效率,我们在atom里建议再安装3个插件:
file-icon:文件显示图标
script:可以执行js文件
ternjs:代码提示(必须基于构建的项目)
2.2.1、变量的扩展
在之前的JavaScript,变量声明就是使用var关键字。
但是这个关键字在使用时,有一些语法不规范的地方。
为了能够规范语法,更像一门面向对象的高级语言。
这里提供了一个新的声明变量的关键字:let
使用let声明的变量,不允许重复。
作用范围也在规定的范围内,不会超出范围。
不声明变量,则不允许使用。
let a = 10 ; if (a == 10) { console.log(a); let a = 1; console.log(a); } // 必须先声明再使用 // console.log(a); // let a = 10;
// 不能重复声明 // let a = 10 ; // let a = 20 ;
// 不能与方法同名 // let a = 10; // function a() { // return "Hello"; // } // // console.log(a);
// 作用域范围在一个{}范围内 // if (1 == 1) { // let a = 10; // } // console.log(a); |
除了以上变量的声明以外,ES6中还加入的常量的处理。
也就是声明后不能被改变。
关键字使用const。
// 不允许重复赋值 // const i = 10 ; // console.log(i); // i = 20;
// 与let相同,语法规范 // const i = 100; // const i = 200 ;
// 第一次声明必须提供值 // 可以第一次赋值为null // const i ; // i = 10;
// 允许修改对象中的值 const obj = { name:"张三", age :20 }; obj.age = 30 ; console.log(obj.age); |
构建结构例子及所需配件下载:
https://download.csdn.net/download/lagoon_lala/10700132