流程控制
var a = 10; if (a>5){ console.log('大于5'); }else { console.log('小与5'); } //大于5
var a = 10; if (a>5){ console.log('a>>>5'); }else if(a<5){ console.log('a<<<5'); }else { console.log('a===5'); } //a>>>5 换行shift+ctrl
var day = new Date().getDay(); switch (day){ case 0: console.log('Sunday'); break; case 1: console.log('Monday'); break; default: console.log('自己去看'); } //Monday 根据星期几去选择输出内容,先得到本地日期,然后case周一到周日 //switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。
for (var i=0;i<10;i++){ console.log(i); } // 定义一个i=0,条件是如果i<10,那么i++(自加),输出i,如果i>=10,则结束 //0123456789
var i = 0; while(i<10){ console.log(i); i++; } //定义一个i=0,while+(条件){结果} //0123456789
var a = 1; var b = 2; var c = a>b?a:b; //定义a,b,如果a>b输出a,否则输出b(?:) //a = 1 //b = 2 //c = a if a > b else b
函数
JavaScript中的函数和Python中的非常类似,只是定义方式有点区别。
//普通函数定义 function func(){ console.log('Baby'); } func(); //Baby //function+函数名(){函数内容} //带参数的函数 function func2(a,b){ console.log(arguments); console.log(arguments.length); //内置的arguments对象,查看传入参数的长度 console.log(a,b); } func2(1,2,3,4,5,6,7); // 7 1 2 传再多值也只会显示两个 func2(1); // 1 1 undefined 只传入一个值则会自动传入一个undefined func2([1,2,3,4,5,6,7]); //1 [1,2,3,4,5,6,7] undefined //不传值则会传入两个undefined //带返回值的函数 function sum(a, b){ return a+b; } sum(1,2) //3 //匿名函数 var sum = function(a,b){ return a+b; } sum(1,2); //3 匿名函数没有函数名,直接开始 //立即执行函数 (function(a,b){ return a+b; })(1,2); //3 打完之后立即执行把函数放在括号里 //ES6中允许使用“箭头”(=>)定义函数。 var f = v => v; // 等同于 var f = function(v){ return v; } //如果箭头函数不需要参数或需要多个参数,就是用圆括号代表参数部分:如果箭头函数不需要参数或需要多个参数,就是用圆括号代表参数部分: var f = () => 5; //()=>5 // 等同于 var f = function(){return 5}; //ƒ (){return 5} var sum = (num1, num2) => num1 + num2; //sum(1,2) 3 // 等同于 var sum = function(num1, num2){ return num1 + num2; } //sum(1,2) 3
函数的全局变量和局部变量 局部变量: 在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。 全局变量: 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。 变量生存周期: JavaScript变量的生命期从它们被声明的时间开始。 局部变量会在函数运行以后被删除。 全局变量会在页面关闭后被删除。 作用域 首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。
var city = "BeiJing"; function f() { //2 var city = "ShangHai"; //3 function inner(){ //4 var city = "ShenZhen"; //5 console.log(city); //6 此时city='shenzhen' } inner(); } f(); //1 //shenzhen var city='beijing'; function Bar(){ //6 console.log(city); //7 没有city,向上找,city='beijing' } function f(){ //3 var city='shanghai'; //4 return Bar; //5 } var ret = f(); //2 ret(); //1 //beijing var city='beijing'; function f(){ //3 var city='shanghai'; //4 //7 function inner(){ //5 console.log(city); //6 } return inner; //8 } var ret = f(); //2 ret(); //1 //shanghai