JavaScript

来源:互联网 发布:查端口8080是否被占用 编辑:程序博客网 时间:2024/06/05 06:18

JavaScript

函数

一、嵌套函数

嵌套函数,就是在一个函数的内部定义另外一个函数。不过在内部定义的函数只能在内部调用,如果在外部调用,就会出错。

二、递归函数

递归函数用于让一个函数从其内部调用其本身。不过需要注意的是,如果递归函数处理不当,就会使程序陷入“死循环”。为了防止“死循环”的出现,可以设计一个做自加运算的变量,用于记录函数自身调用的次数,如果次数太多就让它自动退出循环。

function 递归函数名(参数1){    递归函数名(参数2)}

在定义递归函数时,需要2个必要条件:

(1)首先包括一个结束递归的条件;

(2)其次包括一个递归调用的语句;

三、内置函数

eval()函数简介

在JavaScript中,eval()函数可以把一个字符串当做一个JavaScript表达式一样去执行它。

string表示一个字符串,是eval()函数必选参数。eval()函数是有返回值的,如果参数字符串是一个表达式,就会返回表达式的值。如果参数字符串不是表达式,也就是没有值,那么就会返回“undefined”

<script type="text/javascript">        eval("x=10;y=20;document.write(x*y)");        //输出200    </script>
isFinite()函数简介

在JavaScript中,isFinite()函数用来确定某一个数是否是一个有限数值。

document.write(isFinite(123));   //true
isNaN()函数简介

在JavaScript中使用isNaN()函数来判断一个值是否是NaN值。如果该值为非数字值或NaN值,返回true,否则返回false。

那什么叫NaN值呢?啊,很简单:

NaN = “Not a Number”(非数字值)

顾名而思义,现在大家都懂了什么叫NaN值吧。其实数字型数据(整型或浮点型)就不是NaN值,而非数字型(如字符串)就是NaN值。

       document.write(isNaN(123));      //false        document.write(isNaN("123"));    //false        document.write(isNaN("123jj"));   //true
parseInt()函数

parseInt()函数主要将首位为数字的字符串转化为数字。如果字符串不是以数字开头,则将返回NaN。(并且是int型)

     document.write(parseInt("12kkk"));     //12        document.write(parseInt("g12kkk"));   //NaN        document.write(parseInt(12.56));     //12
parseFloat()函数

parseFloat()函数主要将首位为数字的字符串转化为浮点型数字。如果字符串不是以数字开头,将返回NaN。

字符串对象String

转换类

toUpperCase()

把字符串转换成大写

 var str = "hujiang";        document.write(str.toUpperCase());   //HUJIANG
tolowerCase()

把字符串转换成小写

查找类

indexOf()

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

 var str = "hujiang shuaige";        document.write(str.indexOf("hu")+"<br/>");   //0
lastIndexOf()

indexOf() 方法可返回某个指定的字符串值在字符串中最后出现的位置。

        var str = "hujiang shuaige";        document.write(str.lastIndexOf("hu")+"<br/>");   //9
charAt()

获取字符串中指定位置的字符

var str = "hujiang";        document.write(str.charAt(0));    //h

截取类

substring()

substring()方法来提取字符串中的某一部分字符串。

字符串.substring(开始位置,结束位置)
var str1="hujiangdd";        var str2=str1.substring(3,5);        document.write(str2);     //ia
substr()

substr() 的参数指定的是子串的开始位置和长度

var str="Hello world!"document.write(str.substr(3))       //lo world!document.write(str.substr(3,7))     //lo worl

组合类(和正则表达式组合使用)

split()

把字符串按指定字符分割成数组

字符串.split(分割符)
 var str ="I love hujiang";        var arr=new Array();        arr=str.split(" ");        console.log(arr);   //["I", "love", "hujiang"]
replace()

replace()方法常常用于在字符串中用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子串。

