npm install -g http-server
http-server
npm install -g live-server
live-server
或者vscode打开 open with live-server
开发的时候推荐后者
一、
console.log("hello node.js")
for(var i in console){
console.log(i+" "+console[i])
}
node example.js。
二、
建立项目
npm init
全局安装
cnpm install -g babel-cli
项目的依赖(预设环境)
cnpm install --save-dev babel-preset-env
--save-dev 添加开发依赖, --save 运行依赖,以后bundle会去掉依赖上生产环境
bable说明文件(把日语翻译成鸟语,还是把鸟语翻译成)(指导文件)
rename a.txt .babelrc
{
options: {
presets : ["env"]
}
}
然后运行
bable 1.js. -o 01.js
就能将文件翻译成功;
三、闭包
函数定义时候,会记住上下文环境和内部方法。执行的时候,回去到自己定义的上下文中运行。
记住了:var i=0; 记住了内部代码 i++;
运行的时候直接去做了,很单纯,没有啥想法。
四、curry用处
//update会返回一个函数,这个函数可以设置id属性为item的web元素的内容
function update(item){
return function(text){
$("div#"+item).html(text);
}
}
//Ajax请求,当成功是调用参数callback
function refresh(url, callback){
var params = {
type : "echo",
data : ""
};
$.ajax({
type:"post",
url:url,
cache:false,
async:true,
dataType:"json",
data:params,
//当异步请求成功时调用
success: function(data, status){
callback(data);
},
//当请求出现错误时调用
error: function(err){
alert("error : "+err);
}
});
}
refresh("action.do?target=news", update("newsPanel"));
refresh("action.do?target=articles", update("articlePanel"));
refresh("action.do?target=pictures", update("picturePanel"));
其中,update函数即为柯里化的一个实例,它会返回一个函数,即:
update("newsPanel") = function(text){
$("div#newsPanel").html(text);
}
五、闭包用处。。闭包来维护一个别人污染不到的变量 做计数器
var fn = (function(){
var cnt = 0;
return function(){
return ++cnt;
}
})();
alert(fn());//------------------1
alert(fn());//------------------2
alert(fn());//------------------3
# 不管你把这个函数拿到哪里去,他执行时候很单纯。
//用闭包来解决问题
每个函数都是一个闭包,定义的时候,执行的时候。
//用闭包来解决问题
window.onload = function(){
var ul = document.getElementsByTagName("ul")[0];
var li = ul.getElementsByTagName("li");
for(var i=1;i<=li.length;i++){
(function(i){
li[i].onclick = function(){
console.log(i); //点击第几个返回第几个
}
})(i)
}
}
六、apply call bind
都是指定函数的上下文。 call是零散的参数,apply是数组。
巧用: Math.max.apply(null, arr); 动态调用函数,返回最大值。
七、闭包
函数能记住自己定义时候所处的作用域,即使函数不在这个作用域运行,它仍然能访问当时定义时候的上下文变量。
、、闭包是函数外部的作用域。
、、提供变量的私有封装
、、
function outer() {
var a= 0;
functiong inner() {
console .log(a);
}
}
var innert = outer(); #访问它定义时候的值。
八、promise是新版ES的特性,目的:更优雅的解决异步。
就是语法糖,then的东西从里面提外部来了,让异步变得漂亮,并没有改变核心机制。
// 回调黑洞,回调套回调。
、、承诺契约,
解决:依次按顺序加载多个文件。。
九、模拟
setTimeout(function(){
//do something
setTimeout(arguments.callee,interval);
},interval)
10 await表示等待。
async
11.