JavaScript常用语句

语句 语法 说明
简单语句 语句以;分号结束
语句块 {} 将一组语句组成语句块,ES中没有语句块作用域,也可用作对象字面量
添加标签语句 label 给代码添加标签供其它语句使用。  (例如break和continue,中断指定标签语句)
分支结构语句 if 条件选择,在条件表达式中,会将结果隐式转换为Boolean类型。
switch 多分支判断语句
循环结构语句 while  /  do-while 满足条件才执行循环体   /   先执行循环体,再进行条件判断
for for语句和while功能相同,都为循环,只是将初始化,条件判断,递增递减结合一起。
for-in for循环另一形式,遍历对象的属性和对象原型链上的属性。
跳转结构语句 return 返回语句,在return之后没有返回时,返回undefined。
break 在switch语句中,不继续执行下面的case语句。
continue 在循环语句中中断本次循环,执行下一次循环。
异常处理语句 try 将代码放在try块中,使得异常发生时能够做出相应的处理。
throw 抛出异常语句。
调试语句 debugger 调试语句
作用域设置语句 with 将代码的作用域设置到一个特定的对象中。 (不推荐使用,不好控制结果)

部分细节说明:

label 语句

label:statement;    //给代码添加标签供跳转语句使用。
break label; //用在循环语句中中断整个循环。 continue label; //在循环语句中中断本次循环,执行下一次循环。

switch 语句

//switch结构
switch(expression) //表达式不限于整型,可以是任意表达式 { case value1: //value可以是整型也可以是其它类型或一个表达式,但比较时不会进行类型转换,而且使用全等(===)进行匹配。   statement1;   break; //在找到匹配的case分支后,不继续执行下面的case语句。 case value2:   statement2;   break;
default: //如果都未匹配,则执行default下的语句。   statement; }
 

while / do-while

while(expression)     //条件判断会有隐式转换

{

  statement;      //满足条件才执行循环体。如果一开始就不满足条件,则根本不会执行循环体。

}

do{

  statement;       //先执行循环体,再进行条件判断,这种格式至少会执行一次循环。

}while(expression);   //条件判断会有隐式转换

for循环 性能优化,避免每次循环都要计算范围值

// 1.基本格式的for循环,i大部分直接复制给指定数组的长度
for(var i=0; i < arr.length; i++){
} // 2.上面在每一次循环都会重新计算一次arr的长度,如过arr是dom操作的话,会非常明显的影响效率,不推荐使用
var l = arr.length;
for(var i=0,l=arr.length; i<l; i++){
} // 3. 如果循环为递减,可以直接设为i
for(var i=arr.length; i>0; i--){
}

return语句注意点

return         //由于引擎会在return后自动添加分号,这里实际会返回undefined,不能使用该写法
{
prop:'value';
} return { //这样写才和预期一样,会返回一个对象
prop:'value';
}