strObject.replace(原字符,替换字符)    strObject.replace(正则表达式,替换字符)  //匹配正则表达式
  var str ="I love javascript!";        var str_new=str.replace("javascript","hujiang");        document.write(str_new);      //I love hujiang!
match()

match()方法可以从字符串内检索指定的值,或者找到一个或多个正则表达式的匹配.有,则返回该值。无,则返回null

         var str="Hello World!";        document.write(str.match("world")+"<br/>");   //null        document.write(str.match("World")+"<br/>");   //World

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。有,则返回该值索引。无,则返回-1

         var str = "hujiang shuaige";        document.write(str.search("ge")+"<br/>");    //13        document.write(str.search("hh"));            //-1

连接类

concat()

可以使用concat()方法来连接2个或多个字符串。返回新的字符串

字符串1.concat(字符串2,字符串3,…,字符串n);
var str1="hu";        var str2="jiang";        var str3="dd";        var str=str1.concat(str2,str3);        document.write(str);       //hujiangdd

Array对象

slice() 获取数组中的某段数组元素 unshift() 在数组开头添加元素 push() 在数组末尾添加元素 shift() 删除数组中第一个元素 pop() 删除数组最后一个元素 toString() 将数组转换为字符串 join() 将数组元素连接成字符串 concat() 多个数组连接为字符串 sort() 数组元素正向排序 reverse() 数组元素反向排序

栈方法

push()

push()方法是在数组的末尾添加元素,并且返回新数组的长度

var arr=new Array("hu","hh");        console.log(arr.push("jQ", "Aj"));   //4        console.log(arr);          //["hu", "hh", "jQ", "Aj"]

pop()

pop()方法删除并返回数组中的最后一个元素,并且返回最后一个元的值

 <script type="text/javascript">        var arr=new Array("hu","hh");        console.log(arr.pop());          //hh    </script>

队列方法

unshift()

unshift()方法在数组开头添加元素,并且返回新数组的长度

 var arr=new Array("hu","hh");        console.log(arr.unshift("jQ", "Aj"));    //4        console.log(arr);     //["jQ", "Aj", "hu", "hh"]

shift()

shift()方法来删除数组中第一个元素,并且返回第一个元素的值。

       var arr=new Array("hu","hh");        console.log(arr.shift());    //hu

排序方法

sort()

sort()方法对数组元素进行大小比较排序。

        //升序比较函数        function asc(a,b)        {            return a-b;       //根据返回数值的正负进行排序        }        //降序比较函数        function des(a,b)        {            return b-a;        }       var arr=new Array(3,9,1,12,50,21);        arr.sort(asc);        document.write("升序后的数组元素"+arr.join(","));        document.write("<br/>");        arr.sort(des);        document.write("降序后的数组元素"+arr.join(","));

reverse()

reverse()方法将数组中的元素反向排列。注意,reverse()是一种“排列”方法,而不是“排序”方法。

 var arr1= new Array("html","css","javascript");   console.log(arr1.reverse());        //["javascript", "css", "html"]

操作方法

concat()

concat()方法连接两个或多个数组。该方法不会改变现有的数值,而仅仅会返回被连接数组的一个副本。

 var arr1=new Array("hu","hh");  var arr2 = new Array("html","css","javascript");   console.log(arr1.concat(arr2));      //["hu", "hh", "html", "css", "javascript"]

slice()

slice()方法来获取数组中的某段数组元素。该方法不会改变原始数组。

数组对象.slice(start,end)
var arr=new Array("hu","hh","jj","jiang","ji");        console.log(arr.slice(1,3));   //["hh", "jj"]

join()

join()方法把数组中的所有元素连接成为一个字符串

       var arr=new Array("hu","hh");       console.log(arr.join(','));    //hu,hh

splice()

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。

