美文网首页
JavaScript学习笔记

JavaScript学习笔记

作者: 呆呆滴木木菇凉 | 来源:发表于2017-02-21 16:49 被阅读0次
    <!DOCTYPE html>
    <html>
    <head>
        <title>this is a html web</title>
        <meta charset="utf-8">
    </head>
    <body onload="checkCookies()">
    
    <!-- document.write的使用 写入 HTML 输出-->
        <!-- 您只能在 HTML 输出中使用 document.write。如果您在文档加载后使用该方法,会覆盖整个文档。 -->
    <p>
        document.write("<h1>this is a heading</h1>")
    </p>
    
    <!-- button点击事件 -->
    <p><button type="button" onclick="alert('欢迎使用html')">点我</button></p>
    
    
    <!-- 改变 元素内容 -->
    <p id="demo">
    JavaScript 能改变 HTML 元素的内容。
    </p>
    
    <script>
    function myFunction()
    {
    x=document.getElementById("demo");  // 找到元素
    x.innerHTML="Hello JavaScript!";    // 改变内容
    x.style.color = "#ff0000";          //改变样式
    }
    </script>
    <button type="button" onclick="myFunction()">点击这里改变元素内容</button>
    <p></p>
    <script>
        function changeImage()
        {
            element = document.getElementById('myImage')
            if (element.src.match('hui')) {
                element.src = "./images/huang.png"
            }else{
                element.src = "./images/hui.png"
            }
        }
    </script>
    <!-- 图片可用相对路径 也可以用绝对路径 -->
    ![](./images/hui.png)
    
    <!-- 输入框 -->
    <p>请输入数字。如果输入值不是数字,浏览器会弹出提示框。</p>
    <input id="myInput" type="text" name="请输入数字。如果输入值不是数字,浏览器会弹出提示框。">
    <script>
        function InputFuction()
        {
            var x = document.getElementById("myInput").value;
            if (x==""||isNaN(x)) {
                alert("不是数字");
            }
        }
    </script>
    <button type="button" onclick="InputFuction()">点击验证输入内容</button>
    
    <!-- 分号用于分隔 JavaScript 语句。通常我们在每条可执行的语句结尾添加分号。使用分号的另一用处是在一行中编写多条语句。提示:您也可能看到不带有分号的案例。在 JavaScript 中,用分号来结束语句是可选的。 
    JavaScript 会忽略多余的空格。您可以向脚本添加空格,来提高其可读性
    可以在文本字符串中使用反斜杠对代码行进行换行  document.write("Hello \ World!");
    
    JavaScript 变量
        变量必须以字母开头
        变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
        变量名称对大小写敏感(y 和 Y 是不同的变量)
    
    JavaScript 数据类型
        JavaScript 变量还能保存其他数据类型,比如文本值 (name="Bill Gates")。
        在 JavaScript 中,类似 "Bill Gates" 这样一条文本被称为字符串。
        JavaScript 变量有很多种类型,但是现在,我们只关注数字和字符串。
        当您向变量分配文本值时,应该用双引号或单引号包围这个值。
        当您向变量赋的值是数值时,不要使用引号。如果您用引号包围数值,该值会被作为文本来处理。
    
    在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可:
        var name="Gates", age=56, job="CEO";
        或
        var name="Gates",
        age=56,
        job="CEO";
    
    
        重新声明 JavaScript 变量
    如果重新声明 JavaScript 变量,该变量的值不会丢失:
    在以下两条语句执行后,变量 carname 的值依然是 "Volvo":
    var carname="Volvo";
    var carname;
    
    JavaScript 数据类型
    字符串、数字、布尔、数组、对象、Null、Undefined
        JavaScript 拥有动态类型,这意味着相同的变量可用作不同的类型:
        var x                // x 为 undefined
        var x = 6;           // x 为数字
        var x = "Bill";      // x 为字符串
    
    字符串可以是引号中的任意文本。您可以使用单引号或双引号
    var answer="Nice to meet you!";
    var answer="He is called 'Bill'";
    var answer='He is called "Bill"';
    
    JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
    var x1=34.00;      //使用小数点来写
    var x2=34;         //不使用小数点来写
    极大或极小的数字可以通过科学(指数)计数法来书写:
    var y=123e5;      // 12300000
    var z=123e-5;     // 0.00123
    
    布尔(逻辑)只能有两个值:true 或 false。常用在条件测试中
    
    JavaScript 数组
    下面的代码创建名为 cars 的数组:
    var cars=new Array();
    cars[0]="Audi";
    cars[1]="BMW";
    cars[2]="Volvo";
    或者 (condensed array):
    var cars=new Array("Audi","BMW","Volvo");
    
    
    JavaScript 对象
    对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
    var person={firstname:"Bill", lastname:"Gates", id:5566};
    
    上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。
    空格和折行无关紧要。声明可横跨多行:
    var person={
    firstname : "Bill",
    lastname  : "Gates",
    id        :  5566
    };
    对象属性有两种寻址方式:
    name=person.lastname;
    name=person["lastname"];
    
    
    Undefined 和 Null
    Undefined 这个值表示变量不含有值。
    可以通过将变量的值设置为 null 来清空变量。
    
    
    声明变量类型
    当您声明新变量时,可以使用关键词 "new" 来声明其类型:
    var carname=new String;
    var x=      new Number;
    var y=      new Boolean;
    var cars=   new Array;
    var person= new Object;
    
    
    
    局部 JavaScript 变量
    在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
    您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
    只要函数运行完毕,本地变量就会被删除。
    
    全局 JavaScript 变量
    在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
    
    JavaScript 变量的生存期
    JavaScript 变量的生命期从它们被声明的时间开始。
    局部变量会在函数运行以后被删除。
    全局变量会在页面关闭后被删除。
    
    向未声明的 JavaScript 变量来分配值
    如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
    carname="Volvo";
    将声明一个全局变量 carname,即使它在函数内执行。
    
    如果把数字与字符串相加,结果将成为字符串。
    -->
    
    <p>点击按钮,遍历对对象person的属性</p>
    <button type="button" onclick="ForInFunction()">点击遍历person</button>
    <p id="textDemo"></p>
    <script type="text/javascript">
        function ForInFunction(){
            var x;
            var txt="";
            var person={firstname:"Bill",lastname:"Gates",age:"56"};
            for (x in person) {
                txt=txt+person[x]+" ";
            }
    document.getElementById("textDemo").innerHTML=txt;
        }
    
    </script>
    
    <!-- 
    
    break 语句用于跳出循环。
    continue 用于跳过循环中的一个迭代。
    
    
    
    try 语句测试代码块的错误。
    catch 语句处理错误。
    throw 语句创建自定义错误。
    
    JavaScript 测试和捕捉
    try 语句允许我们定义在执行时进行错误测试的代码块。
    catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
    JavaScript 语句 try 和 catch 是成对出现的。
    try
      {
      //在这里运行代码
      }
    catch(err)
      {
      //在这里处理错误
      }
    
    Throw 语句
    throw 语句允许我们创建自定义错误。
    正确的技术术语是:创建或抛出异常(exception)。
    如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
    throw exception
    异常可以是 JavaScript 字符串、数字、逻辑值或对象。
     -->
    <p></p>
     <script>
    var txt="";
    function message()
    {
    try
      {
      addlert("Welcome guest!");
      }
    catch(err)
      {
      txt="本页有一个错误。\n\n";
      txt+="错误描述:" + err.message + "\n\n";
      txt+="点击确定继续。\n\n";
      alert(txt);
      }
    }
    </script>
    <input type="button" value="查验代码块是否正确" onclick="message()">
    <p></p>
    
    
    <script>
    function throwFunction()
    {
      try
      { 
       var x=document.getElementById("throwDemo").value;
       if(x=="")    throw "值为空";
       if(isNaN(x)) throw "不是数字";
       if(x>10)     throw "太大";
       if(x<5)      throw "太小";
      }
    catch(err)
      {
       var y=document.getElementById("mess");
       y.innerHTML="错误:" + err + "。";
      }
    }
    </script>
    <p>请输入一个5到10之间的数字</p>
    <input type="text" id="throwDemo">
    <button type="button" onclick="throwFunction()">测试输入值</button>
    <p id="mess"></p>
    
    
    <!-- 
    
    JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。
    JavaScript 表单验证
    JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。
    被 JavaScript 验证的这些典型的表单数据有:
        用户是否已填写表单中的必填项目?
        用户输入的邮件地址是否合法?
        用户是否已输入合法的日期?
        用户是否在数据域 (numeric field) 中输入了文本?
    
     -->
    
     <!-- 通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。
        JavaScript 能够改变页面中的所有 HTML 元素
        JavaScript 能够改变页面中的所有 HTML 属性
        JavaScript 能够改变页面中的所有 CSS 样式
        JavaScript 能够对页面中的所有事件做出反应
    
    
    查找 HTML 元素
    通常,通过 JavaScript,您需要操作 HTML 元素。
    为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:
        通过 id 找到 HTML 元素
        通过标签名找到 HTML 元素
        通过类名找到 HTML 元素
    
    提示:通过类名查找 HTML 元素在 IE 5,6,7,8 中无效。
    
    
    改变 HTML 内容
    修改 HTML 内容的最简单的方法是使用 innerHTML 属性。
    document.getElementById(id).innerHTML=new HTML
    
    改变 HTML 属性
    如需改变 HTML 元素的属性,请使用这个语法:
    document.getElementById(id).attribute=new value
     -->
    ![](./images/郁金香.png)
    <script type="text/javascript">
        document.getElementById("imageMales").src="./images/卢浦大桥.png"
    </script>
    
    <!-- 改变 HTML 样式
    如需改变 HTML 元素的样式,请使用这个语法:
    document.getElementById(id).style.property=new style -->
    <p id="p1">Hello World!</p>
    <p id="p2">Hello World!</p>
    <script>
    document.getElementById("p2").style.color="blue";
    document.getElementById("p2").style.fontFamily="Arial";
    document.getElementById("p2").style.fontSize="larger";
    </script>
    
    <p id="changeColor">change text color</P>
    <script type="text/javascript">
        function changeColorFunction(){
            document.getElementById("changeColor").style.color="red";
        }
    </script>
    <button type="button" onclick="changeColorFunction()">点击改变颜色</button>
    
    
    <!-- visibility 隐藏和显示 -->
    <p id="visibilityId">这是一段文本,点击按钮隐藏或者显示该文本</p>
    <script type="text/javascript">
        function visibilityFunction(){
            var btn=document.getElementById("visibilityBtn");
            if (btn.innerText=="隐藏") {
                btn.innerText="显示";
                document.getElementById("visibilityId").style.visibility="hidden";
            }else{
                btn.innerText="隐藏";
                document.getElementById("visibilityId").style.visibility="visible";
            }
        }
    </script>
    <button id="visibilityBtn" type="button" onclick="visibilityFunction()">隐藏</button>
    
    
    
    <!-- 对事件做出反应
    我们可以在事件发生时执行 JavaScript,比如当用户在 HTML 元素上点击时。
    如需在用户点击某个元素时执行代码,请向一个 HTML 事件属性添加 JavaScript 代码:
    onclick=JavaScript
    HTML 事件的例子:
        当用户点击鼠标时
        当网页已加载时
        当图像已加载时
        当鼠标移动到元素上时
        当输入字段被改变时
        当提交 HTML 表单时
        当用户触发按键时
     -->
    
    <h1 onclick="this.innerHTML='谢谢!'">点击文本改变内容</h1>
    
    <script>
    function changetext(id)
    {
    id.innerHTML="谢谢!";
    }
    </script>
    <p onclick="changetext(this)">点击文本改变内容</p>
    
    
    <!-- 使用 HTML DOM 来分配事件
    HTML DOM 允许您通过使用 JavaScript 来向 HTML 元素分配事件: -->
    <button id="displayBtn">点击按钮执行<em>displayDate()</em>函数</button>
    <script type="text/javascript">
        document.getElementById("displayBtn").onclick=function(){displayDate()};
        function displayDate(){
            document.getElementById("displayDemo").innerHTML=Date();
        }
    </script>
    <p id="displayDemo"></p>
    
    <!-- onload 和 onunload 事件
    onload 和 onunload 事件会在用户进入或离开页面时被触发。
    onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
    onload 和 onunload 事件可用于处理 cookie。 -->
    <script type="text/javascript">
        function checkCookies(){
            if (navigator.cookieEnabled==true) {
                alert("已启用cookies");
            }else
            alert("未启用cookies");
        }
    </script>
    
    <!-- onchange 事件
    onchange 事件常结合对输入字段的验证来使用。
    下面是一个如何使用 onchange 的例子。当用户改变输入字段的内容时,会调用 upperCase() 函数。 -->
    <script type="text/javascript">
        function onchangeFunction(){
            var x=document.getElementById("fname");
            x.value=x.value.toUpperCase();
        }
    </script>
    请输入英文字符:<input type="text" id="fname" onchange="onchangeFunction()">
    <P>当您离开输入字段时,会触发将输入文本转化为大写的函数</P>
    
    <!-- onmouseover 和 onmouseout 事件
    onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。 -->
    <div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color: green;width: 120px;height: 20px;padding: 10px;color: #ffffff">把鼠标移到上面</div>
    <script type="text/javascript">
        function mOver(obj){
            obj.innerHTML="谢谢"
        }
        function mOut(obj){
            obj.innerHTML="把鼠标移到上面"
        }
    </script>
    <p></p>
    <!-- onmousedown、onmouseup 以及 onclick 事件
    onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,最后,当完成鼠标点击时,会触发 onclick 事件。 -->
    <div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color: green;color: #ffffff;width: 90px;height: 20px;padding: 10px;font-size: 12px">请点击</div>
    <script type="text/javascript">
        function mDown(obj){
            obj.style.backgroundColor="#1ec5e5";
            obj.innerHTML="请释放鼠标按钮"
        }
        function mUp(obj){
            obj.style.backgroundColor="green";
            obj.innerHTML="请按下鼠标按钮"
        }
    </script>
    <p></p>
    <h1 onmouseover="style.color='red'" onmouseout="style.color='blue'">
    请把鼠标移到这段文本上</h1>
    
    <div id="divdiv">
        <p>这是段落一</p>
        <p>这是段落二</p>
    </div>
    <script type="text/javascript">
        var para=document.createElement("p");
        var node=document.createTextNode("这是新增段落三");
        para.appendChild(node);
        var element=document.getElementById("divdiv");
        element.appendChild(para);
    </script>
    <!-- 这段代码创建新的 <p> 元素:
    
    var para=document.createElement("p");
    
    如需向 <p> 元素添加文本,您必须首先创建文本节点。这段代码创建了一个文本节点:
    
    var node=document.createTextNode("这是新段落。");
    
    然后您必须向 <p> 元素追加这个文本节点:
    
    para.appendChild(node);
    
    最后您必须向一个已有的元素追加这个新元素。
    
    这段代码找到一个已有的元素:
    
    var element=document.getElementById("div1");
    
    这段代码向这个已有的元素追加新元素:
    
    element.appendChild(para); -->
    
    <script type="text/javascript">
        // var element=document.getElementById("divdiv");
        element.removeChild(para);
    </script>
    
    
    
    <!-- 
    JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
    此外,JavaScript 允许自定义对象。
     -->
    
     <!-- 数字精度
    整数(不使用小数点或指数计数法)最多为 15 位。
    小数的最大位数是 17,但是浮点运算并不总是 100% 准确: 
    
    如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
    提示:绝不要在数字前面写零,除非您需要进行八进制转换。
    -->
    
    
    <!-- 
    返回当日的日期和时间
        1.使用 Date() 方法获得当日的日期。
    getTime()
        2.getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。
    setFullYear()
        3.使用 setFullYear() 设置具体的日期。
    toUTCString()
        4.使用 toUTCString() 将当日的日期(根据 UTC)转换为字符串。
    getDay()
        4.使用 getDay() 和数组来显示星期,而不仅仅是数字。
    -->
    
    <script type="text/javascript">
    document.write(Date()+"<br />");
    
    var d=new Date();
    document.write("从 1970/01/01 至今已过去 " + d.getTime() + " 毫秒"+"<br />");
    
    var d = new Date();
    d.setFullYear(1992,10,3);
    document.write(d+"<br />");
    
    var d = new Date();
    document.write (d.toUTCString()+"<br />");
    
    var d=new Date()
    var weekday=new Array(7)
    weekday[0]="星期日"
    weekday[1]="星期一"
    weekday[2]="星期二"
    weekday[3]="星期三"
    weekday[4]="星期四"
    weekday[5]="星期五"
    weekday[6]="星期六"
    
    document.write("今天是" + weekday[d.getDay()])
    
    
    var myDate=new Date();
    myDate.setFullYear(2008,8,9);
    
    var today = new Date();
    
    if (myDate>today)
    {
    alert("Today is before 9th August 2008");
    }
    else
    {
    alert("Today is after 9th August 2008");
    }
    
    </script>
    <p></p>
    
    
    <!-- 数组对象的作用是:使用单独的变量名来存储一系列的值。 -->
    <script type="text/javascript">
    var mycars = new Array()
    mycars[0] = "Saab"
    mycars[1] = "Volvo"
    mycars[2] = "BMW"
    
    // 遍历数组
    for (i=0;i<mycars.length;i++)
    {
    document.write(mycars[i] + "<br />")
    }
    
    for (x in mycars)
    {
    document.write(mycars[x] + "<br />")
    }
    
    
    // 合并数组
    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    
    var arr2 = new Array(3)
    arr2[0] = "James"
    arr2[1] = "Adrew"
    arr2[2] = "Martin"
    
    document.write(arr.concat(arr2))
    
    // 使用 join() 方法将数组的所有元素组成一个字符串。
    document.write(arr.join());
    document.write("<br />");
    document.write(arr.join("."));
    document.write("<br />");
    
    // 文字数组 - sort()   使用 sort() 方法从字面上对数组进行排序
    var arr = new Array(6)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    arr[3] = "James"
    arr[4] = "Adrew"
    arr[5] = "Martin"
    document.write(arr+"<br/>");
    document.write(arr.sort())
    document.write("<br />");
    
    
    // 数字数组 - sort()    使用 sort() 方法从数值上对数组进行排序。
    function sortNumber(a, b)
    {
    return a - b
    }
    var arr = new Array(6)
    arr[0] = "10"
    arr[1] = "5"
    arr[2] = "40"
    arr[3] = "25"
    arr[4] = "1000"
    arr[5] = "1"
    document.write(arr+"<br/>")
    document.write(arr.sort(sortNumber))
    </script>
    
    <!-- 
    Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false)
    
    创建 Boolean 对象
    使用关键词 new 来定义 Boolean 对象。下面的代码定义了一个名为 myBoolean 的逻辑对象:
    var myBoolean=new Boolean()
    如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)
    下面的所有的代码行均会创建初始值为 false 的 Boolean 对象。
    var myBoolean=new Boolean();
    var myBoolean=new Boolean(0);
    var myBoolean=new Boolean(null);
    var myBoolean=new Boolean("");
    var myBoolean=new Boolean(false);
    var myBoolean=new Boolean(NaN);
    
    下面的所有的代码行均会创初始值为 true 的 Boolean 对象:
    var myBoolean=new Boolean(1);
    var myBoolean=new Boolean(true);
    var myBoolean=new Boolean("true");
    var myBoolean=new Boolean("false");
    var myBoolean=new Boolean("Bill Gates");
    
     -->
    <script type="text/javascript">
    var b1=new Boolean( 0)
    var b2=new Boolean(1)
    var b3=new Boolean("")
    var b4=new Boolean(null)
    var b5=new Boolean(NaN)
    var b6=new Boolean("false")
    var b7=new Boolean()
    
    document.write("0 是逻辑的 "+ b1 +"<br />")
    document.write("1 是逻辑的 "+ b2 +"<br />")
    document.write("空字符串是逻辑的 "+ b3 + "<br />")
    document.write("null 是逻辑的 "+ b4+ "<br />")
    document.write("NaN 是逻辑的 "+ b5 +"<br />")
    document.write("字符串 'false' 是逻辑的 "+ b6 +"<br />")
    document.write(b7+"<br/>")
    </script>
    
    <!--
    Math 对象
    Math(算数)对象的作用是:执行普通的算数任务。
    Math 对象提供多种算数值类型和函数。无需在使用这个对象之前对它进行定义。
    
    
    算数值
    
    JavaScript 提供 8 种可被 Math 对象访问的算数值:
    
        常数
        圆周率
        2 的平方根
        1/2 的平方根
        2 的自然对数
        10 的自然对数
        以 2 为底的 e 的对数
        以 10 为底的 e 的对数
    
    这是在 Javascript 中使用这些值的方法:(与上面的算数值一一对应)
    
        Math.E
        Math.PI
        Math.SQRT2
        Math.SQRT1_2
        Math.LN2
        Math.LN10
        Math.LOG2E
        Math.LOG10E
    
     Math 对象的 round 方法对一个数进行四舍五入。
    document.write(Math.round(4.7))            //5
    
    Math 对象的 random() 方法来返回一个介于 0 和 1 之间的随机数:
    document.write(Math.random())
    
    使用了 Math 对象的 floor() 方法和 random() 来返回一个介于 0 和 10 之间的随机数:
    document.write(Math.floor(Math.random()*11))        
    
    -->
    <script type="text/javascript">
    // round()的使用 
        document.write(Math.round(0.456)+"<br/>")
        document.write(Math.round(0.789)+"<br/>")
        document.write(Math.round(0.5)+"<br/>")
        document.write(Math.round(-4.45)+"<br/>")
        document.write(Math.round(-4.67)+"<br/>")
    // random()的使用  使用 random() 来返回 0 到 1 之间的随机数。
        document.write(Math.random()+"<br/>")
    
    // 使用 max() 来返回两个给定的数中的较大的数。(在 ECMASCript v3 之前,该方法只有两个参数。)
    document.write(Math.max(5,7) + "<br />")
    document.write(Math.max(-3,5) + "<br />")
    document.write(Math.max(-3,-5) + "<br />")
    document.write(Math.max(7.25,7.30) + "<br />")
    // 使用 min() 来返回两个给定的数中的较小的数。(在 ECMASCript v3 之前,该方法只有两个参数。)
    document.write(Math.min(5,7,2,3) + "<br />")
    document.write(Math.min(-3,5) + "<br />")
    document.write(Math.min(-3,-5) + "<br />")
    document.write(Math.min(7.25,7.30))
    
    </script>
    
    <!-- 
    什么是 RegExp?
    RegExp 是正则表达式的缩写。
    当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。
    简单的模式可以是一个单独的字符。
    更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。
    您可以规定字符串中的检索位置,以及要检索的字符类型,等等。
    
    
    定义 RegExp
    RegExp 对象用于存储检索模式。
    通过 new 关键词来定义 RegExp 对象。以下代码定义了名为 patt1 的 RegExp 对象,其模式是 "e":
    var patt1=new RegExp("e");
    当您使用该 RegExp 对象在一个字符串中检索时,将寻找的是字符 "e"。
    
    
    RegExp 对象的方法
        RegExp 对象有 3 个方法:test()、exec() 以及 compile()。
    
    test()
        test() 方法检索字符串中的指定值。返回值是 true 或 false。
    example:
        var patt1=new RegExp("e");
        document.write(patt1.test("The best things in life are free")); 
    
    exec()
        exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
    example:
        var patt1=new RegExp("e");
        document.write(patt1.exec("The best things in life are free")); 
    
    compile()
        compile() 方法用于改变 RegExp。
        compile() 既可以改变检索模式,也可以添加或删除第二个参数。
     -->
    <p></p>
    <script type="text/javascript">
        var patt1=new RegExp("e","g")
        do{
            result=patt1.exec("the best things in life are free")
            document.write(result+"<br/>")
        }
        while(result!=null)
    </script>
    
    
    <script type="text/javascript">
    var patt1=new RegExp("e");
    document.write(patt1.test("The best things in life are free"));
    
    patt1.compile("d");  //由于字符串中存在 "e",而没有 "d"
    
    document.write(patt1.test("The best things in life are free"));
    </script>
    
    <!-- 
    Window 尺寸
    
    有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)。
    
    对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
    
        window.innerHeight - 浏览器窗口的内部高度
        window.innerWidth - 浏览器窗口的内部宽度
    
    对于 Internet Explorer 8、7、6、5:
    
        document.documentElement.clientHeight
        document.documentElement.clientWidth
    
    或者
    
        document.body.clientHeight
        document.body.clientWidth
    
    实用的 JavaScript 方案(涵盖所有浏览器):
     -->
    
    <p id="wh"></p>
    
    <script>
    var w=window.innerWidth
    || document.documentElement.clientWidth
    || document.body.clientWidth;
    
    var h=window.innerHeight
    || document.documentElement.clientHeight
    || document.body.clientHeight;
    
    x=document.getElementById("wh");
    x.innerHTML="浏览器的内部窗口宽度:" + w + ",高度:" + h + "。"
    </script>
    
    <!-- 
    其他 Window 方法
    一些其他方法:
        window.open() - 打开新窗口
        window.close() - 关闭当前窗口
        window.moveTo() - 移动当前窗口
        window.resizeTo() - 调整当前窗口的尺寸
     -->
    
    <!-- 
    Window Screen
    window.screen 对象包含有关用户屏幕的信息。
    window.screen 对象在编写时可以不使用 window 这个前缀。
    
    一些属性:
    
        screen.availWidth - 可用的屏幕宽度
        screen.availHeight - 可用的屏幕高度
    
    Window Screen 可用宽度
    screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。
    
    Window Screen 可用高度
    screen.availHeight 属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏。
     -->
    
    
     <!-- 
    window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。
    Window Location
    window.location 对象在编写时可不使用 window 这个前缀。
    
    一些例子:
        location.href 属性返回当前页面的 URL
        location.hostname 返回 web 主机的域名
        location.pathname 返回当前页面的路径和文件名
        location.port 返回 web 主机的端口 (80 或 443)
        location.protocol 返回所使用的 web 协议(http:// 或 https://)
        location.assign() 方法加载新的文档
      -->
    <script>
    function newDoc()
     {
     window.location.assign("http://www.w3school.com.cn")
     }
    </script>
    <p><input type="button" value="加载新文档" onclick="newDoc()"></p>
    
    
    <!-- 
    Window History
    window.history 对象包含浏览器的历史。
    window.history 对象在编写时可不使用 window 这个前缀。
    为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。
    
    一些方法:
    
        history.back() - 与在浏览器点击后退按钮相同
        history.forward() - 与在浏览器中点击按钮向前相同
     -->
    
    
     <!-- 
    window.navigator
    window.navigator 对象包含有关访问者浏览器的信息。
    window.navigator 对象在编写时可不使用 window 这个前缀。 
    
    
    警告:来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:
        navigator 数据可被浏览器使用者更改
        浏览器无法报告晚于浏览器发布的新操作系统
    
    浏览器检测
    由于 navigator 可误导浏览器检测,使用对象检测可用来嗅探不同的浏览器。
    由于不同的浏览器支持不同的对象,您可以使用对象来检测浏览器。例如,由于只有 Opera 支持属性 "window.opera",您可以据此识别出 Opera。
    
    例子:if (window.opera) {...some action...}
    
    -->
    
    <div id="example"></div>
    
    <script>
    
    txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
    txt+= "<p>Browser Name: " + navigator.appName + "</p>";
    txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
    txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
    txt+= "<p>Platform: " + navigator.platform + "</p>";
    txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";
    txt+= "<p>User-agent language: " + navigator.systemLanguage + "</p>";
    
    document.getElementById("example").innerHTML=txt;
    </script>
    
    <!-- 
    
    警告框
    警告框经常用于确保用户可以得到某些信息。
    当警告框出现后,用户需要点击确定按钮才能继续进行操作。
    语法:
    alert("文本")
    
    
    确认框
    确认框用于使用户可以验证或者接受某些信息。
    当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。
    如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。
    语法:
    confirm("文本")
    
    
    提示框
    提示框经常用于提示用户在进入页面前输入某个值。
    当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。
    如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。
    语法:
    prompt("文本","默认值")
    
     -->
     <p><input type="button" onclick="disp_alert()" value="显示警告框"></p>
     <script type="text/javascript">
    function disp_alert()
    {
    alert("再次向您问好!在这里,我们向您演示" + '\n' + "如何向警告框添加折行。")
    }
    </script>
    
    <!-- JavaScript 计时
     通过使用 JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。-->
    
     <!-- 计时 5 秒后弹出一个警告框 -->
    <script type="text/javascript">
        function timedMsg(){
            setTimeout("alert('5秒了')",5000);
        }
    </script>
    <p><button onclick="timedMsg()">点击按钮5秒后给出提示</button></p>
    
    <!-- 一个无穷循环中的计时事件 -->
    <script type="text/javascript">
        var t=0;
        function timedOut(){
            document.getElementById("timedOutTxt").innerText=t;
            t++;
            setTimeout("timedOut()",1000);
        }
    </script>
    <p id="timedOutTxt"><button onclick="timedOut()">开始计时</button>计时</p>
    
    <!-- 带有停止按钮的无穷循环中的计时事件 
    
    setTimeout()
        未来的某时执行代码
    clearTimeout()
        取消setTimeout() 
    
    setTimeout()
    语法
    var t=setTimeout("javascript语句",毫秒)
    
    setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
    
    setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。
    
    第二个参数指示从当前起多少毫秒后执行第一个参数。
    -->
    <script type="text/javascript">
        var t=0
        var tim
        function startTimedOut(){
            document.getElementById("stTimeTxt").value=t
            t=t+1
            tim=setTimeout("startTimedOut()",1000)
        }
        function stopTimedOut(){
            t=0;
            setTimeout("document.getElementById('stTimeTxt').value=0",0);
            clearTimeout(tim);
        }
    </script>
    <form>
    <input type="button" value="开始计时!" onClick="startTimedOut()">
    <input type="text" id="stTimeTxt">
    <input type="button" value="停止计时!" onClick="stopTimedOut()">
    </form>
    
    <!-- 什么是cookie?
    
    cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。
    cookie 用来识别用户。
    
    名字 cookie
        当访问者首次访问页面时,他或她也许会填写他/她们的名字。名字会存储于 cookie 中。当访问者再次访问网站时,他们会收到类似 "Welcome John Doe!" 的欢迎词。而名字则是从 cookie 中取回的。
    密码 cookie
        当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。当他们再次访问网站时,密码就会从 cookie 中取回。
    日期 cookie
        当访问者首次访问你的网站时,当前的日期可存储于 cookie 中。当他们再次访问网站时,他们会收到类似这样的一条消息:"Your last visit was on Tuesday August 11, 2005!"。日期也是从 cookie 中取回的。  -->
    
    
    <!-- JavaScript 库 - jQuery、Prototype、MooTools。
    jQuery
    jQuery 是目前最受欢迎的 JavaScript 框架。
    它使用 CSS 选择器来访问和操作网页上的 HTML 元素(DOM 对象)。
    jQuery 同时提供 companion UI(用户界面)和插件。
    许多大公司在网站上使用 jQuery:
        Google
        Microsoft
        IBM
        Netflix
    
    Prototype
    Prototype 是一种库,提供用于执行常见 web 任务的简单 API。
    API 是应用程序编程接口(Application Programming Interface)的缩写。它是包含属性和方法的库,用于操作 HTML DOM。
    Prototype 通过提供类和继承,实现了对 JavaScript 的增强。
     
    MooTools
    MooTools 也是一个框架,提供了可使常见的 JavaScript 编程更为简单的 API。
    MooTools 也含有一些轻量级的效果和动画函数。
    YUI - Yahoo! User Interface Framework,涵盖大量函数的大型库,从简单的 JavaScript 功能到完整的 internet widget。
    
    其他框架
    Ext JS - 可定制的 widget,用于构建富因特网应用程序(rich Internet applications)。
    Dojo - 用于 DOM 操作、事件、widget 等的工具包。
    script.aculo.us - 开源的 JavaScript 框架,针对可视效果和界面行为。
    UIZE - Widget、AJAX、DOM、模板等等。-->
    
    
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:JavaScript学习笔记

          本文链接:https://www.haomeiwen.com/subject/imyuwttx.html