<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JavaScript 控制網頁行為

      UI 框架

      • Ant-Design:阿里巴巴出品,基于 React 的 UI 框架
      • ElementUI、iview、ice:餓了么出品,基于 Vue 的UI框架
      • Bootstrap:Twitter 推出的一個用于前端的開源工具包
      • AmazeUI:又叫“妹子UI”,一款 HTML5 跨屏前端框架

      1.基本使用

      1.1.引入 JavaScript

      1. 內部標簽使用
      <script>
          //......
      </script>
      
      1. 外部引入
        abc.js
      //......
      

      test.html

      <script src="abc.js"></script>
      
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      
          <!--script標簽內,寫JavaScript代碼-->
          <!--<script>
              alert('hello world');
          </script>-->
      
          <!--外部引入-->
          <!--注意:script標簽必須承兌出現-->
          <script src="js/qj.js"></script>
          <!--不用顯示定義type,默認就是JavaScript-->
          <script type="text/javascript"></script>
      </head>
      <body>
      <!--這里也可以存放-->
      </body>
      </html>
      

      1.2.基本語法

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      
          <script>
              // 1.定義變量
              var score = 71;
              // alert(num);
              // 2.條件控制
              if (score > 60 & score < 70){
                  alert("60-70");
              }else if (score >= 70 && score < 80){
                  alert("70-80");
              }else {
                  alert("other");
              }
              //console.log(score) 在瀏覽器的控制臺打印變量 ==> System.out.println()
              /**
               * 多行注釋
               */
      
          </script>
      
      </head>
      <body>
      
      </body>
      </html>
      

      1.3.數據類型

      1.3.1.變量

      var 變量名 = 值;

      1.3.2.數字

      不區分小數和整數,統一使用 Number 類型

      123 //整數
      123.1 //浮點數
      1.123e3 //科學計數法
      -99 //負數
      NaN // not a number
      Infinity //表示無限大
      

      1.3.3.字符串

      'abc'、"abc"
      consloe.log('a');
      consloe.log("a");
      consloe.log('a'');
      換行:\n
      tab:\t
      Unicode字符:\u4e2d
      ASCII字符:\x41

      多行字符串編寫

      var test=`khbk
      fer
      fref`
      

      模板字符串

      let name = "xiaoming";
      let age = 3;
      let msd = `hello,${name}`;
      

      字符串長度:console.log(student.length)
      字符串不可變
      大小寫轉換

      student.toUpperCase()
      stydent.toLowerCase()
      

      獲取指定字符下標:student,indexOf('t')
      substring
      student.substring(1)//從第一個字符截取到最后一個字符
      student.substring(1,3)//[1,3)

      1.3.4.布爾值

      true、false

      1.3.5.邏輯運算

      &&、||、!

      1.3.6.比較運算符

      =
      ==:等于(類型不一樣,值一樣,也會判斷為 true)
      ===:絕對等于(類型和值都一樣,結果true)
      

      堅持不要使用 == 比較
      注意:

      • NaN 與所有的數值都不相等,包括自己(通過 isNaN(NaN) 來判斷這個數是否是 NaN)
      • 盡量避免使用浮點數進行運算,存在精度問題

      1.3.7.null和undefined

      null:空
      undefined:未定義

      1.3.8.數組

      Java的數值必須是相同類型對象,JS 中不需要這樣
      取數組下標:如果越界,報 undefined
      Array 可以包含任意的數據類型,通過下標取值和賦值
      1、長度:arr.length
      注意:給arr.length賦值,數組大小就會發生變化,如果賦值過小,元素就會丟失
      2、indexOf,通過元素獲得下標索引(字符串的 "1" 和數字 1 是不同的)
      3、slice(),截取 Array 的一部分,返回一個新數組,類似于 String 的 substring
      4、push(壓入到尾部),pop(彈出尾部的一個元素)
      5、unshift(壓入頭部),shift(彈出頭部一個元素)
      6、排序:sort()
      7、元素反轉:reverse()
      8、拼接:concat()
      9、連接符:join(打印拼接數組,使用特定的字符串連接)
      10、多維數組

      1.3.8.對象

      對象是大括號,數組是中括號

          <script>
              var person = {
                  name: "zhangsan",
                  age: 3,
                  tags: ['js', 'java', 'python']
              }
          </script>
      

      賦值或取對象的值:person.name
      使用不存在的對象屬性,報:undefined
      動態刪減屬性:delete person.name
      動態添加:person.name = 'haha'
      判斷屬性值是否在這個對象中:'name' in person
      判斷一個屬性是否是這個對象自身擁有的:person.hasOwnProperty('age')

      1.4.嚴格檢查模式

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <!--
          前提:IDEA 需要設置支持 ES6 語法
          'use strict'; 嚴格檢查模式,預防JavaScript的隨意性導致產生一些問題
          必須寫在JavaScript的第一行
          局部變量建議使用 let 去定義
          -->
          <script>
              'use strict';
              let i = 1;
          </script>
      </head>
      <body>
      
      </body>
      </html>
      

      1.5.流程控制

      if(){}else if(){}else{}

      循環
      while(){}
      do{}while()
      for(let i=0;i<100;i++){}
      forEach循環
      for(let i in arr){}

      1.6.Map 和 Set

      Map:

          <script>
              'use strict';
              // 學生的成績、名字
              let map = new Map([['tom',100],['Jack',90],['haha',80]]);
              let name = map.get('tom');// 通過key獲得value
              map.set('admin',1234);// 新增或修改
              map.delete('tom');// 刪除
              console.log(name);
          </script>
      

      Set:無序不重復的集合

          <script>
              'use strict';
              let set = new Set([3,4,2,1,1,1,1]);// set可以去重
              set.add(5);// 添加
              set.delete(1);// 刪除
              set.has(1);// 是否包含某個元素
          </script>
      

      1.7.iterator

              'use strict';
              // 遍歷數組
              let arr = [1,3,5];
              // for in 是下標
              for (var number of arr) {
                  console.log(number);
              }
      
              // 遍歷 Map
              let map = new Map([['tom',100],['Jack',90],['haha',80]]);
              for (let x of map) {
                  console.log(x);
              }
              // 遍歷 Set
              let set = new Set([2,3,4,5]);
              for (let x of set) {
                  console.log(x);
              }
      

      2.函數及面向對象

      2.1.定義函數

      方式一:
      絕對值函數

              'use strict';
              function abs(x){
                  if (x > 0){
                      return x;
                  }else {
                      return -x;
                  }
              }
      

      如果沒有執行 return,函數執行完畢也會返回結果:undefined

      方式二:

              'use strict';
              var abs = function (x){
                  if (x > 0){
                      return x;
                  }else {
                      return -x;
                  }
              }
      

      function(x){……} 這是一個匿名函數,但是可以把結果賦值給 abs

      調用函數:abs(10)

      參數問題:
      假設不存在參數,如何規避?

              'use strict';
              var abs = function (x){
                  // 手動拋出異常來判斷
                  if (typeof x !== 'number'){
                      throw 'Not a Number!';
                  }
                  if (x >= 0){
                      return x;
                  }else {
                      return -x;
                  }
              }
      

      arguments:代表傳遞進來的所有參數是一個數組

              'use strict';
              var abs = function (x){
                  console.log("x=>"+x);
                  for (let i = 0; i < arguments.length; i++) {
                      console.log(arguments[i]);
                  }
              }
      

      rest:獲取除了已經定義的參數之外的所有參數

              'use strict';
              function aaa(a, b, ...rest){
                  console.log("a=>"+a);
                  console.log("b=>"+b);
                  console.log(rest);
              }
      

      2.2.變量的作用域

      var 定義的變量實際是有作用域的。

      • 假設在函數體中聲明,則在函數體外不可使用(要實現的話,可以研究閉包)
      • 如果兩個函數使用了相同的變量名,只要在函數內部,就不影響
      • 內部函數可以訪問外部函數的成員,反之不行
      • 內外函數的變量重名,由內向外查找,內部函數調用內部的變量,外部調用外部的變量

      提升變量的作用域:
      js 執行引擎,自動提升了 y 的聲明,但不會提升 y 的賦值;
      規范:所有的變量定義都放在函數的頭部,不要亂放,便于代碼維護;

      'use strict';
      function xx(){
          var x = 'x' + y;
          console.log(x);
          var y = 'y';
      }
      

      全局函數:定義在外部
      全局對象 window:默認所有的全局變量,都會自動綁定在 window 對象下

      var x = '123';
      alert(x);
      alert(window.x);
      

      alert() 這個函數本身也是 window 對象的變量:window.alert(x)
      JS 實際上只有一個全局作用域,任何變量(函數也可以視為變量),假設沒有在函數作用域范圍內找到,就會向外查找,如果在全局作用域找不到,報錯:RefrenceError

      規范

      'use strict';
      // 唯一全局變量
      var Test = {};
      // 定義全局變量
      Test.name = 'zhangsan';
      Test.add = function (a, b){
          return a+b;
      }
      

      把自己的代碼全部放入自己定義的唯一空間名字中,降低全局命名沖突的問題

      let 關鍵字,解決局部作用域沖突問題
      const 常量關鍵字(全部大寫的變量名)

      2.3.方法

      方法:就是把函數放在對象的里面,對象只有兩個東西:屬性和方法

      'use strict';
      var test = {
          name: 'zhangsan',
          birth: 2009,
          // 方法
          age: function (){
              // 今年 - 出生的年
              var now = new Date().getFullYear();
              return now - this.birth;
          }
      }
      //屬性
      test.name;
      //方法
      test.age();
      
      'use strict';
      function getAge(){
          // 今年 - 出生的年
          var now = new Date().getFullYear();
          return now - this.birth;
      }
      var test = {
          name: 'zhangsan',
          birth: 2009,
          age: getAge
      };
      

      在 JS 中可以控制 this 的指向-apply

      'use strict';
      function getAge (){
          // 今年 - 出生的年
          var now = new Date().getFullYear();
          return now - this.birth;
      }
      var test = {
          name: 'zhangsan',
          birth: 2009,
          age: getAge
      };
      getAge.apply(test,[]);// this 指向了 test,參數為空
      

      3.常用對象

      3.1.內部對象

      標準對象:number、string、boolean、object、function、undefined

      3.2.Date

      基本使用

      var now = new Date();
      now.getFullYear(); // 年
      now.getMonth();// 月 0-11
      now.getDate();// 日
      now.getDay();// 星期幾
      now.getHours();// 時
      now.getMinutes();// 分
      now.getSeconds();// 秒
      
      now.getTime();// 時間戳,統一:1970-1-1 0:00:00
      console.log(new Date("時間戳"));// 時間戳轉時間
      

      3.3.JSON

      JSON:輕量級的數據交換格式
      在JavaScript中一切皆對象,任何JS支持的類型都可以用 JSON 來表示,格式:

      • 對象都用 {}
      • 數組都用 []
      • 所有的鍵值對都用:key:value
      'use strict';
      var user = {
          name: "xiaoming",
          age: 3,
          sex: "男"
      };
      // 對象轉化為 JSON 字符串:{"name":"xiaoming","age":3,"sex":"男"}
      var jsonUser = JSON.stringify(user);
      //JSON 字符串轉化為對象,參數為 JSON 字符串
      var obj = JSON.parse('{"name":"xiaoming","age":3,"sex":"男"}');
      

      4.面向對象編程

      • 類:模板
      • 對象:具體的實例

      JavaScript:

      • 原型
      'use strict';
      var Student = {
          name: "zhangsan",
          age: 3,
          run: function (){
              console.log(this.name + " run ...");
          }
      };
      var xiaoming = {
          name: "xiaoming"
      };
      var Bird = {
          fly: function (){
              console.log(this.name + " fly ...");
          }
      };
      //小明的原型是 Student
      xiaoming.__proto__ = Student;
      // 小明的原型是 Bird
      xiaoming.__proto__ = Bird;
      

      class 繼承

      'use strict';
      // 定義一個學生的類
      class Student{
          constructor(name) {
              this.name = name;
          }
          hello(){
              alert('hello');
          }
      }
      class XiaoStudent extends Student{
          constructor(name, grade) {
              super();
              this.grade = grade;
          }
          myGrade(){
              alert("我是個小學生");
          }
      }
      let xiaoming = new Student("xiaoming");
      let xiaohong = new XiaoStudent("xiaohong", 89);
      

      5.操作 BOM 元素

      BOM:瀏覽器對象模型

      5.1.window

      window 代表瀏覽器窗口

      window.innerHeight //內部窗口高度
      window.innerWidth //內部窗口寬度
      window.outerHeight //外部窗口高度
      window.outerWidth
      

      5.2.Navigator

      Navigator:封裝了瀏覽器的信息

      navigator.appName
      navigator.appVersion
      navigator.userAgent
      navigator.platform
      

      大多數時候,不會使用navigator對象,因為會被人為修改

      5.3.screen

      screen:屏幕

      screen.windth
      screen.height
      

      5.4.location

      location:代表當前頁面的URL信息

      host:"www.baidu.com"
      href:"https://www.baidu.com/"
      protocol:"https:"
      reload:f reload() //刷新網頁
      //設置新的地址
      location.assign("URL")
      

      5.5.document

      document:代表當前的頁面

      document.title //網站標題,可以賦值
      document.getElementById('id') //獲取網頁文檔樹節點
      document.cookie
      // 服務器端可以設置 cookie: httpOnly
      

      5.6.history

      history:瀏覽器的歷史記錄

      history.back() //后退
      history.forward() //前進
      

      6.操作 DOM 元素

      DOM:文檔對象模型

      6.1.獲得DOM節點

      document.getElementById();
      document.getElementsByTagName();
      document.getElementsByClassName();
      document.getElementById('father').children;// 獲取父節點下的所有子節點
      

      6.2.更新節點

      // div id="id1"
      var id1 = document.getElementById("id1");
      

      操作文本:

      • id1.innerText = 'ddd'
      • id1.innerHTML = '<strong>123</strong>' //解析HTML文本標簽

      操作CSS:

      • id1.style.color = 'yellow';
      • id1.style.fontSize = '20px';

      6.3.刪除節點

      步驟:先獲取父節點,再通過父節點刪除自己

      var self = document.getElementById('p1');
      var father = p1.parentElement;
      father.removeChild(self);
      

      刪除多個節點的時候,children 是時刻在變化的

      6.4.插入節點

      獲得的DOM節點如果是空的,可以通過 innerHTML 增加一個元素,如果有元素,那么會覆蓋

      <p id="js">JavaScript</p>
      <div id="list">
          <p id="se">JavaSE</p>
          <p id="ee">JavaEE</p>
          <p id="me">JavaME</p>
      </div>
      <script>
          var js = document.getElementById('js');
          var list = document.getElementById('list');
          list.appendChild(js); //追加到后面
          // 創建新節點
          var newP = document.createElement('p');
          newP.id = 'newP';
          newP.innerText = 'hello';
      </script>
      

      7.操作表單(驗證)

      <form action="post">
          <p>
              <span>用戶名:</span><input type="text" id="username" required>
          </p>
          <p>
              <span>性別:</span>
              <input type="radio" name="sex" value="man" id="boy">男
              <input type="radio" name="sex" value="woman" id="girl">女
          </p>
      </form>
      <script>
          var input_text = document.getElementById('username');
          var boy_raido = document.getElementById('boy');
          var girl_radio = document.getElementById('girl');
          //得到輸入框的值
          input_text.value;
          //修改輸入框的值
          input_text.value = '123';
          // 對于單選框、多選框等固定的值,boy_radio.value 只能的取到當前的值
          boy_raido.checked;// 查看返回的結果,是否為true
          boy_raido.checked = true;// 賦值
      
      </script>
      

      提交表單

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <!--MD5 工具類-->
          <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>
      </head>
      <body>
      <!--表單綁定提交事件
      onsubmit 綁定一個提交檢測的函數,true false
      將這個結果返回給表單,使用 onsubmit 函數
      -->
      <form action="https://www.baidu.com/" method="post" onsubmit="aaa()">
          <p>
              <span>用戶名:</span><input type="text" id="username" name="username">
          </p>
          <p>
              <!--<span>密碼:</span><input type="password" id="password" name="password">-->
              <span>密碼:</span><input type="password" id="input-password">
          </p>
          <input type="hidden" id="md5-password" name="password">
          <!--綁定事件 onclick 被點擊-->
          <button type="submit">提交</button>
      </form>
      <script>
          function aaa() {
              alert(1);
              var uname = document.getElementById('username');
              var pwd = document.getElementById('input-password');
              var md5Pwd = document.getElementById('md5-password');
              md5Pwd.value = md5(md5Pwd.value);
              // 可以校驗判斷表單內容,true:提交;false:阻止提交
              return true;
      
              /*console.log(uname.value);
              // MD5 算法
              pwd.value = md5(pwd.value);
              console.log(pwd.value);*/
          }
      </script>
      </body>
      </html>
      

      8.jQuery 庫

      獲取 jQuery:https://jquery.com
      在線鏈接(CND jQuery):

      API 中文文檔:https://www.32r.com/soft/41594.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
      </head>
      <body>
      <!--
      公式:$(selector).action()
      $(選擇器).事件(函數)
      -->
      <a href="" id="test-jquery">點我</a>
      <script>
          // 選擇器就是 css 的選擇器
          $('#test-jquery').click(function () {
              alert('hello');
          });
      </script>
      </body>
      </html>
      
      posted @ 2024-05-27 14:42  落落的學習  閱讀(80)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 天天躁夜夜踩很很踩2022| 日韩av天堂综合网久久| 国产成人综合欧美精品久久| 大伊香蕉在线精品视频75| 日韩精品二区三区四区| 人人妻人人狠人人爽天天综合网 | 日韩精品一区二区午夜成人版| 亚洲sm另类一区二区三区| 国产精品偷乱一区二区三区| 国产成人av大片大片| 国产精品成人中文字幕| 在线观看美女网站大全免费| 国产曰批视频免费观看完| 遂平县| 精品国产乱码久久久久久影片| www久久只有这里有精品| 永久天堂网 av手机版| 999国产精品999久久久久久 | 十八禁午夜福利免费网站| 人人澡超碰碰97碰碰碰| 99精品日本二区留学生| 九九热在线精品免费视频| 成人国产精品日本在线观看| 亚洲日韩国产精品第一页一区| 日韩美女一区二区三区视频| 国产美女午夜福利视频| 国产成人无码区免费内射一片色欲| 亚洲国产精品久久无人区| 亚洲欧美电影在线一区二区| 午夜福利yw在线观看2020| 精品乱码一区二区三四五区| 果冻传媒mv免费播放在线观看| 一区二区三区四区激情视频| 日韩精品区一区二区三vr| 亚洲日本欧美日韩中文字幕| 国产99久久精品一区二区| 国产69精品久久久久99尤物| 吉林市| 亚洲精品国产av成拍色拍个| 国产高清视频在线播放www色| 国产精品视频一区不卡|