1. 类型检查
(1)使用typeof
var oStr="123";
if (typeof oStr == "string") 括号 小写
{
var num=parseInt(oStr);
alert(num)
}
(2)使用构造函数属性
var oStr="123"; if (oStr.constructor == String) { var num=parseInt(oStr); alert(num) }
2. 作用域是由函数划分的,而不是由块划分的(比如:while if for语句的中间)。
var foo="test";
if(true){
var foo="new test"; 将foo设置为new test
alert(foo=="new test"); true
}
function test()
{
var foo="old test";
}
test();
alert(foo =="new test"); true
3. 代码总是有一个上下文对象(代码处在该对象内)。
var obj={
yes: function () yes,no为函数
{
this.val=true;
},
no: function ()
{
this.val=false;
}
};
alert(obj.val==null); 发现obj对象没有val属性
obj.yes(); 执行了yes函数后,将val属性与obj对象关联起来
alert(obj.val==true);
window.no=obj.no; 把window.no指向obj.no并执行
window.no();
alert(obj.val==true); obj对象的val不变(因为no的上下文已经变成window对象了)
alert(window.val==false); 而window的属性被更新。
4. 创建简单对象,并设置属性
var obj=new Object();
obj.val=5;
obj.click=function (){
alert("hello");
}
//等价代码,结合键值对(key/value pair)来定义属性
var obj={
val : 5,
click: function (){
alert("hello");
}
};
5.