javascript基础(四)语句
原文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基础(四)语句的更多相关文章
- JavaScript基础四
1.13 Js中的面向对象 1.13.1 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或 ...
- javascript基础知识-语句
关于javascript语句,有下面一些有趣的用法. 1.空语句的使用: 空语句只包含一个";",那在什么时候可以使用呢? 例: //初始化一个数组a for(i = 0;i &l ...
- JavaScript 基础(四) 循环
JavaScript的循环有两种,一种是for 循环,通过初始条件,结束条件和递增条件来循环执行语句块: var x = 0; var i; for(i=1; i <=10000; i++){ ...
- Javascript基础四(数组,字符,对象,日期)
第一节:数组 1.数组的概念及定义 可以存放一组数据: 当需要操作多个数据时: 2.数组的创建方式 var arr1 = [1,2,3]; //字面量方式 var arr2 ...
- JavaScript 基础四
遍历对象的属性 for...in 语句用于对数组或者对象的属性进行循环操作. for (变量 in 对象名字) { 在此执行代码 } 这个变量是自定义 符合命名规范 但是一般我们 都写为 k 或则 k ...
- JavaScript 基础(四) - HTML DOM Event
HTML DOM Event(事件) HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript.下 ...
- JavaScript基础语句
一.前言: 有过学习其他语言的经历,会比较好上手.但是,没有学过也无关大雅.只要认真学,都会学好.毕竟,都只是一些基础的语句.关键在于要会运用. 掌握好语句的嵌套,以及要的逻辑思维能力,就已经成功一大 ...
- 前端(十二)—— JavaScript基础操作:if语句、for循环、while循环、for...in、for...of、异常处理、函数、事件、JS选择器、JS操作页面样式
JavaScript基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通 ...
- javascript基础入门之js中的结构分支与循环语句
javascript基础入门之js中的结构分支与循环语句 程序的结构①顺序结构:自上而下:②选择(分支)结构:多条路径,根据不同的条件,只执行其中一个:③循环结构:重复某些代码④配合特定的语句实现选择 ...
随机推荐
- HOJ———丢手绢
hide handkerchief Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- [学习笔记]agileone安装登陆报错,localhost重定向次数过多
1.找到.htaccess文件 2.修改RewriteEngine 参数为off即可
- 对于行高(line-height)的一些理解
刚一开始学习这个特性的时候,总是出一些当时看起来很奇怪的问题.现在决定重新整理一下.毕竟使用css,十行揉在一起凑出效果是一种使用,知道为什么会有这种效果也是一种使用.我们需要做一些测试,所以首先需要 ...
- SIGPIPE信号
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include &l ...
- CodeForces 676D Theseus and labyrinth
最短路. $dis[i][j][k]$记录到点$(i,j)$,门的状态为$k$时的最短路.转移的时候有$8$种方案,即直接走向周围四个点,或者进行旋转.比较烦的是判断两个相邻的点在状态$k$下是否连通 ...
- python向服务器发送邮件事例
import osimport sysimport re __author__ = 'xiaoming' import requestststr = '<div>\n<ul>\ ...
- db2 表空间容器调整
1.查看当前容器的分布,并确定如何调整 db2look -d sample -l -cor -dp -o dd.sql 2.给表空间添加容器 db2 "alter tablespace tb ...
- DEBUG 调试
1.Step Into (also F5) 跳入 2.Step Over (also F6) 跳过 3.Step Return (also F7) 执行完当前method,然后return跳出此met ...
- jquery 使用attr() 函数对复选框无效的原因
复选框是网站开发的时候经常用到的网页标签之一,常见的在页面上对复选框的操作包括取值和修改复选框的状态.在jquery中,常见的操作标签的值得函数为attr,然而在操作复选框的时候,通常采用的却是pr ...
- Oracle 锁模式
0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X ...