node.js(二):webpack,es6语法新特性

29 篇文章 0 订阅
2 篇文章 0 订阅

webpack

作用:js合并压缩

入门程序

一、准备三个js,分别为两个模块和一个业务
在这里插入图片描述
二、安装webpack

安装webpack核心包

npm install webpack -g

安装webpack-cli,安装了这个才能使用命令行操作webpack

npm install webpack-cli -g

三、创建webpack.config.js文件
在这里插入图片描述
添加js代码

const path = require('path');

module.exports = {
  entry: './src/main.js',  //业务js路径
  output: {
    path: path.resolve(__dirname, 'dist'),  //输出的文件夹名称
    filename: 'bundle.js'   //生成新文件的名称
  }
};

四、打包

webpack

在这里插入图片描述
测试

<!doctype html>
<html>
  <head>
    ...
  </head>
  <body>
    ...
    <script src="bundle.js"></script>
  </body>
</html>

es6

什么是es

编程语言JavaScript是ECMAScript的实现和扩展。ECMAScript是由ECMA(一个类似W3C的标准组织)参与进行标准化的语法规范。

ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,2015年6月正式发布。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

es6语法

定义变量和常量

一、定义变量

  • es5定义变量 var:无论在哪定义,都是方法体的全局变量
  • es6定义变量 let:替换var

es5

function show(flag){
    if(flag){
        var username="zhangsan"
        console.log(username)
    }else{
        console.log(username)
    }
}
show(false)

在这里插入图片描述
es6

function show(flag){
    if(flag){
        //var username="zhangsan"
        let username="zhangsan"
        console.log(username)
    }else{
        console.log(username)
    }
}
show(false)

在这里插入图片描述
二、定义常量

  • es5:var,常量可被修改
  • es6:const,常量被修改会报错
//es5定义常类
var username="zhangsan"
username="lisi"
console.log(username)

//es6定义常量 const
const name="zhangsan"
name="lisi"
console.log(name)

在这里插入图片描述

模板字符串

拼接字符串

  • es5:字符串拼接使用+
//es5
let username = "zhangsan";
let str = "欢迎:" + username + "的到来";
console.log(str);
  • es6:模板字符串 ··,使用el表达式来拼接参数
let username = "zhangsan";
let str = `欢迎:${username}的到来`;
console.log(str);

在这里插入图片描述

方法默认值

  • es5:if判断
  • es6:将参数默认值绑定到方法参数上(语法:参数名=默认值)
//方法默认值
//传递参数,控制台打印参数
//没有传递,控制台打印默认值
function showname(username){
    //es5
    if(username){
        console.log(username);
    }else{
        console.log("默认");
    }
}
showname()
//es6:将参数默认值绑定到方法参数上(语法:参数名=默认值)
function showname2(username="默认值"){
    console.log(username);
}
showname2()

在这里插入图片描述

箭头函数

相当于java的lambda表达式

  1. 不需要function
  2. 通过参数后添加=>来声明方法
  3. 当方法体只有一行,大括号和return可以省略
//箭头函数:定义方法
let add = function(a,b){
    return a+b
}
console.log(add(1,2))

//1.不需要function
//2.通过参数后添加=>来声明方法
let add2 = (a,b) => {
    return a+b
}
console.log(add2(1,2))

//3.当方法体只有一行,大括号和return可以省略
let add3 = (a,b) => a+b
console.log(add3(1,2))

在这里插入图片描述

创建对象

  • es5:json格式
  • es6:当返回对象的属性名和方法参数名一致时,可以省略赋值的过程
//es5写法
function people(username,age){
    return {
        username:username,
        age:age
    }
}
let test = people("zhangsan",12);
console.log(test)
//es6:当返回对象的属性名和方法参数名一致时,可以省略赋值的过程
function people2(username,age){
    return {
        username,
        age
    }
}
let test2 = people2("zhangsan",12);
console.log(test2)

在这里插入图片描述

解析对象

  • es5:let 变量名 = 对象名.属性名
  • es6:let {属性名,属性名} = 对象;

注意:获取对象中的属性名和定义的变量名一致

//对象解构
//解析对象:获取对象的属性
let people = {
    username:"zhangsan",
    age:13,
    address:"浙江"
}

//es5获取username和age
// let username = people.username;
// let age = people.age;

//es6获取:获取对象中的属性和定义的变量名一致
let {username,age} = people;

console.log(`${username}--${age}`)

扩展函数

又叫三个点函数,可以用于数组或对象的扩展

将colorful在colors的基础上扩展
将teacher在people的基础上扩展

//扩展函数
//扩展数组和对象属性
let colors = ["red","yellow"]
let colorful = [...colors,"blue"]
console.log(colorful)

//扩展对象
let people = {
    username:"zhangsan",
    age:13,
    address:"浙江"
}
let teacher = {
    ...people,
    title:"讲师"
}
console.log(teacher)

在这里插入图片描述

导入和导出

关键字:exportimport

作用:弥补了es5中,一次只能导出一个方法的缺点

工具类

//工具类
export default {
    add:function(a,b){
        return a+b;
    },
    sub:function(a,b){
        return a-b;
    }
}

业务import 导入的对象名 from 导入的js路径

//业务代码
//import 导入的对象名 from 导入的js路径
import utils from "./demo9_lib"
utils.add(1,2);
utils.sub(2,1);

发现报错
在这里插入图片描述

注意:在nodejs中,可以使用所有的es6语法,除了import。所以,需要添加babel插件来支持import关键字。

安装bebel插件

一、安装es6转换模块

cnpm install babel‐preset‐es2015 ‐‐save‐dev

二、全局安装命令行工具

cnpm install  babel‐cli ‐g

三、babel转换配置,项目根目录添加.babelrc 文件
在这里插入图片描述
添加内容

{
    "presets":["es2015"]
}

四、使用

babel‐node js文件名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值