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()
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对象
栈方法
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对象的方法
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鼠标事件
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); } };
- Javascript
- JavaScript
- javascript
- javascript
- javascript
- javascript
- javascript
- JavaScript
- javascript
- JavaScript
- Javascript
- javascript
- javascript
- JavaScript
- javascript
- javascript
- JavaScript
- javascript
- 数据类型和作用域链
- Hibernate 5.2.x 中 sessionFactory 的获取方式
- HBase安装配置
- matplotlib.colors(ListedColormap)
- Linux常用命令及软件更新
- JavaScript
- 枚举关于Flags特性的使用
- 小白之路—杨辉三角
- Dvwa漏洞测试之文件包含笔记
- cookie和sessiong
- 【BZOJ2761】【hash】[JLOI2011]不重复数字 题解
- 11.1模拟赛总结
- 欢迎使用CSDN-markdown编辑器
- BZOJ 5044 [Lydsy 九月月赛] 构造 解题报告