Hybrid App开发之JavaScript基础

Posted 总李写代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hybrid App开发之JavaScript基础相关的知识,希望对你有一定的参考价值。

前言:

    前面学习了html和css的基本使用,今天开始学习javascript的使用。

什么是JavaScript

  JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与 HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互 作用。从而可以开发客户端的应用程序等;

具有以下几个基本特点: 

脚本编写语言  

JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解 释性语言,它提供了一个易的开发过程。它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程 中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。 

基于对象的语言 

JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因 此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。 

简单性   

JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于 学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。

安全性  

JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进 行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。  

动态性  

JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应, 是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。

跨平台性   

JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就 可正确执行。从而实现了“编写一次,走遍天下”的梦想。 实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软 件及一浏览器,无须WEB服务器通道,通过自己的电脑即可完成所有的事情

基于上面的解释我们先来编写一个JavaScript程序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>这是一个JavaScript小程序</title>
    <script language="JavaScript">
        alert(这是一个JavaScript小程序)
    </script>
</head>
<body>

</body>
</html>

根据上面的例子可以看出,JavaScript如同HTML标识语言一样, JavaScript程序代码是一些可用字处理软件浏览的文本,它在描述页面的HTML相关区域出现。 JavaScript代码由 <Script Language ="JavaScript">...</Script>说明。在标识<Script Language ="JavaScript">...</Script>之间就可加入JavaScript脚本。 

JavaScript基本数据类型

JavaScript脚本语言同其它语言一样,有它自身的基本数据类型、表达式和算术运算符以及程序的基本框架结构。 JavaScript提供了四种基本的数据类型用来处理数字和文字, 而变量提供存放信息的地方, 表达式则可以完成较复杂的 信息处理。 

1、基本数据类型 

在JavaScript中四种基本的数据类型:数值(整数和实数)、字符串型(用“”号或‘’括起来的字符或数值)、布尔 型(使True或False表示)和空值。在JavaScript的基本类型中的数据可以是常量,也可以变量。由于JavaScript采 用弱类型的形式,因而一个数据的变量或常量不必首先作声明,而是在使用或赋值时确定其数据的类型的。当然也可以 先声明该数据的类型,它是通过在赋值时自动说明其数据类型的。 

2、常量  

 整型常量

JavaScript的常量通常又称字面常量,它是不能改变的数据。其整型常量可以使用十六进制、八进制和十进制表示其值。  

实型常量

实型常量是由整数部分加小数部分表示,如12.32、193.98 。可以使用科学或标准方法表示:5E7、4e5等。布尔值 布尔常量只有两种状态:True或False。 它主要用来说明或代表一种状态或标志,以说明操作流程。它与C++是不一 样的,C++可以用1或0表示其状态,而JavaScript只能用True或False表示其状态。

字符型常量

使用单引号(‘)或双引号(“)括起来的一个或几个字符。如 "This is a book of JavaScript " 、"3245" 、"ewrt234234" 等。空值 JavaScript中有一个空值null,表示什么也没有。如试图引用没有定义的变量,则返回一个Null值。特殊字符 同C语言一样,JavaScript中同样以有些以反斜杠(/)开头的不可显示的特殊字符。通常称为控制字符。 

3、变量

变量的主要作用是存取数据、提供存放信息的容器。对于变量必须明确变量的命名、变量的类型、变量的声明及其变 量的作用域。  

变量的命名

JavaScript中的变量命名同其计算机语言非常相似,这里要注意以下两点:

  • 必须是一个有效的变量,即变量以字母开头,中间可以出现数字如test1、text2等。除下划线(-)作为连字符外,变量名称不能有空格、(+)、(-)、(,)或其它符号。
  • 不能使用JavaScript中的关键字作为变量。 在JavaScript中定义了40多个类键字,这些关键是JavaScript内部使用的,不能作为变量的名称。如Var、int、 double、true不能作为变量的名称。 在对变量命名时,最好把变量的意义与其代表的意思对应起来,以免出现错误。  

变量的类型 在JavaScript中,变量可以用命令Var作声明:例如var name=‘whoislcj‘;在JavaScript中,变量以可以不作声明,而在使用时再根据数据的类型来确其变量的类型: 例如name=‘whoislcj‘

变量的声明及其作用域 

JavaScript变量可以在使用前先作声明,并可赋值。通过使用var关键字对变量作声明。对变量作声明的最大好处就是 能及时发现代码中的错误;因为JavaScript是采用动态编译的,而动态编译是不易发现代码中的错误,特别是变量命 名的方面。 对于变量还有一个重要性──那就是变量的作用域。在JavaScript中同样有全局变量和局部变量。全局变量是定义在所有 函数体之外,其作用范围是整个函数;而局部变量是定义在函数体之内,只对其该函数是可见的,而对其它函数则是 不可见的。 

表达式和运算符 

1、表达式   

在定义完变量后,就可以对它们进行赋值、改变、计算等一系列操作,这一过程通常又叫称一个叫表达式来完成, 可以说它是变量、常量、布尔及运算符的集合,因此表达式可以分为算术表述式、字串表达式、赋值表达式以及布尔表达 式等

2、运算符   

运算符完成操作的一系列符号,在JavaScript中有算术运算符,如+、 -、 *、 /等;有比较运算符如!=、==等; 有逻 辑布尔运算符如!(取反)、|、||; 有字串运算如+ 、 +=等。

举例说明一下

