前端笔记1.1 项目构建

  1. 上次课程回顾

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值