js_day12---js数据类型+运算符+三大流程控制

来源:互联网 发布:下载软件评测 编辑:程序博客网 时间:2024/06/07 00:02

Day12


javascript数据类型

①基本数据类型:

 

  1. 数值(2)字符串(3)布尔型

     

    小技巧:通过typeof关键字可以看到变量的具体数据类型是什么。

    举例:

       <html>       <head><script language="javascript">var v1 = "abc";var v2 = 890;//typeof 可以看到数据的类型window.alert("v1是"+typeof v1);window.alert("v2是"+typeof v2);v1 = 567;//js是动态语言window.alert("v1现在是"+typeof v1);</script></head><body></body></html>

 


②复合数据类型

  1. 数组2)对象

 ③特殊数据类型

  1. Null

    举例:var a = null;

    

  2undefine

    举例:window.alert(t); //报错,未定义

         Var aa ;//没有赋值直接用的话,弹出undefined错误

   


javascript基本数据类型三大类型

1、整型常量(10进制、8进制、16进制)

      十六进制以0x0X开头,例如:0x8a

      八进制必须以0开头,例如0123

      十进制的第一位不能是0(数字0除外),例如:123

2、实型常量

      12.3198.985E7(科学计数法)、4e5

  特殊数值:NaN(Not a Number)Infinity(无穷大)

   有两个函数可以判断是不是NaNinfinity

isNaN()—>判断是不是一个数、

isFinite()—>检查某个数是否为有穷大的数。


举例:

var a ="abc";

                    var b =parseInt(a);

                    window.alert(b);



var a ="abc";

                    var b =parseInt(a);

                    window.alert(b);

window.alert(6/0);

widow.alert(isNaN("abc")); //返回真

3、布尔类型

      True false

      举例:var a = true; var b = false;

4String字符串

      javascript

      转义字符:

var c ="asdf\"asd" ; //字符串中有双引号,要用转义字符

       window.alert(c);

js基本语法定义变量、初始化、赋值

      定义变量

             Vara ;这就是定义变量;

初始化变量

      在定义变量的时候,就给值。

      Var a = 45;这就是初始化变量;

给变量赋值

      定义之后,再给值。

 

js基本语法数据类型转换

      自动转换

             数据类型是动态的。//前面提到过

强制转换

             如何字符串转成数字?

             Var a = parseInt(“123”); //使用系统函数强制转换

             Var b = parseFloat(“12.3”);

 

             Var b = 90; //bnumber

             Var b =b+””; // bString

 

js基本语法运算符

      算术运算符

常用的:+(加)、—(减)、x()/(除)、%(取模)

取模通常用于判断两个数是否能够整除。主要用于整数

      

除此之外:还有++(自加)、--(自减)

还有=+-=/=%=等。

      这些和所有编程语言中的一样。

 

关系运算符

== <   <  <=   >=   ! =

 

介绍window.prompt()Document.writeln()方法。

var val = window.prompt("请输入值","");

 varval2 = window.prompt("请再输入一个值")

  window.alert(typeofval);//注意这里接受的是字符串

          document.writeln("您的输入是:"+(parseFloat(val)+parseFloat(val2)));

 

      一个关系运算符的案例:

/*编写一个程序,该程序可以接受两个数(可以是整数,也可以是小数)

                                       并判断两个数的大小*/

                                       var num1 =window.prompt("请输入第一个数:");

                                       var num2 =window.prompt("请输入第二个数:");

                                       num1 =parseFloat(num1);

                                       num2 =parseFloat(num2);

                                       if(num1>num2){

                                              window.alert("num1>num2");

                                              }elseif(num1<num2){

                                                     window.alert("num1<num2");

                                                     }elseif(num1 == num2){

                                                     window.alert("num1= num2");

                                                     }

逻辑运算符

     ①&& || ③! 非

   java语言一样。

   

①If(逻辑表达式1&&逻辑表达式2){

 

}

如果逻辑表达式1true,则js引擎会继续执行逻辑表达式2

如果逻辑表达式1false,则js引擎不会再执行逻辑表达式2

 

