前端宝典【犀牛书】05(语句)

表达式语句、声明语句、赋值语句、循环语句、跳出语句、条件语句

一、循环语句的空语句:

for( i = 0; i < a. length; a[ i++] = 0) /* empty */ ;

 

二、声明语句

  变量声明

 

for( var i = 0; i < 10; i++) console. log( i);

for( var i = 0, j= 10; i < 10; i++, j--) console. log( i* j);     //这里的var声明的变量也会提前,多次声明同一个变量是无所谓的。

for( var i in o) console. log( i);

  函数声明

 

function hypotenuse( x, y) {

  return Math. sqrt( x* x + y* y); //下一 节会 讲到 return

}

function factorial( n) { //一个 递归 函数

   if (n <= 1) return 1;

  return n * factorial( n - 1);

}

1、函数声明会将函数的名字当成一个变量指向函数对象,函数声明也不能被delete。

2、函数声明一般不写在其他语句内,如if、switch。

  原因:不具备可移植性,不好进行函数调用

3、函数声明语句通常在js的顶层作用域内,也可以在嵌套函数的顶层作用域内。

 

三、条件语句

  if:                if后面必须跟随一条语句,可以是语句块也可以是上面写到的 //empty;

  siwtch:        case 比较的是恒等于,case中因避免调用表达式和赋值表达式;(java、c、c++中的case是常量并且会被编译成跳转表,执行时很高效)

             default可以放在语句的任何地方,但按照习惯应该放在末尾便于阅读。

 

三、循环语句

  while:    

while (expression) 
       statement

  do/while:    

do statement

while (expression);

  for:    

for( initialize ; test ; increment) statement

 

//等价于while语句 

initialize;

while( test) {

  statement increment;

}

//不管是否有continue都要执行自增表达式,但是break语句又会导致自增语句多运行一次,很难模拟二者表达式完全相同。

for( initialize; test; increment) body;

initialize ;

while( test ) { try { body ; } finally { increment ; } }

 

//多个变量

var i, j; for( i = 0, j = 10 ; i < 10 ; i++, j--) sum += i * j;

 

//返回第一个不包含o.next的属性

function tail( o) {              // 返回 链 表 的 最后 一个 节点 对象

  for(; o. next; o = o. next) /* empty */ ; // 根据 判断 o. next 是不是 真 值 来 执行 遍历

  return o;

}

   for in:

1、for in只遍历可枚举的属性,js内置方法不可枚举eg:toString(),内置对象属性也不可枚举。

2、for in循环体删除枚举的属性,属性将不再枚举

    循环体定义对象新属性,这些属性也不会枚举(书上说有办法实现,读者后续更新。。。。)

3、for in 枚举的顺序

    按属性定义顺序

    如果是直接量定义对象即{},则按属性写法的顺序来 


for (variable in object)

  statement

//如果表达式是null、undefined解释器会跳过继续后面的代码

 

//将属性值赋值给数组

var o = {x: 1, y: 2, z: 3};

var a = [], i = 0;

for( a[ i++] in o) /* empty */;

 

四、跳转语句

break 

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

continue

continue 语句 是 终止 本次 循环 的 执行 并 开始 下一 次 循环 的 执行。

return

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

throw

throw 语句触发或者“ 抛出” 一个异常,它是与 try/ catch/ finally 语句一同 使用 的, 这些 语句 指定了处理异常的代码逻辑。

标签语句

identifier: statement

mainloop: while( token != null) { 
// 忽略 这里 的 代码... 
continue mainloop; // 跳 转到 下一 次 循环
 // 忽略 这里 的 代码... 
}

 

五、其他语句

with:(简称扩展作用域),查标识符访问作用域链,创建新变量使用的是赋值表达式,with语句会被忽略

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

 

with (object) 
statement

eg:

with( document. forms[ 0]) { // 直接 访问 表单 元素, 例如:

  name. value = "";

  address. value = "";

  email. value = "";

}

debugger和"use strict"请自行看书

 

posted @ 2022-07-10 22:27  肥瘦皆宜  阅读(50)  评论(0编辑  收藏  举报