• JavaScript基础


    JavaScript

    JavaScript由于历史的演变,其内容包括:

    • ECMAScript:所有客户端语言的标准(比如SQL)
    • JavaScript:自己特有的东西,包括:
      • BOM浏览器对象模型,如弹窗、窗口缩放等
      • DOM文档对象模型,控制页面显示的内容

    JavaScript是弱类型语言,定义变量不需要指定类型,如var a = "123";

    ECMAScript

    基本语法:基本类型、运算、流程控制语句。(和java很像)

    基本对象:除了基本类型,其余都是对象,如:

    • 函数对象:var fun1 = function(){...}
    • 数组对象:var arr = [1, 2, "hello"];
    • 正则化
    • 其他常用:int a = parseInt(str);字符串转数字

    基本语法

    1. 与html结合方式

      • 内部结合:任意位置<script>alert("hello world");</script>
      • 外部结合:<script src="js/a.js"></script>
    2. 注释

      • 单行 //
      • 多行 /* */
    3. 数据类型

      • 原始数据类型(基本数据类型)
        • number:数字(整数、小时、NaN)
        • string:字符串,单引号双引号都可以
        • boolean:true和false
        • null:一个对象为空的占位符
        • undefined:如果一个变量未初始化,默认为undefined类型
      • 引用数据类型(对象)
    4. 变量

      • js是如类型型语言,定义为:var a = 12; alert(a);
    5. 运算符

      • 一元运算符:++,--,+(正号,数据类型转换string转int),-(负号)
      • 算数运算符:+ - * / %
      • 复制运算符:=, +=, -=
      • 比较运算符:>, <, >=, <=, ==(先转化成相同类型), ===(全等于,先比较类型,再比较值)
      • 逻辑运算符:&&, ||, !
      • 三元运算符:?:
    6. 流程控制语句

      <script>
      var a = 1;
      switch(a){
          case 1: alert("number"); break;
          case "abc": alert("string"); break;
          case undefines: alert("undefined"); break;
      }
      
      var b = 1;
      while(b<=100){b++;}
      document.write(b + "<br>");
      
      for(var i=1; i<=100; i++){b++;}
      document.write(b);
      </script>
      

    基本对象

    在js里面方法(函数)也是对象。

    Function对象:

    // 方法1
    function add(a, b) {
        return a+b;
    }
    var a = add(1, 2);
    document.write(a);
    
    // 方法2
    function addAll(){
        var sum = 0;
        for (var i=0; i< arguments.length; i++){
            sum += arguments[i];
        }
        return sum;
    }
    document.write(addAll(1, 2, 3, 4));
    

    Array:(数组中类型可变,数组长度可变)

    var arr = [1, 2, 3];
    var arr2 = new Array([1, "abc", true]);
    var arr3 = new Array(10); // 长度
    document.write(arr3.length + "<br>");
    document.write(arr3.join() + "<br>"); // 拼接成字符串
    

    Date:

    var date = new Date();
    document.write(date.toLocaleString()); // 和当前电脑格式一致
    

    RegExp正则表达式:

    1. 单个字符
      • [ab] a或者b
      • [a-zA-Z] a-Z其中一个字符
      • d 单个数字
      • w 单个字母
    2. 量词
      • ? 0次或1次
      • * 0次或多次
      • + 1次或多次
      • {m,n} m,n次
    3. 开始结束:^$
    // var reg = new RegExp("^\w{6,12}$");
    var reg = /^w{6,12}$/;
    var username = "zhangsan";
    var flag = reg.test(username);
    document.write(flag);
    

    Global:全局对象,Global封装的方法不需要创建就可以直接调用

    // encodeURI编码:将字符编码成16进制
    var str = "百度知道";
    var url = encodeURI(str);
    document.write(url + "<br>");
    var s = decodeURI(url) + "<br>";
    document.write(s);
    
    // encodeURIComponent:可以编码更多的字符,比如(/ ?等)
    var str = "百度知道";
    var url = encodeURIComponent(str);
    document.write(url + "<br>");
    var s = decodeURIComponent(url) + "<br>";
    document.write(s);
    
    // parseInt(): 字符串转数字
    var str = "123sa456";
    document.write(parseInt(str) + "<br>");  // 输出123 
    
    // eval(): 将js字符串转成脚本执行
    var jscode = "alert(123)";
    eval(jscode);
    

    其他:Math/Boolean/Number/String等等

    BOM

    浏览器对象模型,包括:

    1. Window窗口对象
    2. Location地址栏对象:window.location
    3. History历史记录对象:window.history
    4. Navigator浏览器对象(浏览器版本等,不学)
    5. Screeen显示器屏幕对象(显示器大小型号等,不学)

    Window

    不用创建,省略window,直接使用,如:window.alert("hello");

    常用方法有3类:

    与弹出框有关的方法:alert()警告 confirm()确认 prompt()输入

    var flag = confirm("确认删除?");
    if (!flag) {
        alert("已删除");
    }
    
    var str = prompt("请输入字符串");
    alert(str);
    

    与打开关闭有关的方法:open() close()

    var newWin = open("http://www.baidu.com");
    newWin.close();
    

    与定时器有关的方法:setTimeout() clearTimeout() setInterval() clearInterval

    function fun1() {
        alert("倒计时结束");
    }
    // 一次性定时器
    var id1 = setTimeout(fun1, 2000);
    clearTimeout(id1);
    // 循环定时器
    setInterval(fun1, 2000);
    

    Location

    地址栏对象:

    1. 常用方法有:重新加载页面location.reload();
    2. 常用属性有:网站地址:location.href("http://www.baidu.com");

    DOM

    文档对象模型:将标记语言各个部分封装成对象,使用这些对象,对文档进行增删改查。

    W3C DOM标准被分成三个不同的部分:

    1. 核心 DOM:针对标记语言的标准模型

      • Document文档对象
      • Element元素对象
      • Attribute属性对象
      • Text文本对象
      • Comment注释对象
      • Node节点对象(上面几个的父对象)
    2. XML DOM:针对XML文档的标准模型

    3. HTML DOM:针对HTML文档的标准模型

    Document

    获取元素:var btn = document.getElementById("btn");

    获取元素的值:var age = document.getElementById("age").value;

    创建元素:var table = document.createElement("table");

    Node

    节点对象可以是元素、属性、文本等。

    常用增删改查方法:(获取父元素,对子元素增删改查)

    • appendChild()
    • removeChild()
    • replaceChild()

    常用属性:

    • parentNode:获取父节点

    HTML DOM

    HTML DOM:针对HTML文档的标准模型,主要有:

    • 标签体的设置和获取:div1.innerHTML("Hello <br>")
    • 使用html元素对象的属性:img.src="aaa.jpg";
    • 控制样式:
      • div1.style.border = "1px solid red;"
      • div1.className = 'd1'; 赋值一个定义好的CSS样式

    Event 事件

    Event属于HTML DOM。

    概念:某些组件的执行,触发了某些代码的执行。

    简单使用:(赋值一个方法)

    // 执行代码没有参数
    document.getElementById("btn").onclick = function () {
        alert("hello");
    }
    // 执行代码有事件参数
    document.getElementById("name").onkeydown = function (event) {
        alert(event.keyCode);
    }
    

    常见事件:

    1. 点击:
      • onclick
      • ondbclick
    2. 焦点:
      • onblur失去焦点:常用于表单校验
      • onfocus获得焦点
    3. 加载:onload window.onload = function(){...}
    4. 鼠标事件
      • onmousedown鼠标按下
      • onmouseup松开
      • onmousemove移动
      • onmouseover覆盖
      • onmouseout移开
    5. 键盘事件
      • onkeydown键盘按下
      • onkeyup松开
      • onkeypress按下并松开
    6. 选中和改变
      • onchange域的内容发生改变
      • onselect文本被选中
    7. 表单事件
      • onsubmit提交表单(可以阻止表单提交)
      • onreset重置

    案例

    轮播

    知识点:

    • BOM中setInterval()设置倒计时。
    • DOM中getElementById()获取元素,并修改属性。
    var i = 0;
    var imgs = ["img/banner_1.jpg", "img/banner_2.jpg"];
    function fun1() {
    	var cur = document.getElementById("banner");
    	if(i==1){ i=0; }else{ i=1; }
    	cur.src = imgs[i];
    }
    setInterval(fun1, 3000);
    

    跳转到首页

    知识点:

    • BOM中setInterval()设置倒计时
    • BOM中location地址栏
    • BOM中getElementById()获取元素,并修改内容。
    <span id="time" style="color: red;">5</span>秒后,自动跳转...
    <script>
        var i = 5;
        function fun1() {
            i -= 1;
            var cur = document.getElementById("time");
            cur.innerText = i;
            if (i==0){
                location.href = "http://www.baidu.com";
            }
        }
        window.setInterval(fun1, 1000);
    </script>
    

    动态表格

    • 事件
    • HTML DOM控制样式
    <div align="center"><table border="1">
        <caption>学生信息</caption>
        <tr>
            <th><input type="checkbox" name="cbox" id="firstCbox"></th>
            <th>ID</th>
            <th>Name</th>
            <th>Age</th>
            <th>Option</th>
        </tr>
        <tr>
            <td><input type="checkbox" name="cbox"></td>
            <td>1</td>
            <td>张三</td>
            <td>18</td>
            <td><a href="javascript:void(0);">删除</a></td>
        </tr>
        <tr>
            <td><input type="checkbox" name="cbox"></td>
            <td>2</td>
            <td>李四</td>
            <td>20</td>
            <td><a href="javascript:void(0);">删除</a></td>
        </tr>
    </table></div>
    <script>
        document.getElementById("firstCbox").onclick = function () {
            var cboxs = document.getElementsByName("cbox");
            for (var i=0; i<cboxs.length; i++){
                cboxs[i].checked = this.checked;
            }
        }
        var trs = document.getElementsByTagName("tr");
        for (var i=0; i<trs.length; i++){
            trs[i].onmouseover = function () {
                this.style.backgroundColor = "pink";
            }
            trs[i].onmouseout = function () {
                this.style.backgroundColor = "white";
            }
        }
    </script>
    
  • 相关阅读:
    《求医不如求己》1,2,3全集下载(附人体穴位图)
    Lambda 表达式(C# 编程指南)
    .NET生成静态页面的方案总结
    匿名函数(C# 编程指南)
    NameValueCollection详解
    sql数据库压缩的全面解析
    人的一生
    抓取博客园列表数据
    相对论的时空观
    C#中搜索关键词高亮显示
  • 原文地址:https://www.cnblogs.com/mingriyingying/p/13460997.html
Copyright © 2020-2023  润新知