自定义对象{}
1 var a = {"name": "Alex", "age": 18}; 2 var d = {‘name‘:‘chao‘,age:18}; 键可以不加引号 3 console.log(a.name); 4 console.log(a["age"]); 5 for循环遍历自定义对象 6 var a = {"name": "Alex", "age": 18}; 7 for (var i in a){ 8 console.log(i, a[i]); 9 }
算数运算符 1 + - * / % ++ -- i++,是i自加1,i--是i自减1 i++的这个加1操作优先级低,先执行逻辑,然后再自加1,而++i,这个加1操作优先级高,先自加1,然后再执行代码后面的逻辑
比较运算符
1 > >= < <= != == === !== ==是弱等于(不比较数据类型) ===强等于 强等于会比较数据类型
逻辑运算符
1 && || ! #and,or,非(取反)!null返回true
赋值运算符
1 = += -= *= /= #n += 1其实就是n = n + 1
1 var a = 10; 2 if (a > 5){ 3 console.log("a > 5"); 4 }else if (a < 5) { 5 console.log("a < 5"); 6 }else { 7 console.log("a = 5"); 8 }
1 var a = 10; 2 undefined 3 switch (a){ //switch (a++){} 4 case 9: 5 console.log(‘999‘); 6 break; 7 case 10: 8 console.log(‘101010‘); 9 break; 10 case 11: 11 console.log(‘111111‘); 12 break; 13 } 14 15 加上default示例: 16 17 var a = 20; 18 19 switch (a){ 20 case 9: 21 console.log(‘999‘); 22 break; //必须加break 否则会执行case中的语句 23 case 10: 24 console.log(‘101010‘); 25 break; 26 case 11: 27 console.log(‘111111‘); 28 break; 29 default : //上面的条件都不成立的时候,走default 30 console.log(‘啥也不对!!‘) 31 32 }
1 for (var i=0;i<10;i++) { 2 console.log(i); 3 } 4 5 循环数组: 6 var l2 = [‘aa‘,‘bb‘,‘dd‘,‘cc‘] 7 方式1 8 for (var i in l2){ 9 console.log(i,l2[i]); 10 } 11 方式2 12 for (var i=0;i<l2.length;i++){ 13 console.log(i,l2[i]) 14 } 15 16 循环自定义对象: 17 var d = {aa:‘xxx‘,bb:‘ss‘,name:‘小明‘}; 18 for (var i in d){ 19 console.log(i,d[i],d.i) #注意循环自定义对象的时候,打印键对应的值,只能是对象[键]来取值,不能使用对象.键来取值。 20 }
1 var i = 0; 2 while (i < 10) { 3 console.log(i); 4 i++; 5 }
1 var a = 1; 2 var b = 2; 3 var c = a > b ? a : b //如果a>b这个条件成立,就把冒号前面的值给c,否则把冒号后面的值给c //python中的:a = x if x>y else y
1 // 普通函数定义 2 function f1() { 3 console.log("Hello world!"); 4 } 5 6 // 带参数的函数 7 function f2(a, b) { 8 console.log(arguments); // 内置的arguments对象 9 console.log(arguments.length); 10 console.log(a, b); 11 } 12 13 // 带返回值的函数 14 function sum(a, b){ 15 return a + b; //在js中,如果你想返回多个值是不行的,比如return a ,b;只能给你返回最后一个值,如果就想返回多个值,你可以用数组包裹起来 return [a,b]; 16 } 17 sum(1, 2); // 调用函数 sum(1,2,3,4,5)参数给多了,也不会报错,还是执行前两个参数的和,sum(1),少参数或者没参数也不报错,不过返回值就会是NAN 18 19 // 匿名函数方式,多和其他函数配合使用,后面我们就会用到了 20 var sum = function(a, b){ //在es6中,使用var,可能会飘黄,是因为在es6中,建议你使用let来定义变量,不过不影响你使用 21 return a + b; 22 } 23 sum(1, 2); 24 25 // 立即执行函数,页面加载到这里,这个函数就直接执行了,不需要被调用执行 26 (function(a, b){ 27 return a + b; 28 })(1, 2); //python中写可以这么写:ret=(lambda x,y:x+y)(10,20) 然后print(ret)
1 局部变量: 2 3 在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。 4 5 全局变量: 6 7 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。 8 9 变量生存周期: 10 11 JavaScript变量的生命期从它们被声明的时间开始。 12 13 局部变量会在函数运行以后被删除。 14 15 全局变量会在页面关闭后被删除。
首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。
1 var city = "BeiJing"; 2 function f(){ 3 var city = "ShangHai"; 4 function inner(){ 5 console.log(city); 6 } 7 return inner; 8 } 9 var ret = f();