js在实例化对象后,可以对这个对象增加属性和属性值,并且还可以通过delete一元操作符来删除对象的属性。
var o = new Object(); o.name = "langsin"; alert(o.name); delete o.name; alert(o.name);
每个方法即对象都有内置的arguments对象和length属性
arguments对象为数组类型,由调用方法时实际传递的参数组成,可以通过arguments.length来获得实际传递的参数的个数,也可以通过arguments[0]、arguments[1]等获得实际传递的各个参数的值
length属性为方法所期望的参数的个数,即定义方法时所写的参数的个数
示例:
function add(number){ alert("实际传递的参数个数为: " + arguments.length); } alert("方法add期望的参数个数为: " + add.length);//运行结果:“方法add期望的参数个数为: 1” add(1,2,3);//运行结果:“实际传递的参数个数为:3”
js的参数可传可不传,可多传可少传,都不报错的
如:
function t() { alert(arguments.length); } t(1,2,7);
o = o || {} 表示:如果o为null或undefined,则将o初始化空对象(即{}),否则o不变。目的是防止o为null或未定义的错误。
以下情况皆为声明js的全局变量
1:在function函数外使用var关键字显示声明变量
2:不使用var关键字声明就直接赋值的变量,无论是否在function函数内,都是属于隐式声明的全局变量
3:使用window关键字声明的变量,如:window.test = 5;
js使用常量
function validate(value){ if(!value){ alert('不存在'); location.href = '/errors/invalid.php'; } }
现在,我想把‘不存在’改为‘该数据不存在!’,把跳转路径也改了,我得回到函数中找到对应的代码去修改,而每次修改逻辑代码,都有可能引入错误的风险。所以我们可以把数据单独定义为常量,与应用逻辑分离:
var Constans = { ERRORMSG: '不存在', ERRORPAGE:'/errors/invalid.php' }; function validate(value){ if(!value){ alert(Constans.ERRORMSG ); location.href = Constans.ERRORPAGE ; } }