JavaScript复合类型、运算符、流程控制、异常处理、对象和内建类

一、数组

数组是js中复合类型的一种,定义数组的语法分三步:声明、创建、初始化。基本语法:
1)var 数组名 ;
数组名 = new Array(数组长度);
数组名[0] = 元素值;
数组名[1] = 元素值;

2)var 数组名 = new Array(数组长度);
数组名[0] = 元素值;
数组名[1] = 元素值;

3)var 数组名 = [元素1值,元素2值,…];
但是,js中的数组区别于java中的数组:
①js中数组长度可变,于是限制数组的长度毫无意义。
②数组中的元素可以是不同的数据类型。如arr[0]=1;
arr[1]=”abc”;
示例代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>数组</title>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
        //声明 、创建、 初始化
        //1.
        /* var arr;
        arr = new Array(3);
        arr[0] = 1;
        arr[1] = 2;
        document.write(arr[0]); */
        //2.
        /* var arr = new Array(3); */
        //3.
        /* var arr =[1,2,3]; */
        //与java中数组不同,长度可变,元素类型可以不一致
        var intArr = new Array();
        intArr[0] = 1;
        intArr[1] = "abc";
        intArr[2] = undefined;
        for(var i = 0 ; i<intArr.length;i++){
            document.write(intArr[i]+"<br/>");
        }

    </script> 

  </head>

  <body>
    数组结束
  </body>
</html>

运算符

普通的运算符与java中的运算符差异不大,如+-*/%><>=等等,唯一不同的是,js中有严格等于===,==表示运算符两边的值相等返回true,===表示只有运算符两边的值相等且数据类型相同才返回true。
另外还有三个运算符:instanceoof,typeof,constructor.
instanceof与java中的运算符相同,a instanceof b即判断a类是不是b类或b的子类的实例;

typeof用于查看变量的数据类型,用法:①typeof 变量名;②typeof 变量值;③typeof(变量名);
变量值和返回数据类型对应关系如下:
变量值- 返回数据类型
数值型值- number
字符串值 - string
布尔型值 - boolean
null值 - object
undefined- undefined
数组 -object
函数 -function
对象 -object

constructor用来获得对象的构造函数,可以精确判断对象的类型,类似于java中的class对象,任何类型.constructor都是对象。返回结果
function 类型名{
[native code]
}
判断返回的类型是不是数组用:类型名.constructor==Array

示例代码:

<script type="text/javascript">
        // ===严格等于,只有两边数据类型和值都相等,才返回true
        // == 判断值是否相等
        //alert(0==false);  
        //alert("aaa"==="aaa");

        //1.typeof
        /* var a = 10;
        alert(typeof a);
        alert(typeof "abc"); */

        //2.instanceof
        /* var arr =[1,2,3];
        alert(arr instanceof Array); */

        //3.constructor
        var a = 123;
        alert(a.constructor);

    </script> 

流程控制

流程控制分三种:顺序、分支、循环。
基本与java中的一致,不同的是switch语句中的switch条件和下面匹配条件,使用的是严格等于,只有类型和值全相等,才能匹配上。
顺便讲解prompt输入框,prompt(“请输入:”,”默认值”);//第一个值是提示输入内容,第二个值是输入框中的默认值。
点取消返回null.

js中的增强for循环
作用:1.访问数组 2.访问对象的属性
语法:
1.for (var i in 数组名 ){
document.write(数组名[i]);
}
其中i是下标

2.for(var i in 对象名){
document.write(对象名[i]);
}
其中i是属性名,对象名[i]是属性值。
示例代码:

    <script type="text/javascript">
        var a = "123";
        //必须严格等于,才能匹配上
        switch(a){
            case 123:
            document.wirte('值相等');
            case "123":
            document.write('严格等于');
        }       
    </script> 

prompt输入框
<script type="text/javascript">
        /* var a = 1;
        document.write(a); */
        var s = prompt('请输入:','数');
        //必须严格等于才能匹配
        switch(s){
            case "1":
            document.write(s);
            break;
            case "2":
            document.write(s);
            break;
            case "3":
            document.write(s);
            break;
        }
    </script>  
增强的for循环
    <script type="text/javascript">
            //访问数组
            /*var s = [1, 2, 3];
            for(var i in s) {
                document.write(s[i] + "<br/>");
            }*/

            //访问对象的属性
            for (var i in screen) {
                document.write(i+"="+ screen[i]+"<br />");
            }
        </script>

异常处理

程序员主动产生一个异常:throw new Error(“自定义异常”);
抛给浏览器,如果不处理,程序中止,不再继续往下执行。
处理异常的方式只有try-catch一种。
示例:

<script type="text/javascript">
        try{
            throw new Error("自定义异常");
        }catch(e){
            document.write(e.message);
        }finally{
            document.write('<br/>'+'finally');
        }

        alert('here');
        </script>

与java中处理异常的区别:
①js中只有一个异常类Error,无须在定义函数时声明抛出该异常,所有没有throws关键字。
②catch里的异常实例无需声明类型,因为只有Error.
③只有一个Error类,只能有一个catch块。
④获取异常信息描述是通过e.message而不是通过getMessage()方法;

对象和内建类

JS中数据类型中复合类型除了数组、函数,还有类。JS类似于java也有对象和类的概念,它可以以类似java面向对象编程的方式来编写类、创建对象,或使用现有类生成对象,访问对象的属性和方法,但是JS不是面向对象的。面向对象语言的三大基本特征:封装、多态、继承,JS中没有多态的概念,它是基于对象的语言,在JS中如果笼统的说一切都是对象,类也属于对象的一种,这是JS和java的区别。我们这里主要讲如何使用JS提供给用户的现有类,也可以叫内建类,它是可以直接使用的。

常用的内建类有:
①Object
Object是所有类的基类。
②Number
var numberObject = new Number(123);
③String
var str = new String(“aaa”);
④Math
alert(Math.random());//产生0.0-1.0之间的随机数。
Math.ceil();//执行向上舍入,即他总是将数值向上舍入为最接近的整数。
Math.floor();//执行向下舍入,
Math.round();//执行标准舍入,四舍五入为最接近的整数
⑤Date
var dataObj = new Date();
dataObj.getFullYear();//获得当前年
dataObj.getMonth();//获得月,获得0-11分别对应1-12月,所有我们要把得到的数加1的得到实际的月数。
dataObj.getDate();//获得日,
dataObj.toLocaleString();//获得格式化好的日期
dataObj.toLocaleTimeString();//获得格式化好的时间。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值