标签:
函数
//递归函数 function factorial(n){ if(n<=1){ return 1; } else { return n*arguments.callee(n-1); } } console.log(factorial(4));//24
函数作用域是指函数内声明的所有变量在函数体内始终是可见的,意味着变量在声明之前甚至已经可用,被称为声明提前,即函数里所有声明的所有变量(但不涉及赋值)都被提前至函数的顶部
全局变量在程序中始终都是有定义的。局部变量在声明它的函数体内以及其所嵌套的函数内始终是有定义的
函数声明语句和函数定义表达式的区别
二者都创建了新的函数对象,但函数声明语句中的函数名是一个变量名,变量指向函数对象,和通过var声明变量一样,函数定义语句中的函数被显示的提前到脚步或函数的顶部。因此它们在整个脚本和函数内都是可见的。使用var的话,只有变量声明提前了-变量的初始化代码仍然在原来的位置。然而使用函数声明语句的话,函数名称和函数体均提前;脚步中的所有函数和函数中所有嵌套的函数都会在当前上下文中其他代码之前,也就是说,可以在声明一个函数之前调用它。
for(variable in object)
statement
variable通常是一个变量名,也可以是一个可以产生左值的表达式或者一个通过var 语句声明的变量,总之必须是一个使用一个适用于赋值表达。式左侧的值。javascipt会议吃枚举对象的属性来执行循环,在每次循环之前,javascript都会先计算variable表达式的值,并将属性名(一个字符串)赋值给它。
只要for/in循环中variable的值可以当作赋值表达式的左值,它可以是任意表达式。每次循环都会计算整个表达式,也就是说每次循环它计算的值有可能不同.
for/in循环可以象枚举对象属性一样枚举数组的索引
var o={x:1,y:2,z:3}; var a=[]; var i=0; for(a[i++] in o); console.log(a);//["x","y","z"] for(j in a) { console.log(j) }//1,2,3
当break和标签一块使用时,程序将跳转到这个标签所标识的语句块的结束,或者直接终止这个闭合语句块的执行。当你希望通过break来跳出就近的循环体或者switch语句时,就会用到带标签的break语句
标签:
原文地址:http://www.cnblogs.com/yhf286/p/5039992.html