• JavaScript 之基础知识


    JavaScript 基础知识

    JavaScript 是属于网络的脚本语言!

    JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。

    JavaScript 是因特网上最流行的脚本语言。

    JavaScript 很容易使用!你一定会喜欢它的!

    JavaScript 简介

    在数百万张页面中,JavaScript 被用来改进设计、验证表单、检测浏览器、创建cookies,等等等等。JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer、 Mozilla、Firefox、Netscape、和 Opera。

    什么是 JavaScript?
    • JavaScript 被设计用来向 HTML 页面添加交互行为。
    • JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言)。
    • JavaScript 由数行可执行计算机代码组成。
    • JavaScript 通常被直接嵌入 HTML 页面。
    • JavaScript 是一种解释性语言(就是说,代码执行不进行预编译)。
    • 所有的人无需购买许可证均可使用 JavaScript。

    JavaScript 能做什么?

    JavaScript 为 HTML 设计师提供了一种编程工具
    HTML 创作者往往都不是程序员,但是 JavaScript 却是一种只拥有极其简单的语法的脚本语言!几乎每个人都有能力将短小的代码片断放入他们的 HTML 页面当中。
    JavaScript 可以将动态的文本放入 HTML 页面
    类似于这样的一段 JavaScript 声明可以将一段可变的文本放入 HTML 页面:document.write("<h1>" + name + "</h1>")
    JavaScript 可以对事件作出响应
    可以将 JavaScript 设置为当某事件发生时才会被执行,例如页面载入完成或者当用户点击某个 HTML 元素时。
    JavaScript 可以读写 HTML 元素
    JavaScript 可以读取及改变 HTML 元素的内容。
    JavaScript 可被用来验证数据
    在数据被提交到服务器之前,JavaScript 可被用来验证这些数据。
    JavaScript 可被用来检测访问者的浏览器
    JavaScript 可被用来检测访问者的浏览器,并根据所检测到的浏览器,为这个浏览器载入相应的页面。
    JavaScript 可被用来创建 cookies
    JavaScript 可被用来存储和取回位于访问者的计算机中的信息。

    真实的名称是 ECMAScript

    JavaScript 的正式名称是 "ECMAScript"。 这个标准由 ECMA 组织发展和维护。ECMA-262 是正式的 JavaScript 标准。这个标准基于 JavaScript (Netscape) 和 JScript (Microsoft)。Netscape (Navigator 2.0) 的 Brendan Eich 发明了这门语言,从 1996 年开始,已经出现在所有的 Netscape 和 Microsoft 浏览器中。ECMA-262 的开发始于 1996 年,在 1997 年 7 月,ECMA 会员大会采纳了它的首个版本。在 1998 年,该标准成为了国际 ISO 标准 (ISO/IEC 16262)。这个标准仍然处于发展之中。

    如何实现 JavaScript

    HTML 的 <script> 标签用于把 JavaScript 代码插入 HTML 页面当中。

    方式一:

    <script language="javascript" type="text/javascript">
        document.write("这是由javascript输出的文字");
    </script>

    方式二:

    <script src="one.js"></script>

    如何与老的浏览器打交道

    那些不支持 JavaScript 的浏览器会把脚本作为页面的内容来显示。为了防止这种情况发生,我们可以使用这样的 HTML 注释标签:

    <script type="text/javascript">

    <!--

      document.write("Hello World!");

    //—>

    </script>

    注释行末尾的两个正斜杠是 JavaScript 的注释符号,它会阻止 JavaScript 编译器对这一行的编译。

    把 JavaScript 放置到何处

    当页面载入时,会执行位于 body 部分的 JavaScript。当被调用时,位于 head 部分的 JavaScript 才会被执行。

    你可以在文档中放置任何数量的脚本,因此你既可以把脚本放置到 body,又可以放置到 head 部分。

    需要注意的是:

    在一个HTML文档中,所有位置的脚本代码,包括引入的外部js代码,他们都将成为一个整体。你可以把他们想象成在一个类中。因此,有时来自不同文件的重名方法或重名变量,会导致意想不到的错误发生。

    JavaScript 语句

    JavaScript 是由浏览器执行的语句序列。这些命令的作用是告诉浏览器要做的事情。通常要在每行语句的结尾加上一个分号。大多数人都认为这是一个好的编程习惯,而且在 web 上的 JavaScript 案例中也常常会看到这种情况。

    分号是可选的(根据 JavaScript 标准),浏览器把行末作为语句的结尾。正因如此,常常会看到一些结尾没有分号的例子。通过使用分号,可以在一行中写多条语句。

    JavaScript 变量

    JavaScript 变量名称的规则:

    • 应该起一些具有意义的,描述性的,让人望文生义的变量名
    • 变量对大小写敏感(y 和 Y 是两个不同的变量)【JavaScript 对大小写敏感】
    • 变量必须以字母或下划线开始
    • 变量名不能使用系统的关键字或保留字

    JavaScript 变量的类型:

    JavaScript 是一种弱类型的语言,因此变量的类型由赋值号右边的数据所决定。

    JavaScript 运算符

    算术运算符:+  –  *   /  %  ++  --  ,其中+号还被重载用于拼接字符串,另外,任何类型+上字符串都是字符串。

    赋值运算符:=  +=  -=  *=  /=  %=

    比较运算符:==  ===  !=  >  <  >=  <=

    逻辑运算符:&&  ||  !

    条件运算符:? :

    JavaScript 分支语句

    传统的 if 。。else,if 。。else if 。。else 的嵌套都是可行的。

    switch(n)中的 n 可以是表达式,但通常是变量,case 结构中也需要使用 break 分隔。

    JavaScript 消息框

    可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。

    警告框经常用于确保用户可以得到某些信息。当警告框出现后,用户需要点击确定按钮才能继续进行操作。

    alert("文本")

    确认框用于使用户可以验证或者接受某些信息。当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。

    confirm("文本")

    提示框经常用于提示用户在进入页面前输入某个值。当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。

    prompt("文本","默认值")

    JavaScript 函数

    将脚本编写为函数,就可以避免页面载入时执行该脚本。函数包含着一些代码,这些代码只能被事件激活,或者在函数被调用时才会执行。你可以在页面中的任何位置调用脚本(如果函数嵌入一个外部的 .js 文件,那么甚至可以从其他的页面中调用)。

    建议将函数在页面起始位置定义,即 <head> 部分。

    创建函数的语法:

    function 函数名() { 代码... }

    function 函数名(var1,var2,...,varX) { 代码... }

    JavaScript 变量的生存期

    当您在函数内声明了一个变量后,就只能在该函数中访问该变量。当退出该函数后,这个变量会被撤销。这种变量称为本地变量。您可以在不同的函数中使用名称相同的本地变量,这是因为只有声明过变量的函数能够识别其中的每个变量。

    如果您在函数之外声明了一个变量,则页面上的所有函数都可以访问该变量。这些变量的生存期从声明它们之后开始,在页面关闭时结束。

    JavaScript 循环

    在编写代码时,你常常希望反复执行同一段代码。我们可以使用循环来完成这个功能,这样就用不着重复地写若干行相同的代码。

    JavaScript 有两种(也只有2种)不同种类的循环:
    for
    将一段代码循环执行指定的次数
    while
    当指定的条件为 true 时循环执行代码

    语法格式和java或.NET是一样的。

    使用什么语句可以直接跳出多重循环?

    continue 语句可以在符合一定的条件下结束本轮循环,直接进行下一轮循环。

    break  语句可以在符合一定的条件下直接结束循环,代码会跳转到循环外靠后的最近一条语句继续向下执行。

    在 .NET 中,goto 语句可以直接定位到指定的标记为继续执行代码,而 javascript 中是没有 goto 语句的,那么怎么直接跳出多重循环呢?

    看下面的示例:

    outerloop: // 命名外圈语句  
    for(var i=0; i<10; i++)  
    {  
        innerloop://命名内圈语句  
        for(var j=0; j<10; j++)  
        {  
            // 跳出内圈循环  
            if(j>3){break;}  
            // 跳出内圈循环  
            if(i==2){break innerloop;}  
            // 跳出外圈循环  
            if(i==4){break outerloop;}  
            document.write("i = "+i+" , j = "+j+"<br />");  
        }  
    }  
    document.write("final"+" i = "+i+" , j = "+j);

    可以在循环外设置标记为,然后使用 break 或 continue 加上标记名直接跳出循环。这里要注意,和其他语言不同,JS中一旦跳出,程序是不会继续从标记位处再度往下执行代码的,而是直接执行最外层循环之后的 code,如果后面没有 code,那么程序就此结束。

    JavaScript For...In 声明

    For...In 声明用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。[也是 for 循环家族的一员]

    下例是使用 for..in 遍历一个数组对象,注意这里 .NET 中 foreach 的区别。

    var x
    var mycars = new Array();
    mycars[0] = "Saab";
    mycars[1] = "Volvo";
    mycars[2] = "BMW";
     
    for (x in mycars)
    {
        document.write(mycars[x] + "<br />");
    }

    JavaScript 事件

    事件是可以被 JavaScript 侦测到的行为。

    JavaScript 使我们有能力创建动态页面。事件是可以被 JavaScript 侦测到的行为。

    网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件。比方说,我们可以在用户点击某按钮时产生一个 onClick 事件来触发某个函数。事件在 HTML 页面中定义。

    事件举例:
    • 鼠标点击
    • 页面或图像载入
    • 鼠标悬浮于页面的某个热点之上
    • 在表单中选取输入框
    • 确认表单
    • 键盘按键

    注意:事件通常与函数配合使用,当事件发生时函数才会执行。

    onload 和 onUnload

    当用户进入或离开页面时就会触发 onload 和 onUnload 事件。onload 事件常用来检测访问者的浏览器类型和版本,然后根据这些信息载入特定版本的网页。onload 和 onUnload 事件也常被用来处理用户进入或离开页面时所建立的 cookies。例如,当某用户第一次进入页面时,你可以使用消息框来询问用户的姓名。姓名会保存在 cookie 中。当用户再次进入这个页面时,你可以使用另一个消息框来和这个用户打招呼:"Welcome John Doe!"。

     
    onFocus, onBlur 和 onChange

    onFocus、onBlur 和 onChange 事件通常相互配合用来验证表单。

    下面是一个使用 onChange 事件的例子。用户一旦改变了域的内容,checkEmail() 函数就会被调用。

    <input type="text" size="30" id="email" onchange="checkEmail()">
     
    onSubmit

    onSubmit 用于在提交表单之前验证所有的表单域。

    下面是一个使用 onSubmit 事件的例子。当用户单击表单中的确认按钮时,checkForm() 函数就会被调用。假若域的值无效,此次提交就会被取消。checkForm() 函数的返回值是 true 或者 false。如果返回值为true,则提交表单,反之取消提交。

    <form method="post" action="xxx.htm" onsubmit="return checkForm()">
    onMouseOver 和 onMouseOut

    onMouseOver 和 onMouseOut 用来创建“动态的”按钮。

    下面是一个使用 onMouseOver 事件的例子。当 onMouseOver 事件被脚本侦测到时,就会弹出一个警告框:

    <a href="http://www.w3school.com.cn" onmouseover="alert('An onMouseOver event');return false">
    <img src="w3school.gif" width="100" height="30"></a>

    JavaScript Try...Catch 语句

    JavaScript - 捕获错误

    当我们在网上冲浪时,总会看到带有 runtime 错误的 Javascript 警告框,同时会询问我们“是否进行 debug?”。像这样的错误信息或许对开发人员有用,对用户则未必。当错误发生时,他们往往会选择离开这个站点。

    有两种在网页中捕获错误的方法:

    • 使用 try...catch 语句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用)
    • 使用 onerror 事件。这是用于捕获错误的老式方法。(Netscape 3 以后的版本可用)

    注意:chrome、opera 和 safari 浏览器不支持 onerror 事件。【不建议使用此方式】

    下一个例子会显示一个确认框,让用户来选择在发生错误时点击确定按钮来继续浏览网页,还是点击取消按钮来回到首页。

    <html>
    <head>
    <script type="text/javascript">
    var txt=""
    function message()
    {
        try
        {    
            adddlert("Welcome guest!");
        }
        catch(err)
        {
            txt = "There was an error on this page.
    
    ";
            txt += "Click OK to continue viewing this page,
    ";
            txt += "or Cancel to return to the home page.
    
    ";
        if(!confirm(txt))
        {
            document.location.href="http://www.w3school.com.cn/";
        }
      }
    }
    </script>
    </head>
    <body>
    <input type="button" value="View message" onclick="message()" />
    </body>
    </html>

    JavaScript Throw 声明

    throw 声明的作用是创建 exception(异常)。你可以把这个声明与 try...catch 声明配合使用,以达到控制程序流并产生精确错误消息的目的。

    下面的实例的作用是测定变量 x 的值。如果 x 的值大于 10 或者小于 0,错误就会被抛出 (throw)。这个错误被 catch 的参数捕获后,就会显示出自定义的出错信息。

    <html>
    <body>
    <script type = "text/javascript">
    var x = prompt("Enter a number between 0 and 10:","");
    try
    { 
        if(x>10) 
            throw "Err1";
        else if(x<0)
            throw "Err2";
    } 
    catch(er)
    {
        if(er == "Err1") 
            alert("Error! The value is too high");
        if(er == "Err2") 
            alert("Error! The value is too low");
    }
    </script>
    </body>
    </html>

    JavaScript 特殊字符

    你可以在 JavaScript 中使用反斜杠来向文本字符串添加特殊字符。

    反斜杠用来在文本字符串中插入省略号、换行符、引号和其他特殊字符。

    请看下面的 JavaScript 代码:

    var txt="We are the so-called "Vikings" from the north."
    document.write(txt)

    在 JavaScript 中,字符串使用单引号或者双引号来起始或者结束。这意味着上面的字符串将被截为:We are the so-called。

    要解决这个问题,就必须把在 "Viking" 中的引号前面加上反斜杠 ()。这样就可以把每个双引号转换为字面上的字符串。

    var txt="We are the so-called "Vikings" from the north."
    document.write(txt)

    现在 JavaScript 就可以输出正确的文本字符串了:We are the so-called "Vikings" from the north。

    JavaScript 指导方针

    JavaScript 对大小写敏感

    名为 "myfunction" 的函数和名为 "myFunction" 的函数是两个不同的函数,同样,变量 "myVar" 和变量 "myvar" 也是不同的。JavaScript 对大小写敏感 - 所以当您创建或使用变量、对象及函数时,请注意字符的大小写。

    空格

    JavaScript 会忽略多余的空格。所以您可以在代码中添加适当的空格,使得代码的可读性更强。下面的两行是等效的:

    name="Hege"
    name = "Hege"
    换行

    您可以在文本字符串内部使用反斜杠对代码进行折行。下面的例子是正确的:

    document.write("Hello 
    World!")

    但是不能像这样折行:

    document.write 
    ("Hello World!")
  • 相关阅读:
    浏览器渲染机制
    isEmpty 和 isBlank 的用法区别
    Mybatis-plus
    Java8的JVM内存结构
    【面试题】关于线程交替的面试题
    java中的final的作用
    线程池
    六种实现单例模式的方法
    SQL优化常用方法
    HTML学习笔记
  • 原文地址:https://www.cnblogs.com/liubin1988/p/7811188.html
Copyright © 2020-2023  润新知