好好学一遍JavaScript 笔记(二)

 

  
  
  
  
  1. /**  
  2.   * encodeURI跟encodeURIComponent的区别在于encodeURI不对  
  3.   * 特殊字符进行编码如:冒号、前斜杠、问号和英镑符号.  
  4.   * 而encodeURIComponent则对它发现的所有非标准字符进行编码.  
  5.   */   
  6.  var d = "古道西风";    
  7.  //这样的URL在后台转码获取过后就可以解决get方式提交的乱码问题了.   
  8.  <%--var url = "<%=path%>/users.action?name="+encodeURI(d);--%>   
  9.  //后台action或者servlet这样转码获取    
  10.  //String Name=new String(URLDecoder.decode(request.getParameter("name"),"utf-8"));   
  11.       
  12.  alert(encodeURI(d));           
  13.  alert(encodeURIComponent(d));   
  14.     
  15.  /**  
  16.   * 自然还有解码方法:decodeURI跟decodeURIComponent  
  17.   *   
  18.   */   
  19.  alert(decodeURI(encodeURI(d)));     
  20.  alert(decodeURIComponent(encodeURIComponent(d))); 

javaScript——Math:

  
  
  
  
  1. /**  
  2.   * 判断一组数中的最大值  
  3.   */   
  4.  var iMax = Math.max(3,5,56,7,13,79);   
  5.  alert(iMax);     
  6.     
  7.  /**  
  8.   * 判断一组数中的最小值  
  9.   */   
  10.  var iMin = Math.min(3,5,56,7,13,79);   
  11.  alert(iMin);   
  12.     
  13.  /**  
  14.   * 返回数字的绝对值  
  15.   */   
  16.  alert(Math.abs(-9));  

  
  
  
  
  1. /**  
  2.   * 把小数舍入成整数  
  3.   * ceil 表示向上取整  
  4.   * round 常规、4舍5入  
  5.   * floor 表示向下取整  
  6.   */   
  7.  alert(Math.ceil(25.1));  //out26   
  8.  alert(Math.round(25.6));  //out26     
  9.  alert(Math.floor(25.9));  //out25 

  
  
  
  
  1. //常数;一个用作自然对数的底的数学常数,表示为 e。e 的近似值为 2.718281828459045。   
  2. //alert(Math.E);   
  3. /**  
  4.  * exp()方法用于把Math.E升到指定的幂(mi)  
  5.  * log()方法用于返回特定的数字的自然对数  
  6.  * pow()方法用户把指定的数字升到指定的幂  
  7.  * sqrt()返回指定数字的平方根   
  8.  * acos(x)       返回x的反余弦值  
  9.  * asin(x)       返回x的反正弦值  
  10.  * atan(x)       返回x的反正切值  
  11.  * atan2(y,x)    返回y/x的反余弦值  
  12.  * cos(x)        返回x的余弦值  
  13.  * sin(x)        返回x的正弦值  
  14.  * tan(x)        返回x的正切值  
  15.  */   
  16. alert(Math.log(Math.exp(12)));      
  17.    
  18. alert(Math.pow(2,10));  //1024   
  19.    
  20. /**  
  21.  * 数字的平方根就是它的2/1次幂  
  22.  * 2的2/1次幂就是2的平方根  
  23.  */   
  24. alert(Math.sqrt(4));   

  
  
  
  
  1. /**  
  2.   * Math的random()方法   
  3.   * 该方法返回0到1之间的随机数、不包括0和1  
  4.   */   
  5.  alert(Math.random());   
  6.     
  7.  /**  
  8.   * 返回iFirstValue到iLastValue的之间(包括)的随机数    
  9.   * @param {Object} iFirstValue 起始值  
  10.   * @param {Object} iLastValue 结束值  
  11.   * @return {TypeName}   
  12.   */   
  13.  function selectFrom(iFirstValue,iLastValue){   
  14.      var iChoices = iLastValue - iFirstValue + 1 ;   
  15.      return Math.floor(Math.random() * iChoices + iFirstValue) ;   
  16.  }    
  17.  //返回1到9的随机数、包括1跟9   
  18.  alert(selectFrom(1,9));     
  19.     
  20.  /**  
  21.   * 随机获取数组中的元素  
  22.   */   
  23.  var array = new Array(45,452,451,4,42,437,343);    
  24.  alert(array[selectFrom(0,array.length-1)]);  

javaScript——创建对象(Object):

类工厂方式:

  
  
  
  
  1. /**  
  2.   * 类工厂  
  3.   */   
  4.  function createCar(sColor,iDoors,iMpg){   
  5.      var oTempCar = new Object;   
  6.      oTempCar.color = sColor;   
  7.      oTempCar.doors = iDoors ;   
  8.      oTempCar.mpg = iMpg ;   
  9.      oTempCar.showColor = function(){   
  10.          alert(this.color);   
  11.      };   
  12.      return oTempCar ;     
  13.  }   
  14.  var oCar1 = createCar("red",5,33);   
  15.  var oCar2 = createCar("blue",6,23);   
  16.  alert(oCar1.color);     
  17.  oCar2.showColor() ;  

