ECMAScript6.0相当于JavaScript的标准,它规定了浏览器脚本语言的标准,发布于2015年,目标是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言
Node.js 就是运行在服务端的 JavaScript ,Node.js是脱离浏览器环境运行的JavaScript程序,基于Google的V8引擎,V8引擎执行Javascript的速度、非常快,性能非常好
const http = require("http");//node中自带的require引入方法,http也是node中自带的服务对象
http.createServer(function(request, response){
// 发出http请求的头部信息
// http的状态码:200;OK
// 请求的内容类型:text/plain
response.writeHead("200",{"Content-Type":"text/plain"});
//响应的数据 "hello,welcome!"
response.end("hello,moto");
}).listen(8888);
// 监听端口
console.log("服务器已启动,请访问 http://127.0.0.1:8888");
npm init
#经过下面的配置,以后所有的 npm install 都会经过淘宝的镜像地址下载
npm config set registry https://registry.npm.taobao.org
#设置npm下载包时保存在本地的地址(建议英文目录)
npm config set prefix "E:\\repo_npm"
#查看npm配置信息
npm config list
{
"name": "nodejs",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"jquery": {
"version": "1.9.1",
"resolved": "https://registry.npm.taobao.org/jquery/download/jquery-1.9.1.tgz?cache=0&sync_timestamp=1588633260500&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjquery%2Fdownload%2Fjquery-1.9.1.tgz",
"integrity": "sha1-5M1INfqu+63lNYV2E8D8P/KtrzQ="
}
}
}
//作用域不同
{
var m=1;
let n=2;
}
console.log(m);//1
console.log(n);//n is not defined
//声明次数不同
var num=1;
var num=2;
let num1=3;
let num1=4;
console.log(num);//2
console.log(num1);//Identifier 'num1' has already been declared 已经声明
//声明和使用顺序不同
console.log(x); //undefine,但是已经定义了
var x=1;
console.log(y); //y is not defined
let y=2;
const PI=3.1415;// Missing initializer in const declaration
//不可以先声明后再初初始化
console.log(PI);
解构赋值是对赋值运算符的扩展,针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
//数组
var arr=[1,2,3]
//传统js
var a=arr[0];
var b=arr[1];
var c=arr[2];
console.log(a,b,c);
//解构数组
var [x,y,z]=arr;
console.log(x,y,z);
//对象
var user={
name:"吕布",
weapon:"方天画戟",
horse:"赤兔马"
}
//传统js
var str1=user.name;
var str2=user.weapon;
var str3=user.horse;
console.log(str1,str2,str3);
//解构数组
var {name,weapon,horse}=user;
console.log(name,weapon,horse);
//1.普通字符串
var str=`hello`;
console.log(str);
//2.定义多行字符串
var str1=`hello
hello
what's your name?
my name is rf`;
console.log(str1);
//3.插入变量和表达式
var user={
name:"吕布",
age:34,
say: function(){
return `我的名字叫${user.name}, 我今年${user.age}岁了`;
}
}
console.log(`我的名字叫${user.name}, 我今年${user.age}岁了`);
//4.调用函数
console.log(`${user.say()}`);
var name=`吕布`;
var age=24;
//传统定义对象
var user={
name:name,
age: age,
say:function(){
return user1;
}
}
console.log(user);
//简写
var user1={name,age};
console.log(user1);
//函数简写
console.log(user.say());
var user2={
say(){
return user1;
}
}
console.log(user2.say());
对象拓展运算符
let user={
name:`吕布`,
weapon:`方天画戟`
}
let horse={
horser:`赤兔马`
}
//深拷贝
var user2={…user};
console.log(user2);
user.name='貂蝉'; //不会改变
console.log(user2);
//多对象拷贝
var user3={…user,…horse};
console.log(user3);
函数
//默认参数表现形式
function test1(name,age=18){
return `my name is ${name}, age is ${age}`;
}
console.log(test1(`吕布`,33));//my name is 吕布, age is 33
console.log(test1(`吕布`));//my name is 吕布, age is 18
console.log(test1(`吕布`,undefined));//my name is 吕布, age is 18
console.log(test1(`吕布`,null));//my name is 吕布, age is null
console.log(test1(`吕布`,""));//my name is 吕布, age is
console.log(test1(`吕布`,"undefined"));//my name is 吕布, age is undefined
console.log(test1(`吕布`,"123"));//my name is 吕布, age is 123
//定义多参数
function test2(…arg){
console.log(arg.length);
for (var i=0;i<arg.length;i++){
console.log(arg[i]);
}
}
test2(); //0
test2(1);// 1 1
test2(1,2,3,4,5);// 5 1 2 3 4 5
test2(`guo`,`123`,null);//3 guo 123 null
//箭头函数
var test3= (a,b)=>{
let sum=a*b+b;
return sum; //40
}
console.log(test3(3,10));// 40
//单个形参括号可省略
var test4= a=>{
let sum=a*a+a;
return sum;
}
console.log(test4(10));//110
//单个函数体语句{}可省略
var test5= a=>a*a+a;
console.log(test5(20));//420
function add(name){
return `my name is ${name}`;
}
function del(name){
return `delete ${name}`;
}
//导出
module.exports={
add,
del
}
let user= require("./user");
console.log(user.add("rf"));
console.log(user.del("123"));
var name="rf";
var age=12;
function add(name){
return `my name is ${name}`;
}
function del(name){
return `delete ${name}`;
}
//导出
export{
name,age,add,del
}
import {name,age,add,del} from "./user";
console.log(name);
console.log(age);
console.log(add(name));
console.log(del(name));
{
"presets": ["es2015"],
"plugins": []
}
babel user.js --out-file .\dist\user.js
或 babel user.js -o .\dist\user.js
let name = "老孙";
let age = 66;
let fn = function(){
return `我是${name}!我今年${age}岁了!`;
} /
/ 声明模块并导出
export{
name as a, // 将属性重命名
age as b,
fn as c
}
import {a,b,c} from "./user.js";
console.log(a);
console.log(b);
console.log(c());
import * as info from "./user.js"; // 通过*来批量接收,用as来指定接收的对象名字
console.log(info.a);
console.log(info.b);
console.log(info.c());
/*****************导出****************************/
export default{
name:"老孙",
eat(){
return "吃点啥!";
}
} /
*****************导入****************************/
import p from "./person.js";
console.log( p.name, p.eat() );
/*******************student1.js**************************/
export let name = "我是来自student1.js";
/*******************student2.js************************/
export let name = "我是来自student2.js";
/*******************test_student.js************************/
import {name as name1} from './student1.js';
import {name as name2} from './student2.js';
console.log( name1 ); // 我是来自student1.js
console.log( name2 ); // 我是来自student2.js
Node.js 就是运行在服务端的 JavaScript
手机扫一扫
移动阅读更方便
你可能感兴趣的文章