首页 > 代码库 > 高程(3):操作符、for、for...in循环、break/continue/return语句、函数等

高程(3):操作符、for、for...in循环、break/continue/return语句、函数等

1、关系操作符

注意点:1)比较操作数是两个字符串,是比较字符串的字符编码值。

如:"a" > "b"  返回 false;"a" > "B"  返回 true;

2)[特别注意]如果是比较两个数字类型的字符串,也是按照字符编码值比较。

如:"256" > "6"  返回 false;

2、相等==和全等===

区别:相等比较有隐式类型转换,而全等则没有类型和数据都要相等才能返回true。

3、逗号操作符

注意点:下面代码中的写法注意区分,b2会变成全局变量

 

function show(){  var a1 = 1, a2 = 2;  var b1 = b2 = 3;          }console.log(b2);    //b2成为全局变量

 

4、for循环

注意点:如下代码,for循环内部定义的变量是父级作用域的变量,for、if循环没有内部块级作用域

for(var i = 0; i < 10; i++){    var a = 3;}

5、for...in...循环:一般用于循环处理json、object,获取key、value做后续处理。

注意点:由于object对象的属性没有顺序,故for...in...循环输出的属性名顺序是不可预测的。

var json = {   "23": 23,   "12": 12,   "2": 2};for(var key in json){  console.log(key);  //分别返回 2,12,23}

6、break、continue、return语句区别

1)break:跳出上一级for循环

var num = 0;function show(){  for(var i = 0; i < 10; i++){     if(i%5==0){       break;     }     num++;  }  num++;}show();console.log(num);   //返回1

2)continue:跳出当前次的后续操作,继续下一次for循环操作。

var num = 0;function show(){  for(var i = 0; i < 10; i++){     if(i%5==0){       continue;     }     num++;  }  num++;}show();console.log(num);  //返回9

3)return:跳出当前函数

var num = 0;function show(){  for(var i = 0; i < 10; i++){     if(i%5==0){       return;     }     num++;  }  num++;}show();console.log(num);  //返回0

7、switch语句:如果有又臭又长的if,可以用switch来处理,更加清晰、易于维护

注意点:switch的case操作可以使用表达式。

var num = 10;switch(true){  case   num < 0: alert(‘<0‘);    break;    case   num > 0: alert(‘>0‘);    break;    case   num == 0: alert(‘=0‘);    break;  }

8、函数

注意点:理解函数参数

函数内部的arguments类数组永远对应调用函数时所传的实参

function abc(a, b){   //此时 a = arguments[0] = 2;  b = undefined;   b = 3;  //b = 3;   arguments[1] = 4;  // 不变   return b;  //返回 3}cosole.log(abc(2)); //3
function abc(a, b){   //此时 a = arguments[0] = 2;  b = arguments[1] = 8;   b = 3;  //b = arguments[1] = 3;   arguments[1] = 4;  // b = arguments[1] = 4;   return b;  //返回 4}cosole.log(abc(2, 8)); //4
function abc(a, b){  console.log(arguments.length);  //1  arguments[1] = 2;  console.log(b);  //undefined  console.log(arguments.length);  //1}abc(2);

PS:1)js中函数没有重载,定义同名函数,后面的函数会覆盖前面函数。

2)可以根据arguments参数的个数判断,来处理不同个参数情况下对程序的控制。

function fn(){  if(arguments.length == 1){    return arguments[0] + 10;  }else if(arguments.length == 2){    return argument[0] + arguments[1] + 20;  }}

建议:有参数时使用json对象的形式作为参数传递,好处:1)简洁明了;2)可维护性高

function fn(options){  options.a = options.a || "10"; //默认赋值10  for(var key in options){ console.log(key, options[key])}}fn({  a: 1,  b: 2})

 

高程(3):操作符、for、for...in循环、break/continue/return语句、函数等