javascipt-基礎---細節需要注意的地方:
1、特殊數值:NaN、Infinity、isNaN()、isFinite()
NaN:
復制代碼 代碼如下:Infinity:
復制代碼 代碼如下:isNaN():判斷是不是數,不是數返回true,是數返回false
復制代碼 代碼如下:isFinite():用於判斷是不是無窮大。如果 number 是 NaN(非數字),或者是正、負無窮大的數,則返回 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>