js知识点

工作中遇到的一些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遍历数组可以非常容易得到所有的数组值,但是用for...in遍历Object不能得到数值

 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 + "&nbsp;&nbsp;<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,那么这个变量就是一个全局变量了
     
}
});

原文地址:https://www.cnblogs.com/xiang1336/p/3503418.html