<script language="JavaScript">
    document.write("<div><p>"+name+"</p></div>");
    var x,y;
    x=5;
    y=10;
    function plus(x,y) {
        return x+y;
    }
    var plusResult = plus(x, y);
    if(plusResult>15){
        document.write("<div><p>x+y>"+ 15+"</p></div>");
    }else{
        document.write("<div><p>x+y="+ plusResult+"</p></div>");
    }
</script>

JavaScript程序构成 

 JavaScript脚本语言的基本构成是由控制语句、函数、对象、方法、属性等,来实现编程的。

一、程序控制流 

  • if条件语句

  • For循环语句

  • while循环 

  • break和continue语句

综合举例说明一下

<script language="JavaScript">
    var maxCount = 5;
    var list = new Array();
    if (maxCount >= 5) {
        for (var i = 0; i < maxCount; i++) {
            list.push(i);
        }

        while (list.length > 0) {
            var temp = list.pop();
            document.write("<div><p></p>temp=" + temp + "</p></div>");
            switch (temp) {
                case 0:
                    document.write("<div><p></p>第一行</p></div>");
                    break;
                case 1:
                    document.write("<div><p></p>第二行</p></div>");
                    break;
                case 2:
                    document.write("<div><p></p>第三行</p></div>");
                    break;
                case 3:
                    document.write("<div><p></p>第四行</p></div>");
                    break;
                case 4:
                    document.write("<div><p></p>第五行</p></div>");
                    break;
            }
        }
    }
</script>

二、函数

函数为程序设计人员提供了一个丰常方便的能力。通常在进行一个复杂的程序设计时,总是根据所要完成的功能, 将程序划分为一些相对独立的部分,每部分编写一个函数。从而,使各部分充分独立,任务单一,程序清晰,易懂、易 读、易维护。 JavaScript函数可以封装那些在程序中可能要多次用到的模块。并可作为事件驱动的结果而调用的程序。从 而实现一个函数把它与事件驱动相关联。这是与其它语言不样的地方。 

1、JavaScript函数定义 

Function 函数名 (参数,变元){
      函数体;. Return 表达式; 
} 

说明:  

  • 当调用函数时,所用变量或字面量均可作为变元传递。
  • 函数由关键字Function定义。  
  • 函数名:定义自己函数的名字。  
  • 参数表,是传递给函数使用或操作的值,其值可以是常量 ,变量或其它表达式。
  • 通过指定函数名(实参)来调用一个函数。
  • 必须使用Return将值返回。  
  • 函数名对大小写是敏感的。 

2、函数中的形式参数

  在函数的定义中,我们看到函数名后有参数表,这些参数变量可能是一个或几个。那么怎样才能确定参数变量的个 数呢?在JavaScript中可通过arguments .Length来检查参数的个数。 

<script language="JavaScript">
    function dealData(srcData, desData) {
        var number = arguments.length;
        return srcData + desData;
    }
</script>

三、事件驱动及事件处理 

1、基本概念   

JavaScript是基于对象(object-based)的语言。这与Java不同,Java是面向对象的语言。而基于对象的基本特 征,就是采用事件驱动(event-driven)。它是在用形界面的环境下,使得一切输入变化简单化。通常鼠标或热键的动作 我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件 进行处理程序或函数,我们称之为事件处理程序(Event Handler)。 

2、事件处理程序  

在JavaScript中对象事件的处理通常由函数(Function)担任。其基本格式与函数全部一样,可以将前面所介绍的 所有函数作为事件处理程序。 格式如下:

function 事件处理名(参数表){

        事件处理语句集;
…… 
}

3、事件驱动 

JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的。它主要有以下几个事件: 

(1)单击事件onClick   

  当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。

<script language="JavaScript">
    function  submitUserData() {

    }

</script>

<input type="submit"  onclick="submitUserData()"/>

(2)onChange改变事件 

  当利用text或texturea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引 发该事件。 

<script language="JavaScript">
    function desTextAreaChanged() {
        var userTextArea = document.getElementById("userDes");
        var userDesDiv=document.getElementById("userDesDiv");
        userDesDiv.innerHTML="<div><p>" + userTextArea.value + "</p></div>";
    }
</script>

<div>
<textarea name="userDes" id="userDes" cols="50" rows="15" style="margin-top: 5pt" onchange="desTextAreaChanged()"/>
</textarea>
</div>
<div id="userDesDiv">
</div>

(3)选中事件onSelect  

 当Text或Textarea对象中的文字被加亮后,引发该事件。

(4)获得焦点事件onFocus   

   当用户单击Text或textarea以及select对象时,产生该事件。此时该对象成为前台对象。

(5)失去焦点onBlur   

   当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是 一个对应的关系。

(6)载入文件onLoad   

   当文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值,并用一个变量为其 赋值,使它可以被源代码使用。

(7)卸载文件onUnload   

   当Web页面退出时引发onUnload事件,并可更新Cookie的状态。 

总结:

  今天学习了JavaScript的基础知识。后续学习一下更多相关JavaScript的知识。

 


以上是关于Hybrid App开发之JavaScript基础的主要内容,如果未能解决你的问题,请参考以下文章

Hybrid App开发之Ajax在JQuery中的应用

Hybrid App开发之jQuery选择器

即时通讯开发之在WebSocket基础上实现Hybrid移动端消息推送

跨终端Web之Hybrid App开发对比

:hybrid app开发之技术选型

跨平台 webapp 开发技术之 Hybrid App