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)); 
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)); 
function abc(a, b){
  console.log(arguments.length);
  arguments[1] = 2;
  console.log(b);  //undefined
  console.log(arguments.length);
}
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语句、函数等的更多相关文章

  1. js中的break ,continue, return (转)

    面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢? ...

  2. 详解C#break ,continue, return

    C#编程语法中break ,continue, return这三个常用的关键字的学习对于我们编程开发是十分有用的,那么本文就向你介绍break ,continue, return具体的语法规范. C# ...

  3. 有关于break,continue,return的区别和代码分析

    今天,用代码和结果直接解释break,continue,return的区别 1.break代码 public static void breakTest() { //break的讲解 for(int ...

  4. break continue return

    break 通常用在循环语句和开关语句中,当break语句用于do-while.for.while循环语句中时,可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起,即满足 ...

  5. Java基础(2):Java中的四个跳转语句总结goto,break,continue,return

    跳转控制语句 Java中的goto是保留字,目前不能使用.虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情.为了弥补这 ...

  6. break continue return 区别

    break语句: break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句.由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才 ...

  7. C# break continue return

    break:跳出当前循环,执行循环后的代码 continue:跳出当前循环,执行下一次循环 return:跳出整个方法

  8. 理解 break, continue, return 和 exit

    你们知道 “break”, “continue”, “return” 和 “exit”的作用吗? 它们是功能强大的语言结构体.下面通过一个测试函数来说明它们之间的不同. 1 2 3 4 5 6 7 8 ...

  9. Java笔记4-do while循环,break,修饰符,方法的调用

    do while循环语法:do{ //循环体}while(条件表达式); 注:它是先执行循环体,后再判断的循环结构. 如:int i = 0;do{ System.out.println(" ...

随机推荐

  1. Go结构体实现类似成员函数机制

    Go语言结构体成员能否是函数,从而实现类似类的成员函数的机制呢?答案是肯定的. package main import "fmt" type stru struct { testf ...

  2. 浏览器IE与非IE区分

    1. window.VBArray  IE自带 if(window.VBArray) {console.log("IE 浏览器");} else{console.log(" ...

  3. 7.6--找过点最多的直线(CC150)

    直接两个点确定一条直线.然后两两组合,再写一个看过多少个点的函数.一直更新max就行. import java.util.Arrays; public class Solution { public ...

  4. mac下mysql的安装

    由于最近需要布置mantis用来进行bug追踪,在此记录其过程. 由于PHP apache环境在Mac OS上是自带的,所以不需要另处下安装包,只需要简单配置一下即可. 首先打开终端输入命令: sud ...

  5. String和string的区别

    (1)从位置讲 1.string是c#中的的 2.String是 .Net Framework的一个函数名(类),基于using.System的引用 (2)从性质讲 1.string是关键字,Stri ...

  6. 优化win2d实现的萤火虫粒子效果

    前几天我发了个技术博客,告诉大家怎样用Win2D 画萤火虫动画 . 那种绘制萤火虫的方式虽然画质高,但是性能不好,萤火虫数量超过50就可以感受到帧数下降. 我今天想到了一种牺牲画质提升性能的绘制方式, ...

  7. C. Coloring Trees DP

    传送门:http://codeforces.com/problemset/problem/711/C 题目: C. Coloring Trees time limit per test 2 secon ...

  8. 【转】【C#】异常类 Exception 枚举所有类型的异常

    一.基础 在C# 里,异常处理就是C# 为处理错误情况提供的一种机制.它为每种错误情况提供了定制的处理方式,并且把标识错误的代码与处理错误的代码分离开来. 对.NET类来说,一般的 异常类System ...

  9. Linux下的网络管理工具—OpenNMS

    导读 OpenNMS的是一个运营商级别的,高度集成的,开放源码的平台,用于构建网络监控解决方案.OpenNMS有两个发行版:Meridian and Horizon.使用Meridian是可取的,对企 ...

  10. TVP5150摄像头

    工作中看同事摄像头配置的时候有2种格式PAL.NTSC.如果摄像头的格式配置不对的话会出现重影.黑白没颜色.闪屏等等. TVP5150  PAL.NTSC配置.http://bbs.csdn.net/ ...