JS个人整理

 

   javascript是网景公司开发的用于与页面进行交互的脚本语言。javascript程序在浏览器端运行,一般写在.js结尾的文件中。主要的功能有表单验证(前端验证),与页面进行交互,生成动态的效果,获得浏览器相关的信息 等。

 

1.setTimeout 和 setInterval

setTimeout("function",time) 设置一个超时对象,执行一次。
setInterval("function",time) 设置一个超时对象,在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码。

不过还是有办法可以终止setTimeout和setInterval函数的执行。

当setInterval调用执行完毕时,它将返回一个timer ID,将来便可以利用该值对计时器进行访问,如果将该ID传递给clearInterval,便可以终止那段被调用的过程代码的执行了

 

2. navigator.userAgent 返回当前浏览器用户代标志

 

3、原生对象 

Object类有下面两个主要属性: 

❑constructor — 创建该对象的函数的引用,对于Object类本身来说,它指向的是浏览器原生的Object() 函数。 

❑prototype — 该对象的原型的引用。所有对象的原型默认为Object。  

Object类的一些方法: 

❑hasOwnProperty(property) —判断本对象是否拥有某一个属性,比如:o.hasOwnProperty(“name”)。

 ❑isPrototypeOf(object) — 判断本对象是否是另一对象的原型。 

❑propertyIsEnumerable(property) — 判断本对象的某属性是否是枚举类型(可以使用for…in)来获取每一个值。 

❑toString() — 输出本对象的字符串形式,依赖于其具体实现。 ❑valueOf() —与toString()相同。 

 

4、Number对象 

toExponential([fractionDigits]) :将数字按科学计数法格式返回,fractionDigits值小数点后保留的位数。

toFixed([fractionDigits]) :将数字按指定的小数点位数返回,fractionDigits值小数点后保留的位数。

toPrecision([precision]) :将数字按指定的精度返回(这个精度不是指小数点后几位),precision是指定的精度值。

 Number(): 转换的是整个值,如果字符串值能被完整地转换,Number()将判断是调用parseInt()方法还是调用 parseFloat()方法。"4.5.6 "将被转换为 NaN。

parseInt()和parseFloat(): 只转换第一个无效字符之前的字符串。 e.g:"4.5.6 "将被转换为 "4.5 "。 

 

formatValue = parseFloat(1.234e5.toString());  result:123400

 

5、array

shift: 删除数组第一个元素,并返回这个元素

unshift:向数组的开头添加一个或多个元素,并返回新的长度   e.g. unshift('-2','1');

splice: 删除元素,并向数组添加新的元素  

splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...

 

join: 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔

e.g. var a = [1,2,3,4,5]; var b = a.join("|"); //a:[1,2,3,4,5]   b:"1|2|3|4|5"

push: 向数组的末尾添加一个或更多元素,并返回新的长度

pop:删除数组最后一个元素,并返回这个元素

concent: 返回一个新数组,是将参数添加到原数组中构成的

e..g. var a = [1,2,3,4,5]; var b = a.concat(6,7); //a:[1,2,3,4,5]   b:[1,2,3,4,5,6,7]

slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5]   b:[3,4,5]

 

6、 Event

onblur:会在对象失去焦点时发生

oncontextmenu: 鼠标按下右键的时候发生

onscroll:拖动滚动条时发生

onresize: 会在窗口或框架被调整大小时发生

onmousewheel: ie、chrome下鼠标滚轮滚动时发生

DOMMouseScroll: 是标准下(ff)鼠标滚轮事件,鼠标滚轮滚动时发生

//-----

keyCode:在Event对象下获取用户按下键盘的哪个按键

preventDefault()阻止默认默认事件的绑定写法

cancelBubble =true 在Event对象下取消冒泡事件

 

7、继承

参考:http://yahaitt.iteye.com/blog/250338

//todo

 

8、正则表达式

  参考: http://www.jb51.net/article/21484.htm

e.g. 

       var pattern = /^[0-9]{1,20}$/;

        if (!pattern.exec(s)) return false;

 

        return true;

 

9、 js有5种数据类型(原数据):Undefined、Null、Boolean、Number、String 

  Undefined数据类型的值只有1个:undefined 
  Null数据类型的值只有1个:null 
  Boolean数据类型的值只有2个:true、false 
  Number的数据类型的值:所有的浮点数和整数 
  String的数据类型的值:所有的字符串 
  undefined是由null派生而来的 

 

10、强制类型转换

强制类型转换有3种:Boolean(value),Number(value),String(value),返回值类型(即用typeof运算符)都是原始类型的值 
  Boolean(value):只有value的值为null或0或""时,才为false,否则为true 
  Number(value);value为非数字时,结果为NaN(意思为not a number)

指定当前显示链接的位置:window.location.href="URL"

 

11、js不同于java的另一种特点是:js在实例化对象后,可以对这个对象增加属性和属性值,并且还可以通过delete一元操作符来删除对象的属性。 
  var o = new Object(); 
  o.name = "langsin"; 
  alert(o.name); 
  delete o.name; 
  alert(o.name);

 

12、window.open() 获取返回值
   var value=window.open('open.htm','window','width=200,height=200,left='+x+',top='+y);

子窗口:window.opener.document.all.code.value=text.value;

 

13、js拖动事件:dragstart、drag、dragend

 

14、offsetLeft:获得元素的左偏移量

offsetLeft和OffsetTop不是获得元素和页面的距离,只是获得元素和父元素的的距离

 所以要进行while循环一层层累加距离,最后得到元素和页面之间的距离

 

15、JS点击复制copy

  1. var Url2=document.getElementById("biao1");  
  2. Url2.select(); // 选择对象  
  3. document.execCommand("Copy"); // 执行浏览器复制命令  
  4. var clipBoardContent=this.location.href;  
  5. window.clipboardData.setData("Text",clipBoardContent);  
  6.  window.clipboardData.clearData(); 

详细地址: http://zzc1684.iteye.com/blog/2115935

 

16、判断是否Ajax请求 x-requested-with 请求头

在服务器端判断request来自Ajax请求(异步)还是传统请求(同步):两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数

 1、传统同步请求参数

    accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    accept-charset  gb2312,utf-8;q=0.7,*;q=0.7
    accept-encoding  gzip,deflate
    accept-language  zh-cn,zh;q=0.5
    cache-control  max-age=0
    connection  keep-alive
    cookie  JSESSIONID=1A3BED3F593EA9747C9FDA16D309AF6B
    host  192.168.101.72:8080
    keep-alive  300
    referer  XXX

    user-agent  Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)

 

  2、Ajax 异步请求方式

    accept  */*
    accept-language  zh-cn
    referer  xxx

    x-requested-with  XMLHttpRequest  //表明是AJax异步
    content-type  application/x-www-form-urlencoded,text/javascript
    accept-encoding  gzip, deflate
     user-agent  Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; QQDownload 598; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1)
    host  192.168.101.72:8080
    content-length  233
    connection  Keep-Alive
    cache-control  no-cache
    cookie  CSS=undefined; JSESSIONID=1B9AC25036290F7FB6823CCE1A24E541

 

  可以看到 Ajax 请求多了个 x-requested-with ,可以利用它,request.getHeader("x-requested-with"); 为 null,则为传统同步请求,为 XMLHttpRequest,则为 Ajax 异步请求。

 

 

 

others:  http://www.cnblogs.com/mbskys/articles/640506.html

  W3C webSite:  http://www.w3school.com.cn/js/

你可能感兴趣的:(js)