javascipt基础内容--需要注意的细节

  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>