类工厂方式二:

  
  
  
  
  1. /**  
  2.   * 类工厂2  
  3.   */   
  4.  function showColor(){   
  5.      alert(this.color);   
  6.  }   
  7.     
  8.  function createCar(sColor,iDoors,iMpg){   
  9.      var oTempCar = new Object;   
  10.      oTempCar.color = sColor;   
  11.      oTempCar.doors = iDoors ;   
  12.      oTempCar.mpg = iMpg ;   
  13.      oTempCar.showColor = showColor;     
  14.      return oTempCar ;     
  15.  }        
  16.  var oCar1 = createCar("red",5,33);   
  17.  var oCar2 = createCar("blue",6,23);   
  18.  alert(oCar1.color);     
  19.  oCar2.showColor();   

构造函数:

  
  
  
  
  1. /**  
  2.   * 构造函数  
  3.   * @param {Object} sColor  
  4.   * @param {Object} iDoors  
  5.   * @param {Object} iMpg  
  6.   * @memberOf {TypeName}   
  7.   */   
  8.  function Car(sColor,iDoors,iMpg){   
  9.      this.color = sColor;   
  10.      this.doors = iDoors ;   
  11.      this.mpg = iMpg ;   
  12.      this.showColor = function(){   
  13.          alert(this.color);   
  14.      };   
  15.  }      
  16.  var oCar1 = new Car("red",5,33);   
  17.  var oCar2 = new Car("blue",6,23);   
  18.  alert(oCar1.color);     
  19.  oCar2.showColor();   

原型方式:

  
  
  
  
  1. /**  
  2.   * 原型方式  
  3.   */   
  4.  function Car(){   
  5.  }   
  6.  Car.prototype.color = "red";   
  7.  Car.prototype.doors = 2 ;   
  8.  Car.prototype.mpg = 23 ;   
  9.  Car.prototype.array = new Array(1,2);   
  10.  Car.prototype.showColor = function(){   
  11.      alert(this.color);   
  12.  };   
  13.  var oCar1 = new Car();   
  14.  var oCar2 = new Car();   
  15.  oCar1.color = "blue";   
  16.  oCar1.array.push(3,4) ;    
  17.  alert(oCar1.color);       
  18.  alert(oCar2.color);    
  19.       
  20.  //由于Array是引用值、array都指向同样数组   
  21.  alert(oCar1.array);   
  22.  alert(oCar2.array);   

联合使用构造函数和原型方式:

  
  
  
  
  1. /**  
  2.   * 联合使用构造函数和原型方式、就可像用其他程序设计语言一样创建对象。  
  3.   * 这种概念非常简单、即用构造函数定义对象的所有非函数属性、用原型方式定义对象的函数属性(方法)。  
  4.   * 结果所有函数都只创建一次、而每个对象都具有自己的对象属性实例。    
  5.   */   
  6.  function Car(sColor,iDoors,iMpg){   
  7.      this.color = sColor;   
  8.      this.doors = iDoors ;   
  9.      this.mpg = iMpg ;   
  10.      this.array = new Array(1,2);   
  11.      this.showColor = function(){   
  12.          alert(this.color);   
  13.      };   
  14.  }    
  15.  Car.prototype.array = function (){   
  16.      alert(this.color);     
  17.  };      
  18.  var oCar1 = new Car("red",5,33);   
  19.  var oCar2 = new Car("blue",6,23);   
  20.  oCar1.array.push(4,9);   
  21.  alert(oCar1.array);     
  22.  alert(oCar2.array);   

动态原型方法:

  
  
  
  
  1. /**  
  2.   * 动态原型方法  
  3.   */   
  4.  function Car(sColor,iDoors,iMpg){   
  5.      this.color = sColor;   
  6.      this.doors = iDoors ;   
  7.      this.mpg = iMpg ;   
  8.      if(typeof Car._initialized == "undefined"){   
  9.          Car.prototype.showColor = function(){   
  10.              alert(this.color);    
  11.          };   
  12.          Car._initialized = true ;   
  13.      }   
  14.  }        
  15.  var oCar1 = new Car("red",5,33);      
  16.  var oCar2 = new Car("blue",6,23);     
  17.  alert(oCar1.color);     
  18.  oCar2.showColor();   

混合工厂方式:

  
  
  
  
  1. /**  
  2.   * 混合工厂方式  
  3.   */   
  4.  function Car(){   
  5.      var oTempCar = new Object;   
  6.      oTempCar.color = "red";   
  7.      oTempCar.doors = 2 ;   
  8.      oTempCar.mpg = 23 ;   
  9.      oTempCar.showColor = function(){      
  10.          alert(this.color);    
  11.      };   
  12.      return oTempCar ;     
  13.  }   
  14.  var oCar1 = new Car();   
  15.  var oCar2 = new Car();       
  16.  alert(oCar1.color);     
  17.  oCar2.showColor();  

利用json创建对象:

  
  
  
  
  1. /**  
  2.   * 利用json创建对象  
  3.   */   
  4.  var Car = {};   
  5.  Car.color = "red";   
  6.  Car.doors = 2;   
  7.  Car.mpg = 23;   
  8.  Car.array = new Array(1,2);   
  9.  Car.showArray = function(){   
  10.    alert(this.array);     
  11.  };   
  12. var oCar = Car;   
  13. oCar.showArray();   

目前使用最广泛的是混合的构造函数/原型方式。此外、动态原型方法也很流行、
在功能上与构造函数/原型方式等价。可采用这两种方式的任何一种、
不过不要单独使用经典的构造函数或原型方式、因为这样会给代码引入问题。

你可能感兴趣的:(JavaScript,基础,学习,职场,休闲)