原文http://pij.robinqu.me/

for/in语句也使用for关键字,但它是和常规的for循环完全不同的一类循环。语法:

for (variable in object)
statement

variable通常是一个变量的名,也可以使一个可以产生左值的表达式或一个通过var语句声明的变量,object是一个表达式,这个表达式计算的结果是一个对象。for/in 循环用来方便的遍历对象属性成员:

for(var p in o ) {
console.log(o[p]);
}

for/in循环并不会遍历对象所有属性,只有“可枚举”的属性才会遍历到。由JavaScript语言核心所定义的内置方法就不是“可枚举的”,例如所有对象都有方法toString().

跳转

JavaScript中另一类语句是跳转语句。

例如

break语句是跳转到循环或者其他语句的结束。

continue语句是终止本次循环的执行并开始下一次循环的执行。JavaScript中的语句可以命名或带有标签,break和continue可以标识目标循环或者其他语句标签。

return语句让解释器跳出函数体的执行, 并提供本次调用的返回值。

throw语句触法或者”抛出”一个异常,他是与try/catch/finally语句一通使用的。

语句是可以添加标签的,标签是由语句前的标识符和冒号组成:

identifier: statement

JavaScript中允许break关键字后面跟随一个语句标签:

break labelname;

当break和标签一块使用时,程序将跳转到这个标签所标识的语句块的结束,或者直接终止这个闭合语句块的执行。 如果没有这个闭合语句块,就会产生一个语法错误。

单独使用break语句的作用是立即退出最内层的循环或switch语句。如果希望通过break来跳出非就近的循环体或者switch语句时,就会用到带标签的break语句.

continue语句和break语句非常类似,但它不是退出循环, 而是转而执行下一次循环。

函数中的return语句既是指定函数调用后的返回值。

return expression;

return语句只能出现在函数体内。如果没有return语句,调用表达式的结果是undefined

JavaScript中,当产生运行时错误或者程序使用throw语句时就会显示地抛出异常。使用try/catch/finally语句可以捕获异常,

throw语句的语法:

throw expression;

expression的值可以是任意类型的。JavaScript解释器抛出的异常的时候通常采用Error类型和其子类型,例如:

function factorial(x) {
if(x < 0) throw new Error("x不能是负数");
for(var f = 1; x > 1; f *= x, x--);
return f;
}

Error中有几个比较重要的属性 比如name 错误的名称 message 错误的信息 stack 错误发生时调用堆栈。

常见的几种Error类型:

SyntaxError: 语法错误,无法通过解释器
RangeError: 数值超出范围
TypeError: 变量的类型不是预期的
ReferenceError: 引用不可用

当抛出异常时, JavaScript解释器会立即停止当前正在执行的逻辑,并跳转到就近的异常处理程序。异常处理程序是用try/catch/finally语句的catch从句编写的。

try/catch/finally语句是JavaScript的异常处理机制。

其中try从句定义了需要处理的异常所在的代码块。

catch从句跟随在try从句之后, 当try块内某处发生了异常时,调用catch内的代码逻辑。

catch从句后跟随finally快,后者中放置清理代码。不管try块中是否产生异常,finally块内的逻辑总是会执行。

其他语句

这里讨论三种JavaScript语句 with, debugger和 use strict

with语句用于临时扩展作用域链,语法:

with (object)
statement

这条语句将object添加到作用域链的头部,然后执行statement,最后把作用域链恢复到原始状态。

通常情况不推荐使用with语句。一般可以使用with语句来简化代码编写。例如:

with(document.forms[0]) {
name.value = "";
address.value = "";
email.value = "";
}

debugger语句,用来产生一个断点,代码的执行会停在断点的位置,这时使用调试器来输出变量的值。

