久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      深入淺析JavaScript內(nèi)置對象(總結(jié)分享)

      本篇文章給大家?guī)砹薐avaScript中內(nèi)置對象的相關(guān)知識,內(nèi)置對象最大的優(yōu)點就是能夠幫助我們快速開發(fā),希望對大家有幫助。

      深入淺析JavaScript內(nèi)置對象(總結(jié)分享)

      1、內(nèi)置對象

      • JavaScript 中的對象分為3種:自定義對象 、內(nèi)置對象、 瀏覽器對象
      • 前面兩種對象是JS 基礎(chǔ) 內(nèi)容,屬于 ECMAScript; 第三個瀏覽器對象屬于我們JS 獨有的。
      • 內(nèi)置對象就是指 JS 語言自帶的一些對象,這些對象供開發(fā)者使用,并提供了一些常用的或是最基本而必要的功能(屬性和方法) 。
      • 內(nèi)置對象最大的優(yōu)點就是幫助我們快速開發(fā) 。
      • JavaScript 提供了多個內(nèi)置對象:Math、 Date 、Array、String等。

      2、內(nèi)置對象:Math 對象

      2.1 Math 概述

      Math 對象不是構(gòu)造函數(shù),它具有數(shù)學(xué)常數(shù)和函數(shù)的屬性和方法。跟數(shù)學(xué)相關(guān)的運算(求絕對值,取整、最大值等)可以使用 Math 中的成員。

      Math.PI // 圓周率 Math.floor() // 向下取整 Math.ceil() // 向上取整 Math.round() // 四舍五入版 就近取整 注意 -3.5 結(jié)果是 -3 Math.abs() // 絕對值 Math.max()/Math.min() // 求最大和最小值

      注意:上面的方法必須帶括號。

      案例:封裝自己的數(shù)學(xué)對象

      利用對象封裝自己的數(shù)學(xué)對象,里面有 PI,最大值和最小值。

      <script>     // 利用對象封裝自己的數(shù)學(xué)對象 里面有 PI 最大值和最小值     var myMath = {         PI: 3.141592653,         max: function () {             var max = arguments[0];             for (var i = 1; i < arguments.length; i++) {                 if (arguments[i] > max) {                     max = arguments[i];                 }             }             return max;         },         min: function () {             var min = arguments[0];             for (var i = 1; i < arguments.length; i++) {                 if (arguments[i] < min) {                     min = arguments[i];                 }             }             return min;         }     }     console.log(myMath.PI);     console.log(myMath.max(1, 9, 20, 3, 21, 54, 211, 567, 80));     console.log(myMath.min(1, 0, 90, -10, 82));</script>

      2.2 隨機數(shù)方法 random()

      random() 方法可以隨機返回一個小數(shù),其取值范圍是 [0,1),左閉右開 0 <= x < 1 。

      如果想要得到兩個數(shù)之間的隨機整數(shù),并且包括這兩個數(shù)在內(nèi),方法如下:

      // 得到一個兩數(shù)之間的隨機整數(shù),包括兩個數(shù)在內(nèi)function getRandom(min, max) {     return Math.floor(Math.random() * (max - min + 1)) + min;}

      3、內(nèi)置對象:日期對象

      3.1 Date 概述

      • Date 對象和 Math 對象不一樣,他是一個構(gòu)造函數(shù),所以我們需要實例化后才能使用。
      • Date 實例用來處理日期和時間。

      3.2 Date() 方法的使用

      (1)獲取當(dāng)前時間必須實例化

      var now = new Date();console.log(now);

      (2)Date() 構(gòu)造函數(shù)的參數(shù)

      如果括號里面有時間,就返回參數(shù)里面的時間。例如,日期格式字符串為‘2019-5-1’,可以寫成new Date(‘2019-5-1’) 或者 new Date(‘2019/5/1’)。

      • 如果 Date() 不寫參數(shù),就返回當(dāng)前時間 。
      • 如果 Date() 里面寫參數(shù),就返回括號里面輸入的時間。

      3.3 日期格式化

      我們想要 2019-8-8 8:8:8 格式的日期,要怎么辦?

      需要獲取日期指定的部分,所以我們要手動的得到這種格式。

      深入淺析JavaScript內(nèi)置對象(總結(jié)分享)

      3.4 獲取日期的總的毫秒形式

      Date 對象是基于1970年1月1日(世界標(biāo)準(zhǔn)時間)起的毫秒數(shù)。

      我們經(jīng)常利用總的毫秒數(shù)來計算時間,因為它更精確。

      <script>     // Date 對象是基于1970年1月1日(世界標(biāo)準(zhǔn)時間)起的毫秒數(shù)     // 獲得Date 總的毫秒數(shù)(時間戳)  不是當(dāng)前時間的毫秒數(shù) 而是距離1970年1月1日過了多少毫秒數(shù)     // 1.通過 valueOf() 或者 getTime()     var date = new Date();     console.log(date.valueOf());   // 就是我們現(xiàn)在時間 距離1970.1.1 總的毫秒數(shù)     console.log(date.getTime());     // 2.簡單的寫法(實際開發(fā)中最常用的寫法)     var date1 = +new Date();   // +new Date()  返回的就是總的毫秒數(shù)     console.log(date1);     // 3.H5 新增的 獲得總的毫秒數(shù)     console.log(Date.now());</script>

      3.5 案例:倒計時效果

      案例分析

      (1)核心算法:輸入的時間減去現(xiàn)在的時間就是剩余的時間,即倒計時 ,但是不能拿著時分秒相減,比如 05 分減去25分,結(jié)果會是負(fù)數(shù)的。

      (2)用時間戳來做。用戶輸入時間總的毫秒數(shù)減去現(xiàn)在時間的總的毫秒數(shù),得到的就是剩余時間的毫秒數(shù)。

      (3)把剩余時間總的毫秒數(shù)轉(zhuǎn)換為天、時、分、秒 (時間戳轉(zhuǎn)換為時分秒)
      轉(zhuǎn)換公式如下:

      • d = parseInt(總秒數(shù)/ 60 / 60 / 24); // 計算天數(shù)
      • h = parseInt(總秒數(shù)/ 60/ 60 % 24) // 計算小時
      • m = parseInt(總秒數(shù) / 60 % 60 ); // 計算分?jǐn)?shù)
      • s = parseInt(總秒數(shù) % 60); // 計算當(dāng)前秒數(shù)
      function coutDown(time) {     var nowTime = +new Date();   // 返回的是當(dāng)前時間總的毫秒數(shù)     var inputTime = +new Date(time);  // 返回的是用戶輸入時間總的毫秒數(shù)     var times = (inputTime - nowTime) / 1000;  // times是剩余時間總的秒數(shù)(毫秒變     var d = parseInt(times / 60 / 60 / 24);  // 計算天數(shù)     d = d < 10 ? '0' + d : d;     var h = parseInt(times / 60 / 60 % 24);  // 計算小時     h = h < 10 ? '0' + h : h;     var m = parseInt(times / 60 % 60);    // 計算分?jǐn)?shù)     m = m < 10 ? '0' + m : m;     var s = parseInt(times % 60);         // 計算當(dāng)前秒數(shù)      s = s < 10 ? '0' + s : s;     return d + '天' + h + '時' + m + '分' + s + '秒';}console.log(coutDown('2021-3-21 18:00:00'));

      4、內(nèi)置對象: 數(shù)組對象

      4.1 數(shù)組對象的創(chuàng)建

      創(chuàng)建數(shù)組對象的兩種方式

      • 字面量方式
      • new Array()
      // 創(chuàng)建數(shù)組的兩種方式 // 1.利用數(shù)組字面量 var arr = [1, 2, 3]; console.log(arr[0]);  // 1  // 2.利用new Array() var arr1 = new Array();  // 創(chuàng)建一個空的數(shù)組 console.log(arr1);  // []  var arr2 = new Array(2);  // 這個2表示, 數(shù)組的長度為2, 里面有2個空的數(shù)組元素 console.log(arr2);   // [空 × 2] console.log(arr2[0], arr2[1]);  // undefined undefined  var arr3 = new Array(2, 3);  // 等價于[2, 3]  這樣寫表示里面有2個數(shù)組元素,是2和3 console.log(arr3);  // [2, 3]  var arr4 = new Array(['a', 'b', 'c']); console.log(arr4);   // [Array(3)] console.log(arr4[0]); // ["a", "b", "c"]

      4.2 檢測是否為數(shù)組

      • instanceof 運算符,可以判斷一個對象是否屬于某種類型。
      • Array.isArray() 用于判斷一個對象是否為數(shù)組,isArray() 是 HTML5 中提供的方法。
      // 檢測是否為數(shù)組 // (1)instanceof 運算符,可以判斷一個對象是否屬于某種類型 var arr = []; console.log(arr instanceof Array);   // true var obj = {}; console.log(obj instanceof Array);   // false  //  (2)Array.isArray()用于判斷一個對象是否為數(shù)組,isArray() 是 HTML5 中提供的方法 console.log(Array.isArray(arr));   // true console.log(Array.isArray(obj));   // false

      4.3 數(shù)組常用的方法

      (1)添加刪除數(shù)組元素的方法
      深入淺析JavaScript內(nèi)置對象(總結(jié)分享)
      (2)數(shù)組排序

      方法名 說明 是否修改原數(shù)組
      reverse() 顛倒數(shù)組中元素的順序,無參數(shù) 該方法會改變原來的數(shù)組,返回新數(shù)組
      sort() 對數(shù)組的元素進(jìn)行排序 該方法會改變原來的數(shù)組,返回新數(shù)組
      <script>     // 數(shù)組排序     // 1.翻轉(zhuǎn)數(shù)組     // reverse() 顛倒數(shù)組中元素的順序,無參數(shù)     // 該方法會改變原來的數(shù)組  返回新數(shù)組     var arr = ['pink', 'red', 'purple', 'blue'];     arr.reverse();     console.log(arr);  // ["blue", "purple", "red", "pink"]          // 2.數(shù)組排序(冒泡排序)     // sort()  對數(shù)組的元素進(jìn)行排序     // 該方法會改變原來的數(shù)組  返回新數(shù)組     var arr1 = [1, 14, 7, 9, 5, 77, 1];     arr1.sort(function (a, b) {     // 固定寫法         return a - b;  // 升序的順序排列         // return b - a;  // 降序     });     console.log(arr1);  // [1, 1, 5, 7, 9, 14, 77]</script>

      (3)數(shù)組索引方法

      方法名 說明 返回值
      indexOf() 數(shù)組中查找給定元素的第一個索引 如果存在返回索引號,如果不存在,則返回-1
      lastIndexOf() 在數(shù)組中的最后一個索引 如果存在返回索引號,如果不存在,則返回-1
      // 返回數(shù)組元素索引方法   // indexOf(數(shù)組元素)  作用就是返回該數(shù)組元素的索引號  從前面開始查找 // 數(shù)組中查找給定元素的第一個索引,如果存在返回索引號,如果不存在,則返回-1 var arr = ['red', 'green', 'blue', 'pink', 'blue']; console.log(arr.indexOf('blue'));  // 2  // lastIndexOf(數(shù)組元素) 從后面開始查找,如果存在返回索引號,如果不存在,則返回-1 console.log(arr.lastIndexOf('blue'));  // 4

      (4)數(shù)組轉(zhuǎn)換為字符串

      方法名 說明 返回值
      toString() 把數(shù)組轉(zhuǎn)換成字符串,逗號分隔每一項 返回一個字符串
      join(‘分隔符’) 方法用于把數(shù)組中的所有元素轉(zhuǎn)換為一個字符串,不寫分隔符,默認(rèn)逗號分隔 返回一個字符串
      // 數(shù)組轉(zhuǎn)換為字符串 // 1.toString() 將數(shù)組轉(zhuǎn)換成字符串,逗號分隔每一項,返回一個字符串 var arr = [1, 2, 3]; console.log(arr.toString());  // "1,2,3"  // 2.join(分隔符) var arr1 = ['green', 'blue', 'pink']; console.log(arr1.join());  // "green,blue,pink" console.log(arr1.join('-'));  // "green-blue-pink" console.log(arr1.join('&'));  // "green&blue&pink"

      (5)其他一些方法
      深入淺析JavaScript內(nèi)置對象(總結(jié)分享)

       // 1.concat()  連接兩個或多個數(shù)組,不影響原數(shù)組   最后返回一個新數(shù)組  var arr1 = [1, 2, 3];  var arr2 = ['red', 'pink', 'blue'];  console.log(arr1.concat(arr2));  // [1, 2, 3, "red", "pink", "blue"]    // 2.slice(begin, end)  數(shù)組截取  返回被截取項目的新數(shù)組  var arr3 = [1, 2, 3, 4, 5, 'red', 'yellow', 'blue'];  console.log(arr2.slice(0, 1));  // ["red"]  console.log(arr3.slice(2, 7));  // [3, 4, 5, "red", "yellow"]    // 3.splice(第幾個開始,要刪除個數(shù))  數(shù)組刪除  返回被刪除項目的新數(shù)組,注意,這個會影響原數(shù)組  console.log(arr3.splice(2, 5));  // [3, 4, 5, "red", "yellow"]

      4.4 案例:數(shù)組去重

      有一個數(shù)組[‘c’, ‘a(chǎn)’, ‘z’, ‘a(chǎn)’, ‘x’, ‘a(chǎn)’, ‘x’, ‘c’, ‘b’],要求去除數(shù)組中重復(fù)的元素。

      • 目標(biāo):把舊數(shù)組里面不重復(fù)的元素選取出來放到新數(shù)組中,重復(fù)的元素只保留一個,放到新數(shù)組中去重。
      • 核心算法:我們遍歷舊數(shù)組,然后拿著舊數(shù)組元素去查詢新數(shù)組,如果該元素在新數(shù)組里面沒有出現(xiàn)過,我們就添加,否則不添加。
      • 我們怎么知道該元素沒有存在? 利用 新數(shù)組.indexOf(數(shù)組元素) 如果返回-1,就說明新數(shù)組里面沒有改元素
       // 封裝一個去重的函數(shù) unique 獨一無二的  function unique(arr) {      var newArr = [];      for (var i = 0; i < arr.length; i++) {          if (newArr.indexOf(arr[i]) == -1) {              newArr.push(arr[i]);          }      }      return newArr;  }  var arr1 = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];  var demo = unique(arr1);  console.log(demo);  // ["c", "a", "z", "x", "b"]

      5、內(nèi)置對象:字符串對象

      5.1 基本包裝類型

      為了方便操作基本數(shù)據(jù)類型,JavaScript 還提供了三個特殊的引用類型:String、Number和 Boolean。

      基本包裝類型就是把簡單數(shù)據(jù)類型包裝成為復(fù)雜數(shù)據(jù)類型,這樣基本數(shù)據(jù)類型就有了屬性和方法。

      下面代碼有什么問題?

      var str = 'andy';console.log(str.length);  // 4

      按道理基本數(shù)據(jù)類型是沒有屬性和方法的,而對象才有屬性和方法,但上面代碼卻可以執(zhí)行,這是因為 js 會把基本數(shù)據(jù)類型包裝為復(fù)雜數(shù)據(jù)類型,其執(zhí)行過程如下 :

      // 1. 生成臨時變量,把簡單類型包裝為復(fù)雜數(shù)據(jù)類型var temp = new String('andy'); // 2. 賦值給我們聲明的字符變量str = temp; // 3. 銷毀臨時變量temp = null;

      5.2 字符串的不可變

      字符串的不可變指的是里面的值不可變,雖然看上去可以改變內(nèi)容,但其實是地址變了,內(nèi)存中新開辟了一個內(nèi)存空間。

      字符串的不可變的特點:重新給字符串賦值,會重新在內(nèi)存中開辟空間。

      var str = 'abc';str = 'hello';// 當(dāng)重新給 str 賦值的時候,常量'abc'不會被修改,依然在內(nèi)存中// 重新給字符串賦值,會重新在內(nèi)存中開辟空間,這個特點就是字符串的不可變// 由于字符串的不可變,在大量拼接字符串的時候會有效率問題var str = '';for (var i = 0; i < 100000; i++) { 	str += i;}console.log(str); // 這個結(jié)果需要花費大量時間來顯示,因為需要不斷的開辟新的空間

      5.3 字符串對象常用的方法

      字符串所有的方法,都不會修改字符串本身(字符串是不可變的),操作完成會返回一個新的字符串。

      (1)根據(jù)字符返回位置

      方法名 說明
      indexOf(‘要查找的字符’,開始的位置) 返回指定內(nèi)容在原字符串中的位置,如果找不到就返回 -1 ,開始的位置是 index 索引號
      lastIndexOf() 從后往前找,只找第一個匹配的
       // 根據(jù)字符返回位置  // 1.indexOf('要查找的字符', '開始的位置')  // 返回指定內(nèi)容在元字符串中的位置,如果找不到就返回-1,開始的位置index的索引號  var str = '改革春風(fēng)吹滿地,春天來了';  console.log(str.indexOf('春'));   // 2  console.log(str.indexOf('春', 3));  // 從索引號是 3 的位置開始往后查找   // 8    // 2.lastIndexOf()  從后往前找,只找第一個匹配的  console.log(str.lastIndexOf('春'));  // 8  console.log(str.lastIndexOf('春', 7));  // 2

      案例:返回字符位置

      查找字符串"oabcoefoxyozzopp"中所有 o 出現(xiàn)的位置以及次數(shù)。

      思路:

      1. 核心算法:先查找第一個o出現(xiàn)的位置。
      2. 然后,只要indexOf 返回的結(jié)果不是 – 1 就繼續(xù)往后查找。
      3. 因為 indexOf 只能查找到第一個,所以后面的查找,利用第二個參數(shù),當(dāng)前索引加1,從而繼續(xù)查找。

      代碼:

      var str = 'oabcoefoxyozzopp';var index = str.indexOf('o');var num = 0;while (index !== -1) {     // console.log(index);     num++;     index = str.indexOf('o', index + 1);}console.log('o出現(xiàn)的次數(shù)為:' + num);  // 5

      (2)根據(jù)位置返回字符

      方法名 說明 使用
      charAt(index) 返回指定位置的字符(index 字符串的索引號) str.charAt(0)
      charCodeAt(index) 獲取指定位置處字符的ASCII碼(inex 索引號) str.charCodeAt(0)
      str[index] 獲取指定位置處字符 HTML5,IE8+支持,和 charAt()等效
       // 根據(jù)位置返回字符(重點)  // 1.charAt(index) 根據(jù)索引號返回指定位置的字符  var str = 'andy';  console.log(str.charAt(3));  // "y"    // 遍歷所有的字符  for (var i = 0; i < str.length; i++) {      console.log(str.charAt(i));  }    // 2.charCodeAt(index) 根據(jù)索引好返回相應(yīng)位置的字符ASCII值, 目的:判斷用戶按下了哪個鍵  console.log(str.charCodeAt(0));  // 97    // 3.str[index] 根據(jù)索引號返回指定位置的字符 H5 新增的  console.log(str[0]);  // "a"

      案例:返回字符位置

      判斷一個字符串 'abcoefoxyozzopp' 中出現(xiàn)次數(shù)最多的字符,并統(tǒng)計其次數(shù)。

      思路:
      ① 核心算法:利用 charAt()遍歷這個字符串。

      ② 把每個字符都存儲給對象, 如果對象沒有該屬性,就為1,如果存在了就 +1。

      ③ 遍歷對象,得到最大值和該字符。

      代碼:

      // 案例:返回字符位置// 有一個對象 來判斷是否有該屬性 對象['屬性名']var o1 = {     age: 18}if (o1['age']) {     console.log('里面有該屬性');} else {     console.log('里面沒有該屬性');}// 判斷一個字符串 'abcoefoxyozzopp' 中出現(xiàn)次數(shù)最多的字符,并統(tǒng)計其次數(shù)。var str = 'abcoefoxyozzopp';var o = {};  // 聲明一個對象for (var i = 0; i < str.length; i++) {     var chars = str.charAt(i);   // chars 是字符串的每個字符     if (o[chars]) {    // o[chars] 得到的是屬性值         o[chars]++;     } else {         o[chars] = 1;     }}console.log(o);// 2.遍歷對象var max = 0;var ch = '';for (var k in o) {     // k 得到的是 屬性名     // o[k] 得到的是 屬性值     if (o[k] > max) {         max = o[k];         ch = k;     }}console.log('出現(xiàn)次數(shù)最多字符的為:' + ch, '次數(shù)為:' + max);

      (3)字符串操作方法
      深入淺析JavaScript內(nèi)置對象(總結(jié)分享)

      // 字符串操作方法(重點) // 1.concat('字符串1', '字符串2',....)  連接兩個或多個字符串,等效于+ var str = 'andy'; console.log(str.concat('red'));  // "andyred" // 2.substr('截取的起始位置','截取幾個字符')  截取字符串 var str1 = '改革春風(fēng)吹滿地'; console.log(str1.substr(2, 2));  // "春風(fēng)"  第一個2 是索引號  第二個2 是取的字符串個數(shù)

      (4)replace() 方法和 split() 方法

      replace() 方法用于在字符串中用一些字符替換另一些字符。

      其使用格式如下:

      replace(被替換的字符串, 要替換為的字符串);
      // 3.replace(被替換的字符串, 要替換為的字符串);  替換字符  它只會替換第一個字符 var str3 = 'andyandy'; console.log(str3.replace('a', 'b'));  // "bndyandy" // 有一個字符串 'abcoefoxyozzopp' 要求把里面所有的 'o' 替換為* var str4 = 'abcoefoxyozzopp'; while (str4.indexOf('o') !== -1) {     str4 = str4.replace('o', '*'); } console.log(str4);   // "abc*ef*xy*zz*pp"

      split() 方法用于切分字符串,它可以將字符串切分為數(shù)組。在切分完畢之后,返回的是一個新數(shù)組。

       // 4.split()方法用于切分字符串,它可以將字符串切分為數(shù)組。在切分完畢之后,返回的是一個新數(shù)組。  // split('分隔符')  把字符轉(zhuǎn)換為數(shù)組  前面我們學(xué)過 join 把數(shù)組轉(zhuǎn)換為字符串  var str5 = 'red, pink, blue';  console.log(str5.split(','));   //  ["red", " pink", " blue"]  var str6 = 'red&pink&blue';  console.log(str6.split('&'));   //  ["red", " pink", " blue"]

      其他一些方法:

      • toUpperCase() // 轉(zhuǎn)換大寫
      • toLowerCase() // 轉(zhuǎn)換小寫

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號