初窥javaScrit权威指南,第五章语句

来源:互联网 发布:求多维数组最大值 编辑:程序博客网 时间:2024/05/17 03:24

表达式语句

具有副作用greeting = "hello"+"name";i*=3;++ --deletealert(greeting);window.close();Math.cos(x);

复合语句和空语句:

只需要用{} 包起来就算一个单独的语句:{ x = Math.PI; cx = Math.cos(x); console.log("cos(x)=" + cx);}注:语句块不需要;for(i = 0; a.length;a[i++] = 0)/*空语句*/;

声明语句:

var and function

条件语句:

if(expression) statement;if(expression){    statement1;} else {    statement2;}if(){}else if(){}else{}......
=== 来判断是否相同switch(x){  case 1:  // === 1 执行  // xxx   break;   //结束  case 2: // === 2 执行  //xxx  break;  // 结束}更好的例子:function convert(x) {switch(typeof x){    case 'number':    return x.toString(16);    case 'string':    return '"'+x+'"';    default:    return String(x);}} 

循环:

while(expression) statement;do     statementwhile(expression);for(initialize; test; increment){statement;}for(varibale in object)    statement;

跳转:
标签语句:

由语句前的标识符和冒号组成:identifier:statement;mainloop:while(token != null){        //忽略这里的代码    continue mainloop; // 跳转到下一次循环    //忽略这里的代码}

break语句:

break labelname;------var matrix = getData();  //得到一个二维数组var sum = 0,success =false; //将矩阵中的所有元素进行求和 comput_sum: if(matrix){  for(var x= 0;x <matrix.length; x++){    var row = matrix[x];    if(!row) break comput_sum;    for(var y=0;y<row.length;y++){     var cell = row[y];     if(isNaN(cell)) break comput_sum;     sum+=cell;}}success = true; }//break语句跳转到这里//如果在success == false的条件下到达这说明矩阵中右错误//否则将矩阵中所有的元素进行求和

return statement;

throw:

throw expression;throw new Error("x不能为负数");

try catch finally:

try{    var n = NUmber(prompt("请输入一个正整数"""));    //合法    var f = factorial(n);    //显示结果    alert(n+"| = "+f);} catch(e) {    //不合法执行    alert(e);} finally {  //一定会执行的部分}

其他语句:

with:with(object)  statement;这条语句会吧object添加到作用域链的头部,然后执行statement,最后把作用域链恢复到原来的状态。document.forms[0].address.value=...;...简写:with(document.forms[0]){    name.value="";    address.value="";    email.value="";}with语句不推荐使用。又难以优化,var f = document.forms[0];f.name.value="";f.address.value="";f.email.value="";只有在查找标识符的时候才会用到作用链域。var(o) x = 1;如果对象0有一个属性x。则赋值x=1;如果没有,就重新定义了一个局部/全局变量x

debugger:

function f(o){if(o === undefined) debugger; //这一行代码只是用于临时调试。。。。 // 函数的其他部分}

use strict:

ECMAScript5引入的一条指令。说明之后的代码采用严格模式代码进行:主要区别:1.不能使用with2.变量都要声明3.调用的函数(不是方法) , thisundefined  怎么判断:var hasStrictMode=(function(){"use strict; return this === undefined"}());4. call() apply()  this是传入的第一个参数5. 只读的属性赋值和给不可扩展的对象创建新成员会抛出一个额类型错误。6. 函数传入的arguments对象拥有传入函数值的静态7. delete 后跟非法的标识符(如变量、函数、函数参数),会抛出异常8. 一个对象直接量中定义同名的参数会抛出9. 不允许8进制。。。。。
原创粉丝点击