try-catch 语句

 
try{      //try后面必须接catch或finally

//执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容

}catch(e){

//除非try里面执行代码发生了异常,否则这里的代码不会执行

}finally{

//finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。
//即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作。如关闭数据库连接等等。
//注意:如果没有catch语句块,那么finally块就是必须的。 }

throw 主动抛出异常

try{      

throw "test";       //主动抛出异常

}catch(e){

console.log(e);   //test

}finally{

console.log('finally');   //finally

}
如果内部的异常没有处理抛给了外面,在外面处理之前要处理里面的finally顺序
try{      

    try{      

    throw newError "oops";

    }finally{

    console.log('finally');   //finally         如果内部的异常没有处理抛给了外面,在外面处理之前要处理里面的finally顺序

    }

}catch(e){

console.log("outer", ex.message);   // outer  oops

}finally{

console.log('finally');   //finally

}

只要内部的异常没有处理抛给了外面,在外面处理之前要处理里面的finally顺序

try{      

    try{      

    throw newError "oops";

    }catch(e){

    console.log("inner", ex.message);   // inner  oops
throw e;
}finally{ console.log('finally'); //finally 只要内部的异常没有处理抛给了外面,在外面处理之前要处理里面的finally顺序 } }catch(e){ console.log("outer", ex.message); // outer oops }finally{ console.log('finally'); //finally }

JavaScript常用语句的更多相关文章

  1. JS常用语句

    JavaScript常用语句 1.document.write("");    输出语句 2.JS中的注释为   // 3.传统的HTML文档顺序是:     document-& ...

  2. JavaScript 常用功能总结

    小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式. 目录: 众所周知,JavaScri ...

  3. JavaScript之语句,循环

    JavaScript中语句主要分为三类:顺序,分支,循环. 1.顺序语句: 按照循序依次执行,最普通常见的语句,这里不多赘述. 其结构如下 2.分支语句: 根据条件判断,不同的结果执行不同的语句. 其 ...

  4. mo系统常用语句

    mo系统常用语句 一.总结 一句话总结: 1.语言:双语设置(繁体,英语)语句? {:chooseLanguage("確定要刪除么","Are you sure you ...

  5. Javascript常用的设计模式详解

    Javascript常用的设计模式详解 阅读目录 一:理解工厂模式 二:理解单体模式 三:理解模块模式 四:理解代理模式 五:理解职责链模式 六:命令模式的理解: 七:模板方法模式 八:理解javas ...

  6. 系统学习javaweb补充1----HTML常用语句

    HTML 常用语句 一.单行文本框语法格式 <input type="text" name="输入信息的名字" value="输入信息的值&qu ...

  7. SQL server 常用语句

    SQL Server中常用的SQL语句   1.概述 2.查询概述 3.单表查询 4.连接查询 5.带有exists的相关子查询 6.SQL的集合操作 7.插入操作 8.删除操作 9.修改操作 10. ...

  8. select元素javascript常用操作 转

    /*------------------------------------------------------ *作者:xieyu @ 2007-08-14 *语言:JavaScript *说明:s ...

  9. mysql常用语句总结

    1.创建语句 CREATE DATABASE database_name //创建数据库 //删表 DROP TABLE IF EXISTS `t_social_user_extend`; //建表C ...

随机推荐

  1. Java虚拟机详解(一)------简介

    本系列博客我们将以当前默认的主流虚拟机HotSpot 为例,详细介绍 Java虚拟机.以 JDK1.7 为主,同时介绍与 JDK1.8 的不同之处,通过Oracle官网以及各种文献进行整理,并加以验证 ...

  2. chrome浏览器开发者工具F12中某网站的sources下的源码如何批量保存?

    目录 chrome浏览器 开发者工具F12中某网站的sources下的源码如何批量保存 1. 常用保存Sources源码的两种方法 1.1单个文件 1.2 单个页面 2. 问题 3.解决方案 chro ...

  3. centos7.3nginx启动命令

    #!/bin/sh # chkconfig: 2345 80 90 # description: Start and Stop nginx #PATH=/usr/local/sbin:/usr/loc ...

  4. CI控制器

    当控制器要继承自定义的控制器的时候,有特定的定义: application/core/MY_Controller <?php class MY_Controller extends CI_Con ...

  5. Java 位域

    Java位域 这个概念是在 Effective Java中了解到的, 可以通过EnumSet来代替位域这种方式表达. 并不是很常见的概念, 因此记录下. 如果在这之前恰好了解过 bitmap这种数据结 ...

  6. 带你手写基于 Spring 的可插拔式 RPC 框架(一)介绍

    概述 首先这篇文章是要带大家来实现一个框架,听到框架大家可能会觉得非常高大上,其实这和我们平时写业务员代码没什么区别,但是框架是要给别人使用的,所以我们要换位思考,怎么才能让别人用着舒服,怎么样才能让 ...

  7. Java web环境的搭建

    学习java web 首先得要能够在自己的电脑上配置环境,经查阅资料后了解,需要装java EEEclipse ,即企业版的,还有就是tomcat服务器. 第一步,从网上下载,eclipse 企业版的 ...

  8. 初始化mysql数据库提示缺少Data:dumper模块解决方法

    初始化默认数据库运行此命令:/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ 出现错 ...

  9. POJ 2449:Remmarguts' Date(A* + SPFA)

    题目链接 题意 给出n个点m条有向边,源点s,汇点t,k.问s到t的第k短路的路径长度是多少,不存在输出-1. 思路 A*算法是启发式搜索,通过一个估价函数 f(p) = g(p) + h(p) ,其 ...

  10. HDU 3081:Marriage Match II(二分图匹配+并查集)

    http://acm.hdu.edu.cn/showproblem.php?pid=3081 题意:有n个男生n个女生,他们只有没有争吵或者女生a与男生A没有争吵,且女生b与女生a是朋友,因此女生b也 ...