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
# 接下来是一堆项目信息等待着你输入,如果使用默认值或你不知道怎么填写,则直接回车即可。
# package name: 项目名字
# version: 版本号
# description: 对项目的描述
# entry point: 项目的入口文件(一般你要用那个js文件作为node服务,就填写那个文件)
# test command: 项目启动的时候要用什么命令来执行脚本文件(默认为node app.js)
# git repository: 如果你要将项目上传到git中的话,那么就需要填写git的仓库地址
# keywirds: 项目关键字
# author: 作者名字
# license: 发行项目需要的证书
#经过下面的配置,以后所有的 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
原文:https://www.cnblogs.com/forever-fate/p/14273135.html