var arr = new Array(6)        arr[0] = "George"        arr[1] = "John"        arr[2] = "Thomas"        arr[3] = "James"        arr[4] = "Adrew"        arr[5] = "Martin"        document.write(arr + "<br />")  //George,John,Thomas,James,Adrew,Martin        //在index 为2 的位置添加一个元素:        arr.splice(2,0,"William")        document.write(arr + "<br />")  //George,John,William,Thomas,James,Adrew,Martin        //删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素        arr.splice(2,1,"Jilliam")        document.write(arr + "<br />")  //George,John,Jilliam,Thomas,James,Adrew,Martin        //将删除从 index 2 开始的三个元素,并添加一个新元素来替代被删除的元素        arr.splice(2,3,"William")            document.write(arr)        //George,John,William,Adrew,Martin

查找方法

indexOf()

lastIndexOf()

迭代方法

every()

filter()

forEach()

map()

some()

Math对象的方法

ceil(x) 对数进行上舍入 floor(x) 对数进行下舍入 round(x) 把数四舍五入为最接近的整数 min(x,y) 返回x和y中的最小值 random() 返回0~1之间的随机数 abs() 求一个数的绝对值
document.write( Math.ceil(0.4) );     //1document.write( Math.ceil(0.6));      //1document.write(Math.floor(0.6) );      //0 document.write( Math.floor(-1.1) );    //-2
var num=Math.floor(Math.random()*10+1);  //返回1到10的随机数var num=Math.floor(Math.random()*9+2);   //返回2到10的随机数

事件

JavaScript鼠标事件

onclick 鼠标单击事件 ondbclick 鼠标双击事件 onmouseover 鼠标移入事件 onmouseout 鼠标移出事件 onmousemove 鼠标移动事件 onmousedown 鼠标按下事件 onmouseup 鼠标松开事件
        var btn = document.getElementById("btn");        var e = document.getElementById("hj");        btn.onmousedown = function () {            e.style.color = "red";        }        btn.onmouseup = function () {            e.style.color = "black";        }

JavaScript键盘事件

onkeypress事件

onkeypress事件是在键盘上的某个键被按下到松开整个过程中触发的事件

onkeydown事件

键盘的按键被按下时触发

onkeyup事件

onkeyup事件是在键盘的某个键被按下之后松开的一瞬间触发的事件

JavaScript表单事件

onfocus/onblur

onfocus表示获取焦点触发的事件,onblur表示失去焦点触发的事件

具有获得焦点和失去焦点事件的元素有3个:

  • (1)单行文本框text;

  • (2)多行文本框textarea;

  • (3)下拉列表select;

onchange事件

用户在单行文本框text和多行文本框textarea输入文本时,由于文本框内字符串的改变将会触发onchange事件。此外,在下拉列表select中一个选项的状态改变后也会触发onchange事

具有获得onchange事件的元素有3个:

  • (1)单行文本框text;
  • (2)多行文本框textarea;
  • (3)下拉列表select;

onselect事件

在JavaScript中,当用户选中单行文本框text或多行文本框textarea的文本时,会触发onselect事件。onselect事件的具体过程是从鼠标按键被按下,到鼠标开始移动并选中内容的过程。这个过程并不包括鼠标键的放开。

<textarea id="txt" rows="5" cols="20"></textarea><br />    输入字符长度为:<span id="num"></span>    <script type="text/javascript">        var e = document.getElementById("txt");        var n = document.getElementById("num");        e.onchange = function () {            var len = e.value.length;            n.innerText = len;        }    </script>

JavaScript页面相关事件

onload(加载事件)

window.onload=function(){    ……}

onresize(页面大小事件);

对于页面大小改变的事件我们用的是onresize。这个事件常用于固定浏览器的大小

onerror(出错事件);

当文档或图像加载过程中发生错误时就会触发onerror事件。

其他事件

onscroll 事件:滚动条发生滚动时触发

window.onscroll = function () {                var scrollTop =   document.documentElement.scrollTop || document.body.scrollTop;                if (scrollTop > 200) {                    show(oTop);                } else if (scrollTop <= 200) {                    hide(oTop);                }            };