#传递参数
- ECMAScript中所有函数的参数都是按值传递的。函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。基本类型值传递如同基本类型变量的复制一样,而引用类型值的传递,则如同引用类型变量的复制一样。
示例证明:ECMAScript中所有函数的参数都是按值传递的
function setName(obj){
obj.name = "aa";
obj = new Object();
obj.name="bb";
}
var person = new Object();
setName(person);
console.log(person.name); //输出aa
该例中,当在函数内部重写obj时,这个变量引用的就是一个局部对象了。而这个局部对象会在函数执行完毕后立即被销毁。
- 检测基本数据类型时用typeof,检测引用类型时,用instanceof。如:colors instanceof Array //变量colors是Array吗 这是判断某个对象是不是数组类型,在ECMAScript中添加了Array.isArray()函数来一个值判断是不是数组。Array.isArray([1,2,3]); //返回true
- 对于有块级作用域的语言来说,for语句,if语句内所定义的变量,只在语句内有效。而对于javascript和php来说,在上述语句内定义的变量依旧适用于语句外的执行环境。