从今天起我将通读Javascripts高级程序设计,并及时记录一些知识点与大家共享
关于标签
label 配合 continue break 可在嵌套循环中实现精准控制
xh1:for(.....){
xh2:for(....){
if(.){ continue xh1;}//退出循环2 执行循环1
if(.){ break xh1;}//退出循环2,循环1
}
}
//大量with 语句会导致程序性能下降
//switch 语句使用的是全等操作符,不进行自动类型转换
关于函数
//要么永远返回一个值,要么都不返回值
function(){
return;//返回undefined;
}
//函数参数只是提供便利,但不是必须的
//它们均可以通过一个叫arguments的类数组对象获得
function test(a,b){
alert(a+b);
}
//equals
function test(){
alert(arguments[0]+arguments[1]);
}
//So Js函数无法重载,只是覆盖
//函数参数传递的永远都是值
关于变量
//变量只是个名字,特定时间保存特定值
基本类型值是简单的数据段
引用类型值是指可能由多个值构成的对象
引用类型的值是按引用来访问的
变量复制
基本类型
老变量-复制值-创建新对象-赋值给新对象-赋值给新变量
var m=5;
var n=m; //n中的5只是m中5的副本
引用类型
复制后,值的副本是一个指针,两个对象变量因此指向同一个对象
var obj1=new Object();
var obj2=obj1;
obj1.name="change";
console.log(obj2.name)//change