js中函数的学习
1.函数的声明
声明一:function 函数名(形参1,形参2....){执行体}
<script type="text/javascript">
//java中方法的声明(方法头)由五部分组成
//访问修饰符 返回值类型 方法名 参数列表 异常列表
//private default protected public
//js中函数的声明只需要关键字function
function testA(a,b){
alert("我是函数声明一:"+a+b)
}
testA(1,2);
</script>
声明二:var 变量名 = new Function("形参1","形参2",...."执行体");
<script type="text/javascript">
var testB = new Function("a","b","alert('我是函数声明二:'+a+b)")
}
testB(2,3);
</script>
通过此声明方式得出:JS的函数也是对象
声明三:var 变量名 = function(形参1,形参2....){执行体}
<script type="text/javascript">
var testC = function(a,b){
alert("我是函数声明三:"+a+b)
}
testC(4,5)
</script>
2.函数的参数
在js中调用方法时,传递的实参的个数可以和形参个数不匹配,不会报错,按照形参的顺序进行赋值,未赋值的
形参使用默认值 undefined
局部变量:在函数中声明的变量,仅在该函数内部有效
全局变量:在全局区声明的变量,js只有一个全局区,即声明的js代码域
3.函数的返回值
<script type="text/javascript">
function testA(a,b){ //a=x=1 b=y=2
alert(a+b); //1+2=3
return 66; //遇见return返回到调用该方法语句处 继续向下执行
}
function testB(x,y,z){ //x=m=1 y=n=2 z=p=3
alert(testA(x,y)); //接收返回的数据并显示
}
function testC(m,n,p){ //m=1 n=2 p=3
alert(testB(m,n,p)); //testB方法没有返回值 但是进行了输出
}
testC(1,2,3); //3--->66--->undefined
}
</script>
在js中如果有返回值则直接返回,如果没有默认返回undefined
4.因为JS中函数也是对象----函数可以作为对象参数进行传递
注意:
在接收函数对象参数的方法中如果没有使用函数的执行符将函数进行执行操作,那么函数仅作为对象变量进行使用
如果使用了执行符,那么函数对象参数会作为函数进行执行
5.函数的执行符: ()
js中数组的学习
1.数组的声明:
1)var 数组名 = new Array(); 声明一个空的数组
2)var 数组名 = new Array(长度); 声明一个指定长度的数组 元素默认为空白
3)var 数组名 = new Array(5,2); 声明一个指定初始元素的数组
4)var 数组名 = [元素1,元素2,元素3,......]; 以简写的方式声明指定初始元素的数组
2.数组的使用
1)在使用JS数组时,可以不指定长度,数组的长度可以改变,不固定
2)js数组可以存储任意类型的数据
3)数组在赋值的时候,索引可以是不连续的,不会报错,使用空白自动补齐在取值时,如果使用一个没有内容的索引进行提取,返回默认值 undefined
3.数组的length属性的操作
1)获取:数组名.length
2)修改:数组名.length = 新的长度值
如果长度减小,自动从后面进行缩减
如果长度增大,在后面自动用空白补齐
4.数组的遍历
for循环
//使用for循环遍历数组
function testFor(){
var arr = [1,2,3,4,5];
for(var i=0;i<arr.length;i++){
document.write(arr[i]+","); //将元素信息打印在页面中
}
}
for-in循环
//使用for-in循环遍历数组
function testForIn(){
var arr = [1,2,3,4,5];
for(var i in arr){ //注意:遍历i依旧是索引 不是元素
document.write(arr[i]); //将元素信息打印在页面中
}
}
5.数组的常用函数
function testConcat(){
var a = [1,2,3,4,5];
var b = ["中国","新年"];
var c = "javascript";
var d = a.concat(b,c); //将数组a、b以及字符串进行连接,返回一个新的数组数据
alert(d[0]);
alert(d.length);
alert(d);
}
function testPop(){
var a = [1,2,3,4,5,"中国","新年","javascript"];
alert(a.pop()); //移除数组中的最后一个元素 返回移除的元素值
alert(a);
}
function testShift(){
var a = [1,2,3,4,5,"中国","新年","javascript"];
alert(a.shift()); //移除数组中的第一个元素 返回移除的元素值
alert(a);
}
function testPush(){
var a = [1,2,3,4,5,"中国","新年","javascript"];
alert(a.push("php")); //在数组的末端追加指定的元素,返回数组的新的长度值
alert(a);
}
function testUnshift(){
var a = [1,2,3,4,5,"中国","新年","javascript"];
alert(a.unshift("php")); //在数组的首端添加指定的元素,返回数组的新的长度值
alert(a);
}
js中常用对象和方法
1.String
1)substr: 从指定位置开始截取指定长度的子字符串
2)substring:从指定位置开始到指定位置-1结束截取子字符串 [,)
3)split:使用指定的字符拆分字符串 返回字符串类型的数组
function testString(){
var str = "中国-即将-迎来-2023年-新年";
//var s = str.substr(5,2);
//var s= str.substring(5,7);
var s = str.split("-");
for(var i=0;i<s.length;i++){
alert(s[i]);
}
}
注意: 该方法可以传递正则表达式 ,使用正则规则进行拆分字符型
2.Date
function testDate(){
var a = new Date();
// alert(a);
// alert(a.getYear()); //122 从1900年到现在一共的年数
// alert(a.getFullYear()); //年
alert(a.getMonth()+1); //月份 0-11
alert(a.getDate()); //日 7
alert(a.getDay()); //星期 3 0(星期日)-6
alert(a.getHours());
alert(a.getMinutes());
alert(a.getSeconds());
}
function testDate2(str1,str2){
var date1 = new Date(str1);
var date2 = new Date(str2);
if(date1.getTime() > date2.getTime()){
alert(date1.getTime()); //指定日期的时间戳 毫秒值
alert(date2.getTime());
alert("date1日期大")
}else{
alert(date1.getTime());
alert(date2.getTime());
alert("date2日期大")
}
}
3.Math
function testMath(){
var num = Math.random(); //获取随机数 0~1之间 无限接近于1 但不等于1
//需求:获取1000-9999直接的随机数
num = Math.random()*9000+1000;
var a = 13.01;
var b = 13.99;
// alert(Math.ceil(a)); //向上取整 天花板值 >13.01的最小整数 14
// alert(Math.floor(b)); //向下取整 地板值 <13.99的最大整数13
alert(Math.floor(num));
}
在使用的时候不能new,直接使用Math.方法名的方式即可
4.Global
在使用时,不需要new,也不使用Global.方法名的方式进行调用
直接使用某个方法即可
eval(): 将类似js代码的字符串转成可执行的js语句
function testEval(){
var str = "var a = 123"; //该字符串的值像一个js代码
eval(str);
var str = "[1,2,31,4]"; //该字符串的值像一个js的数组
eval("var arr = "+str)
alert(str);
alert(a);
alert(arr);
}
isNaN(): 判断返回值是否是NaN is not a number是否成立
function testIsNaN(){
var str = "123s";
str = "123";
var num = Number(str); //通过Number函数对str进行强转 失败返回NaN
if(isNaN(num)){
alert("请录入一个正确的数字")
}else{
alert(num+10);
}
}
parseInt(): 获取字符串开头的整数部分,如果字符串开头不是数字,获取失败,返回NaN
parseFloat(): 获取字符串开头的浮点数部分,如果字符串开头不是数字,获取失败,返回NaN
function testParseNumber(){
var str = "123.654asdkjhafd3215.77";
var num1 = parseInt(str);
alert(num1);
var num2 = parseFloat(str);
alert(num2)
}