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. 退出循环break,continue,return,goto分析

    /* 在循环中间设置单个或者多个退出点,可以使用的语句有:break语句.continue语句.goto语句. return */ (1)break :break语句语句用于循环或 switch 语句 ...

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

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

  3. 详解C#break ,continue, return

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

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

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

  5. js中的break,continue,return

    js中的break,continue, return (转) 面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢 ...

  6. break continue return

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

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

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

  8. break continue return 区别

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

  9. 【C#】 break continue return 的区别

    static void Main(string[] args) { Console.WriteLine("使用break退出循环"); ; i < ; i++) { ) { ...

随机推荐

  1. Ruby安装Scss

    Ruby安装Scss 引言 已经许久不写HTML了,今天有点以前的东西要改.但是刚装的Windows10,已经没有以前的Web开发环境了.只好重新安装. 结果Webstorm装好后配置Scss出现错误 ...

  2. Fitnesse在eclipse中的调试

    需要在Fitnesse的wik中添加: '''此句话专门用来Debug'''!define COMMAND_PATTERN {java -Xdebug -Xrunjdwp:transport=dt_s ...

  3. BZOJ 2566 xmastree(树分治+multiset)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2566 题意:一棵有边权的树.结点有颜色.每次修改一个点的颜色.求每次修改后所有同色 ...

  4. docker镜像、容器

    第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角 ...

  5. 在vim中设置将tab自动转化为4个空格

    在vim中,我们只需要简单配置一下就ok了,打开~/.vimrc加上下面的几行(如果已经有了,修改一下数值就行了). set tabstop=4set softtabstop=4set shiftwi ...

  6. Log4j 2.0在开发中的高级使用具体解释—配置简单的控制台输出(三)

    Log4j 2.0在近期迎来了重大的版本号升级.攻克了1.x中死锁bug之外,性能也有10倍的提升. 相同的在最新版本号中的新特性中. 配置文件也不只局限于xml和java特性文件properties ...

  7. leecode -- 3sum Closet

    Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...

  8. mui 页面无法下滑拖拽 主要体现在华为手机浏览器

    项目做到中期遇到一个问题,华为手机有些页面显示不全且无法下滑. 因为之前一直用的Google浏览器的模拟模式进行开发和调试的,一直未发现这个问题. 刚开始 选用mui的下拉刷新上拉加载的方式来进行页面 ...

  9. [SQL]LeetCode183. 从不订购的客户 | Customers Who Never Order

    Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL qu ...

  10. Linux关机&amp;重启命令

    ⒈shutdown ①shutdown -h now 立即关机 ②shutdown -h 1 1分钟后关机 ③shutdown -r now 立即重启 ⒉halt 立即关机 ⒊reboot 立即重启 ...