javascript基础(四)语句的更多相关文章

  1. JavaScript基础四

    1.13 Js中的面向对象 1.13.1 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或 ...

  2. javascript基础知识-语句

    关于javascript语句,有下面一些有趣的用法. 1.空语句的使用: 空语句只包含一个";",那在什么时候可以使用呢? 例: //初始化一个数组a for(i = 0;i &l ...

  3. JavaScript 基础(四) 循环

    JavaScript的循环有两种,一种是for 循环,通过初始条件,结束条件和递增条件来循环执行语句块: var x = 0; var i; for(i=1; i <=10000; i++){ ...

  4. Javascript基础四(数组,字符,对象,日期)

    第一节:数组 1.数组的概念及定义     可以存放一组数据:          当需要操作多个数据时: 2.数组的创建方式 var arr1 = [1,2,3]; //字面量方式 var arr2 ...

  5. JavaScript 基础四

    遍历对象的属性 for...in 语句用于对数组或者对象的属性进行循环操作. for (变量 in 对象名字) { 在此执行代码 } 这个变量是自定义 符合命名规范 但是一般我们 都写为 k 或则 k ...

  6. JavaScript 基础(四) - HTML DOM Event

    HTML DOM Event(事件) HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript.下 ...

  7. JavaScript基础语句

    一.前言: 有过学习其他语言的经历,会比较好上手.但是,没有学过也无关大雅.只要认真学,都会学好.毕竟,都只是一些基础的语句.关键在于要会运用. 掌握好语句的嵌套,以及要的逻辑思维能力,就已经成功一大 ...

  8. 前端(十二)—— JavaScript基础操作:if语句、for循环、while循环、for...in、for...of、异常处理、函数、事件、JS选择器、JS操作页面样式

    JavaScript基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通 ...

  9. javascript基础入门之js中的结构分支与循环语句

    javascript基础入门之js中的结构分支与循环语句 程序的结构①顺序结构:自上而下:②选择(分支)结构:多条路径,根据不同的条件,只执行其中一个:③循环结构:重复某些代码④配合特定的语句实现选择 ...

随机推荐

  1. HOJ———丢手绢

    hide handkerchief Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...

  2. [学习笔记]agileone安装登陆报错,localhost重定向次数过多

    1.找到.htaccess文件 2.修改RewriteEngine  参数为off即可

  3. 对于行高(line-height)的一些理解

    刚一开始学习这个特性的时候,总是出一些当时看起来很奇怪的问题.现在决定重新整理一下.毕竟使用css,十行揉在一起凑出效果是一种使用,知道为什么会有这种效果也是一种使用.我们需要做一些测试,所以首先需要 ...

  4. SIGPIPE信号

    #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include &l ...

  5. CodeForces 676D Theseus and labyrinth

    最短路. $dis[i][j][k]$记录到点$(i,j)$,门的状态为$k$时的最短路.转移的时候有$8$种方案,即直接走向周围四个点,或者进行旋转.比较烦的是判断两个相邻的点在状态$k$下是否连通 ...

  6. python向服务器发送邮件事例

    import osimport sysimport re __author__ = 'xiaoming' import requestststr = '<div>\n<ul>\ ...

  7. db2 表空间容器调整

    1.查看当前容器的分布,并确定如何调整 db2look -d sample -l -cor -dp -o dd.sql 2.给表空间添加容器 db2 "alter tablespace tb ...

  8. DEBUG 调试

    1.Step Into (also F5) 跳入 2.Step Over (also F6) 跳过 3.Step Return (also F7) 执行完当前method,然后return跳出此met ...

  9. jquery 使用attr() 函数对复选框无效的原因

     复选框是网站开发的时候经常用到的网页标签之一,常见的在页面上对复选框的操作包括取值和修改复选框的状态.在jquery中,常见的操作标签的值得函数为attr,然而在操作复选框的时候,通常采用的却是pr ...

  10. Oracle 锁模式

    0:none  1:null 空  2:Row-S 行共享(RS):共享表锁  3:Row-X 行专用(RX):用于行的修改  4:Share 共享锁(S):阻止其他DML操作  5:S/Row-X ...