您的位置:首页 > Web前端 > JavaScript

js知识点

2014-01-03 11:47 405 查看
工作中遇到的一些js知识点:

1.判断一个变量是否已经定义

if (typeof (rechargestartdate) == "undefined") {
rechargestartdate = $("#recharge_startdate").val();
alert("此变量没有定义");
}


2.定义变量时如果没有写var,那么这个变量就变成了全局变量

rechargestartdate = $("#recharge_startdate").val();

3.一个函数做另一个函数的参数,不过做另一个函数的参数时要把这个函数的参数值带上


//函数作为另一个函数的参数
function test1(Func) {
Func(mydata);
}
function test3(data) {
alert(data);
}

window.onload = function () {

test1(test3("zhangran"));
}


4.使用函数的返回值时,定义的新变量名称不能和函数的函数名称一样,如果一样的话,调用函数会失败

var Test = Test(); //失败,出现错误
function Test(){
.......
return  value;

}


5.使用for...in遍历数组可以非常容易得到所有的数组值,但是用[b]for...in遍历Object不能得到数值[/b]

var newarray = new Array("123", "234", "245");
for (var i in newarray) {
alert(newarray[i]); // i = "0"或者 i="1".... 在数组里i是字符串,但是也能取到值,
}


for (var property in navigator) {
var str = "navigator" + "." + property; //在Object里property是字符串,但是navigator.property是undefined,

       document.write(property + "  <em>" + str + "</em><br/>");  //显示结果是appName navigator.appName ......而不是appName opera类似的结果
  }


6.

<script>
function makeCookie(form){
var when = new Date();
when.setTime(when.getTime() + 24*60*60*1000);
when.setFullYear(when.getFullYear() + 1);
    //var yname = document.form.yourname.value; 这样写会出错....,此form是函数的形参,不是表单的name

    var yname = form.yourname.value;
      
//var yname = document.getElementById("yourname").value;
//var ycolor = document.getElementById("yourcolor").value;
var ycolor = form.yourcolor.value;
var str = "visitor=" + yname + ";expires=" + when.toGMTString();
var colorstr = "color=" + ycolor + ";expires=" + when.toGMTString();
//document.cookie = escape(str);
//document.cookie = escape(colorstr);
document.cookie = encodeURI("visitor") + "=" + encodeURI(yname) + ";expires=" + when.toGMTString();
alert(document.cookie);// 没有cookie ,why?

}

function welcome(form){
you = form.yourname.name;
var position = document.cookie.indexOf("visitor=");
if(position != -1){
var begin = position + 8;
var end = document.cookie.indexOf(";",begin);
if(end == -1){end = document.cookie.length;}
you = decodeURI(document.cookie.substring(begin, end));
alert("welcome"+ you);

}else{alert("no cookies");}
}

</script>

<body onload="document.form1.reset()">
<form name="form1" >
your name:<br/>
<input type="text" name="yourname" id="yourname"/><br/>
your color:<br/>
<input type="text" name="yourcolor" id="yourcolor"/>
<br/>
<input type="button" value="make cookie" onclick="makeCookie(this.form)"/>
<input type="button" value="get cookie" onclick="welcome(this.form)"/>
</form>


7. 全局变量和局部变量

 对于全局变量和局部变量的作用域我很明白,但有时对某个变量是全局变量和局部变量会很糊涂,弄不明白。经过几个测试,基本明白了,如果有错的地方,还请指教。

$(document).ready(function () {
var t = true;//变量t对于ready的匿名函数而言是局部变量,但是它声明在函数scroll()外,那相对于scroll(){}t是全局变量,在scroll里t的值可以被使用、改变

  function scroll(){  
      t =!t;
      f="123";//在函数里定义变量时不写var,那么这个变量就是一个全局变量了
     
}
});



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: