javascipt-基础---细节需要注意的地方:
1、特殊数值:NaN、Infinity、isNaN()、isFinite()
NaN:
var a=parseInt('a123');
window.alert(a); //输出NaN
Infinity:
window.alert(6/0);//输出Infinity 无穷大(最好不要这样写)
isNaN():判断是不是数,不是数返回true,是数返回false
var a="dd";
window.alert(isNaN(a)); //返回true
isFinite():用于判断是不是无穷大。如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。
window.alert(isFinite(6/1)); //返回true
window.alert(isFinite(6/0)); //返回false
2、逻辑运算符:
在逻辑运算中,0、""、false、null、undefined、NaN均表示false
(或 || )|| 将返回第一个不为false 那个值(对象亦可),或者是最后一个值(如果全部都是false的话)
这个知识点在javascript框架中运用很多。
a、
var a=true;
var b=false;
var c=b || a;window.alert(c); //输出true
b、
var a=2;
var b=0
var c= a || b;window.alert(c); //返回第一个值,输出2
c、
var a=false;
var b="";
var c =0;
var d =new Object(); //对象var aa=a || b || c ||d ; //a,b,c 全是false 这返回d
window.alert(aa); //返回d (对象)
4、多分支 switch
var flag=1;switch(flag){
default:
window.alert("啥都不是");
case 'a':
window.alert("a");case 'b':
window.alert("b"); //没有break语句,没有匹配成功, 此时结果都输出
}
var flag=1;switch(flag){
default:
window.alert("啥都不是");
case 'a':
window.alert("a");case 1:
window.alert("b"); //没有break语句 当匹配成功则不再找break语句 此时输出b
}
5、函数调用
func.js
function abc(val){
window.alert("abc()"+val);
}//有返回值的函数
function test(num1,num2){var res=0;
res =num1+num2;return res;
}//没有返回值的的函数
function noVal(num1,num2){
var res=0;
res=num1+num2;
}
函数调用:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script type="text/javascript" src="func.js"></script>
<script type="text/javascript">
//函数调用1---普通调用(常用调用函数)
abc(50);//函数调用2---变量=函数名; 调用的时候这样调用:变量(实际参数)
var test1=abc; //此时变量就相当于函数的引用(指针)
window.alert(abc); //输出abc整个函数代码,就能理解了
test1(500);//如果调用的函数有返回值,可以在程序中直接返回,没有返回值但是你接收了,这是返回undefined
//调用有返回值的函数
var res=test(20,40);
window.alert(res);
//调用没有返回值的函数
window.alert("调用没有返回值的函数");
var res=noVal(1,1);
//此时输出undefined
window.alert(res);</script>
</head>
<body></body>
</html>
js支持参数个数可变的函数
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script type="text/javascript" src="func.js"></script>
<script type="text/javascript">//函数调用--递归
/* function abc(num){
if(num>3){
abc(--num);
}
document.writeln(num);
}
//调用函数
abc(5); //输出 3 3 4
*///js支持参数个数可变的函数
function abc(){
//js中提供了一个arguments,可以访问所以传入的值
window.alert(arguments.length); //传入多少个
//遍历传入的参数
for(var i=0;i<arguments.length;i++){
window.alert(arguments[i]);
}
}
//调用
window.alert("abc(12,13,"hello",56)");
abc(12,13,"hello",56)
window.alert("abc(5)");
abc(5);window.alert("abc()");
abc();
</script>
</head>
<body></body>
</html>