If(逻辑表达式1||逻辑表达式2||…){

 

}

如果任何一个逻辑表达式为true,则整个式子为true

 

  1. If(!逻辑表达式){

     

    }

   如果逻辑表达式为true,则【!逻辑表达式】为false

   如果逻辑表达式为false,则【!逻辑表达式】为true

 

特别说明:在逻辑运算中,0、“”、falsenullundefinedNaN均表示为假。

Var a =0;

If(!a){

   Window.alert(“Ok”);

}

  

这里有一个非常重要的知识:

/*js中,||究竟返回什么*/

案例1

   var a = 4;

   var b = 90;

   var c = a||b;//c4,为什么?

   window.alert(c);

 

案例2

var a = 0;

   var b = "";

   var d = false;

   var c = a||b||d;//这时c=false;

   window.alert(c);

 

☞ ||返回的不一定是一个布尔值。

||将返回第一个不为false的值(对象亦可),或是返回最后一个值(如果全部为false的话)

 

位运算和移位运算

Js中的位运算和移位运算,其规范和java一致;

看一个案例:

var a = 4>>2;

//4的二进制是00000100,右移2位,则变成了00000001

window.alert(a);//输出1

 

var a = -4>>2;

//-4的原码:1000000000000100 -->反码:11111111 11111011

//-->补码:1111111111111100,右移2位,则变成了1111111111111111

//-->反码:1111111111111110 -->10000000 00000001

window.alert(a); //输出-1


js基本语法三大流程控制

      顺序控制

      对编程而言,不控制其流程就是顺序执行。

分支控制

单分支

                    基本语法:

      If(条件表达式){

//语句;

}

双分支

      基本语法:

If(条件表达式){

}else{

}

多分支

基本语法:

If(条件表达式1){

}else if(条件表达式2){

}else if…(){

}

强调:一旦找到一个满足条件的入口,执行完毕后,就直接结束。

 

除了if分支还有switch分支:

Switch(条件表达式){

Case常量1//执行语句;break;

Case常量2//执行语句;break;

Case …

Default://什么条件都不满足,执行;

}

案例:

var a="90";

                    switch(a){

                           case"90":

                                  window.alert("90");

                                  break;

                           case890:

                                  window.alert("890");

                                  break;  

                           default:

                                  window.alert("没有匹配的值");  

                    }

针对这个案例我们总结出:

▪jsswitch语句数据类型可以是js支持的任何类型(数组和对象除外)

▪case后面的数据类型可以任意(数组和对象除外)

▪break作用是跳出整个switch

如果没有匹配的,则执行default中的语句。

循环控制

      For循环:for(循环初值;循环条件;步长){ //语句 }

for(var i=0;i<10;i++){

                           document.writeln("你好!<br/>");

                    }

流程图:

While循环:

while(条件表达式){  

//语句

条件变化;

 }

do..While循环:

不管怎样,循环体肯定会执行一次。


案例练习:

编写一个程序可以接受一个数:

1计算1+2+3+…+n的值。 2计算1+2+…+n!的值。

<html><head><script language="javascript">var n = window.prompt("请输入一个整数");n= parseInt(n);var res=0;for(var i = 1;i<=n;i++){res+=i;}document.writeln("相加结果是"+res);var res2 =0;var temp = 1;for(var i=1;i<=n;i++){for(var j =1;j<=i;j++){temp*=j;}res2 +=temp;temp =1;}document.writeln("阶乘相加结果是"+res2);</script></head><body></body></html>

运行结果:

☞IE8开始提供了开发人员工具,供调试javascript代码使用。

案例练习:

输出菱形:

代码如下:

<html><head><script language="javascript">for(var i=0;i<10;i++){for(var j=0;j<9-i;j++){document.writeln(" ");}for(var j =0;j<2*i+1;j++){document.writeln(" *");}document.writeln("<br/>")}for(var i = 0;i<9;i++){for(var j=0;j<i+1;j++){document.writeln(" ");}for(var j =0;j<17-2*i;j++){document.writeln(" *");}document.writeln("<br/>")}</script></head><body></body></html>