• 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>temp=" + temp + "</p></div>");
                switch (temp) {
                    case 0:
                        document.write("<div><p>第一行</p></div>");
                        break;
                    case 1:
                        document.write("<div><p>第二行</p></div>");
                        break;
                    case 2:
                        document.write("<div><p>第三行</p></div>");
                        break;
                    case 3:
                        document.write("<div><p>第四行</p></div>");
                        break;
                    case 4:
                        document.write("<div><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语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门 基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的 复杂对象统一起来,从而形成一个非常强大的对象系统。     虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写 功能强大的Web文档。

    一、对象的基础知识 

    1、对象的基本结构   

    JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需 要行为的过程中,实现信息的装载单位,从而与变量相关联;后者是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。 

    2、引用对象的途径  

     一个对象要真正地被使用,可采用以下几种方式获得:  

    • 引用JavaScript内部对象;  
    • 由浏览器环境中提供;   
    • 创建新对象。 

    这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。从上面中我们可以 看出JavaScript引用对象可通过三种方式获取。要么创建新的对象,要么利用现存的对象。

    3、有关对象操作语句 

    JavaScript不是一纯面向对象的语言,它设有提供面向对象语言的许多功能,因此JavaScript设计者之所以把它 你“基于对象”而不是面向对象的语言,在JavaScript中提供了几个用于操作对象的语句和关键字及运算符。

    •  For...in语句 
    •  with语句 
    •  this关键字 
    •  New运算符  

    简单用代码示例一下:

    复制代码
    <script language="JavaScript">
        function creatPerson(name, age) {
            var person = new Object();
            person.name = name;
            person.age = age;
            return person;
        }
    
        function showPerson(tempPerson) {
            for (var temp in tempPerson) {
                document.write("<div><p>" + temp + ":" + tempPerson[temp] + "</p></div>");
            }
        }
    
        var person = creatPerson("lcj", 28);
        with (person) {
            name = "whoislcj";
            age = 28;
        }
        showPerson(this.person);
    
    </script>
    复制代码

    4、对象属性的引用 

    • 使用点(.)运算符
    • 通过对象的下标实现引用
    • 通过字符串的形式实现 

    5、对象的方法的引用 

    在JavaScript中对象方法的引用是非常简单的。 ObjectName.methods() 实际上methods()=FunctionName方法实质上是一个函数。

    二、常用对象的属性和方法   

    JavaScript为我们提供了一些非常有用的常用内部对象和方法。用户不需要用脚本来实现这些功能。这正是基于对 象编程的真正目的。在JavaScript提供了string(字符串)、math(数值计算)和Date(日期)三种对象和其它一些相关的方法。从 而为编程人员快速开发强大的脚本程序提供了非常有利的条件。

    1、常用内部对象  

     在JavaScript中对于对象属性与方法的引用,有两种情况:其一是说该对象是静态对象,即在引用该对象的属性 或方法时不需要为它创建实例;而另一种对象则在引用它的对象或方法是必须为它创建一个实例,即该对象是动态对 象。对JavaScript内部对象的引用,以是紧紧围绕着它的属性与方法进行的。因而明确对象的静动性对于掌握和理解 JavaScript内部对象是具有非常重要的意义。

    1)、串对象   

    •  string对象:内部静态性。   
    • 访问properties和methods时,可使用(.)运算符实现。   
    • 基本使用格式:objectName.prop/methods

    (1)串对象的属性   

       该对象只有一个属性,即length。它表明了字符串中的字符个数,包括所有符号。 例: mytest="This is a JavaScript" mystringlength=mytest.length ,最后mystringlength返回mytest字串的长度为20。

    (2)串对象的方法   

       string对象的方法共有19个。主要用于有关字符串在Web页面中的显示、字体大小、字体颜色、字符的搜索以及字 符的大小写转换。 其主要方法如下:  

    •  锚点anchor():该方法创建如用Html文档中一样的anchor标记。使用anchor如用Html中(A Name="")一 样。通过下列格式访问:string.anchor(anchorName)。  
    •  有关字符显示的控制方法 big字体显示, Italics()斜体字显示,bold()粗体字显示,blink()字符闪烁显示,small()字符用小体字显示, fixed()固定高亮字显示、fontsize(size)控制字体大小等。   
    •    字体颜色方法;fontcolor(color)  
    •  字符串大小写转换 toLowerCase()-小写转换,toUpperCase()大写转换。下列把一个给定的串分别转换成大写和小写格式: string=stringValue.toUpperCase和string=stringValue.toLowerCase。
    •  字符搜索:indexOf[charactor,fromIndex] 从指定formIndtx位置开始搜索charactor第一次出现的位置。 返回字串的一部分字串:substring(start,end) 从start开始到end的字符全部返回。

    2)、算术函数的math对象  

      功能:提供除加、减、乘、除以外的一引些自述运算。如对数,平方根等 。

      静动性:静态对象

    (1)主要属性   

        math中提供了6个属性,它们是数学中经常用到的常数E、以10为底的自然对数LN10、以2为底的自然对数 LN2、3.14159的PI、1/2的平方根SQRT1-2,2的平方根为SQRT2。

    (2)主要方法  

       绝对值:abs()  正弦余弦值:sin(),cos()  反正弦反余弦 :asin(), acos()  正切反正切:tan(),atan()  四舍五入:round()  平方根:sqrt()  基于几方次的值:Pow(base,exponent) 

    3)、日期及时间对象

     功能:提供一个有关日期和时间的对象。

     静动性:动态性,即必须使用New运算符创建一个实例。例:

      MyDate=New Date() Date对象没有提供直接访问的属性。只具有获取和设置日期和时间的方法。  日期起始值:1770年1月1日00:00:00。

    (1). 获取日期的时间方法  getYear(): 返回年数  getMonth():返回当月号数  getDate(): 返回当日号数  getDay():返回星期几  getHours():返回小时数  getMintes(:返回分钟数  getSeconds():返回秒数  getTime() : 返回毫秒数

    (2)设置日期和时间:  setYear();设置年  setDate():设置当月号数  setMonth():设置当月份数  setHours():设置小时数  setMintes():设置分钟数  setSeconds():设置秒数  setTime ():设置毫秒数 

    写个简单的例子

    复制代码
    <script language="JavaScript">
    
        function getDateMsg() {
            var myDate = new Date();
            var dateStr = myDate.getFullYear()+"年" + myDate.getMonth()+"月" + myDate.getDate()+"日<br> 星期" + myDate.getDay()+"<br>"+myDate.getHours()+":"+myDate.getMinutes()+":"+myDate.getSeconds();
            return dateStr;
        }
        document.write("<div><p>" + getDateMsg() + "</p></div>");
        
    </script>
    复制代码

    2、JavaScript中的系统函数

    JavaScript中的系统函数又称内部方法。它提供了与任何对象无关的系统函数,使用这些函数不需创建任何实例, 可直接用。

    1.返回字符串表达式中的值:方法名:eval(字串表达式),例: test=eval("8+9+5/2");

    2. 返回字符串ASCI码:  方法名:unEscape (string)

    3.返回字符的编码:  方法名:escape(character)

    4.返回实数: parseFloat(floustring);

    5.返回不同进制的数: parseInt(numbestring ,rad.X) 其中radix是数的进制,numbs字符串数

    总结:

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

      

  • 相关阅读:
    shell的格式化输出命令printf
    shell数组
    shell字符串
    shell注释
    shell运算符
    shell替换
    shell特殊变量
    shell变量
    linux修改主机名
    ssh免密码登录设置
  • 原文地址:https://www.cnblogs.com/wuyuxin/p/6993765.html
Copyright © 2020-2023  润新知