javascript中有沒有內(nèi)置對象

這篇文章主要介紹了javascript中有沒有內(nèi)置對象,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司是專業(yè)的商州網(wǎng)站建設(shè)公司,商州接單;提供成都做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行商州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

javascript中有內(nèi)置對象。內(nèi)置對象是JS語言自帶的一些對象,常見的有:String對象、Array對象、Date對象、Boolean對象、Number對象、Math對象、RegExp對象、Global對象等等。

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

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等

  • String對象:字符串對象,提供了對字符串進行操作的屬性和方法。

  • Array對象:數(shù)組對象,提供了數(shù)組操作方面的屬性和方法。

  • Date對象:日期時間對象,可以獲取系統(tǒng)的日期時間信息。

  • Boolean對象:布爾對象,一個布爾變量就是一個布爾對象。(沒有可用的屬性和方法)

  • Number對象:數(shù)值對象。一個數(shù)值變量就是一個數(shù)值對象。

  • Math對象:數(shù)學(xué)對象,提供了數(shù)學(xué)運算方面的屬性和方法。

  • Object對象

  • RegExp對象

  • Global對象

  • Function對象

  • .....

Math對象

// Math數(shù)學(xué)對象 不是一個構(gòu)造函數(shù),所以我們不需要 new來調(diào)用 而是直接使用里面的屬性和方法即可
        console.log(Math.PI); //一個屬性 圓周率
        console.log(Math.max(1, 2, 99)); //99
        console.log(Math.max(-1, -12)); //-1
        console.log(Math.max(1, 99, '數(shù)學(xué)對象')); //NaN
        console.log(Math.max()); //-Infinity

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

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, 5, 9));
        console.log(myMath.min(1, 5, 9));

1Math概述

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()  //求最大和最小值
// 1.絕對值方法
        console.log(Math.abs(1));    //1
        console.log(Math.abs(-1));   //1
        console.log(Math.abs('-1')); //隱式轉(zhuǎn)換 會把字符串型 -1 轉(zhuǎn)換為數(shù)字型
        console.log(Math.abs('wode')); //NaN

// 2.三個取整方法
// (1)Math.floor()  地板 向下取整 往最小了取整
        console.log(Math.floor(1.1));   //1
        console.log(Math.floor(1.9));   //1
// (2)Math.ceil()   ceil 天花板 向上取整 往最大了取整
        console.log(Math.ceil(1.1));   //2
        console.log(Math.ceil(1.9));   //2
// (3)Math.round()   四舍五入  其他數(shù)字都是四舍五入,但是 .5特殊,它往大了取
        console.log(Math.round(1.1));   //1
        console.log(Math.round(1.5));   //2
        console.log(Math.round(1.9));   //2
        console.log(Math.round(-1.1));   //-1
        console.log(Math.round(-1.5));   //這個結(jié)果是 -1

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

//1. Math對象隨機數(shù)方法 random() 返回一個隨機的小數(shù)  0 =< x < 1
//2.這個方法里面不跟參數(shù)
// 3.代碼驗證
        console.log(Math.random());
// 4.我們想要得到兩個數(shù)之間的隨機整數(shù) 并且包含這兩個數(shù)
        // return Math.floor(Math.random() * (max - min + 1)) + min; 
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        console.log(getRandom(1, 10));
// 5.隨機點名
        var arr = ['張三', '李四', '王五', '趙六', '張三瘋']
            // console.log(arr[0]);
            // console.log(arr[getRandom(0, 4)]);
        console.log(arr[getRandom(0, arr.length - 1)]);

案例:猜數(shù)字游戲

程序隨機生成一個1~10之間的數(shù)字,并讓用戶輸入一個數(shù)字,

1.如果大于該數(shù)字,就提示,數(shù)字大了,繼續(xù)猜;

2.如果小于該數(shù)字,就提示,數(shù)字小了,繼續(xù)猜;

3.如果等于該數(shù)字,就提示猜對了,結(jié)束程序。

// 1.隨機生成一個1~10的整數(shù),我們需要用到Math.random()方法
// 2.需要一直猜到正確為止,所以一直循環(huán)
// 3.用while循環(huán)合適更簡單
// 4.核心算法:使用if else if 多分支語句來判斷大于,小于,等于
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        var random = getRandom(1, 10);
        while (true) { //死循環(huán)
            var num = prompt('你來猜,輸入1~10之間的一個數(shù)字');
            if (num > random) {
                alert('猜大了');
            } else if (num < random) {
                alert('猜小了');
            } else {
                alert('猜對了');
                break;
            }
        }
// 要求用戶猜1~50之間的一個數(shù)字 但是只有10次猜的機會
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        var random = getRandom(1, 50);
        var i = 0;
        while (i < 10) { //死循環(huán)
            var num = prompt('你來猜,輸入1~50之間的一個數(shù)字');
            if (num > random) {
                alert('猜大了');
            } else if (num < random) {
                alert('猜小了');
            } else {
                alert('猜對了');
                break; //退出整個循環(huán)結(jié)束程序
            }
            i++;
        }
        if (i = 10) {
            alert('全部猜錯了');
        }

日期對象

1Date概述

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

  • Date實例用來處理日期和時間

2Date()方法的使用

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() 日期對象 是一個構(gòu)造函數(shù) 必須使用new 來調(diào)用創(chuàng)建我們的日期對象
        var arr = new Date(); //創(chuàng)建一個數(shù)組對象
        var obj = new Object(); //創(chuàng)建了一個對象實例
// 1.使用Date  如果沒有參數(shù) 返回當(dāng)前系統(tǒng)的當(dāng)前時間
        var date = new Date();
        console.log(date);
// 2.參數(shù)常用的寫法 數(shù)字型 2019,10,01 或者是 字符串型 '2019-10-1 8:8:8'
        var date1 = new Date(2019, 10, 1);
        console.log(date1);  //返回的是 11月 不是 10月
        var date2 = new Date('2019-10-1 8:8:8');
        console.log(date2);

3日期格式化

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

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

方法名說明代碼
getFullYears()獲取當(dāng)年dObj.getFullYears()
getMonth()獲取當(dāng)月(0-11)dObj.getMonth()
getDate()獲取當(dāng)天日期dObj.getDate()
getDay()獲取星期幾(周日0 到周六6)dObj.getDay()
getHours()獲取當(dāng)前小時dObj.getHours()
getMinutes()獲取當(dāng)前分鐘dObj.getMinutes()
getSeconds()獲取當(dāng)前秒數(shù)dObj.getSeconds()
// 格式化日期  年月日
        var date = new Date();
        console.log(date.getFullYear()); //返回當(dāng)前日期的年 2020
        console.log(date.getMonth() + 1); //月份 返回的月份小1個月 記得月份 +1
        console.log(date.getUTCDate()); //返回的是幾號
        console.log(date.getDay()); //6 周一返回的是 1  周六返回的是 6 但是 周日返回的是 0
// 寫一個 2020年 5月 23日 星期六
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var dates = date.getDate();
        var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
        var day = date.getDay();
        console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);
        
// 格式化日期 時分秒
        var date = new Date();
        console.log(date.getHours()); //時
        console.log(date.getMinutes()); //分
        console.log(date.getSeconds()); //秒
// 要求封裝一個函數(shù)返回當(dāng)前的時分秒  格式是 08:08:08
        function getTimer() {
            var time = new Date();
            var h = date.getHours();
            h = h < 10 ? '0' + h : h;
            var m = date.getMinutes();
            m = m < 10 ? '0' + m : m;
            var s = date.getSeconds();
            s = s < 10 ? '0' + s : s;
            return h + ':' + m + ':' + s;
        }
        console.log(getTimer());

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

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

我們經(jīng)常利用總的毫秒數(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.簡單的寫法(最常用的寫法)
        var date1 = +new Date(); //+new Date() 返回的就是總的毫秒數(shù)
        console.log(date1);
// 3.H5 新增的 獲得總的毫秒數(shù)
        console.log(Date.now());

案例:倒計時效果

// 倒計時效果
// 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 countDown(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); //天
            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); //分
            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(countDown('2020-5-24 00:00:00'));
        var date = new Date();
        console.log(date);

數(shù)組對象

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

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

  • 字面量方式

  • new Array()

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

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

// 翻轉(zhuǎn)數(shù)組
        function reverse(arr) {
            // if (arr instanceof Array) {
            if (Array.isArray(arr)) {
                var newArr = [];
                for (var i = arr.length - 1; i >= 0; i--) {
                    newArr[newArr.length] = arr[i];
                }
                return newArr;
            } else {
                return 'error 這個參數(shù)要求必須是數(shù)組格式[1,2,3]'
            }
        }
        console.log(reverse([1, 2, 3]));
        console.log(reverse(1, 2, 3)); //[]
// 檢測是否為數(shù)組
// (1)instanceof 運算符 它可以用來檢測是否為數(shù)組
        var arr = [];
        var obj = {};
        console.log(arr instanceof Array);
        console.log(obj instanceof Array);
// (2)Array.isArray(參數(shù));  H5新增的方法 IE9以上版本支持
        console.log(Array.isArray(arr));
        console.log(Array.isArray(obj));

3添加刪除數(shù)組元素的方法

方法名說明返回值
push(參數(shù)1...)末尾添加一個或多個元素,注意修改原數(shù)組并返回新的長度
pop()

刪除數(shù)組最后一個元素,把數(shù)組長度減 1 無參數(shù),修改原數(shù)組

返回它刪除的元素的值
unshift(參數(shù)1...)向數(shù)組的開頭添加一個或更多元素,注意修改原數(shù)組并返回新的長度
shift()刪除數(shù)組的第一個元素,數(shù)組長度減1無參數(shù),修改原數(shù)組并返回第一個元素值
// 添加刪除數(shù)組元素的方法
// 1.push() 在我們數(shù)組的末尾 添加一個或者多個數(shù)組元素 push 推
        var arr = [1, 2, 3];
        // arr.push(4, 'white');
        console.log(arr.push(4, 'white')); //5 數(shù)組長度
        console.log(arr);
        // (1)push 是可以給數(shù)組追加新的元素
        // (2)push() 參數(shù)直接寫 數(shù)組元素就可以了
        // (3)push完畢之后,返回的結(jié)果是 新數(shù)組的長度
        // (4)原數(shù)組也會發(fā)生變化

//2.unshift 在我們數(shù)組的開頭 添加一個或者多個數(shù)組元素
        console.log(arr.unshift('red', 'green')); //7
        console.log(arr);
        // (1)unshift 是可以給數(shù)組前面追加新的元素
        // (2)unshift() 參數(shù)直接寫 數(shù)組元素就可以了
        // (3)unshift完畢之后,返回的結(jié)果是 新數(shù)組的長度
        // (4)原數(shù)組也會發(fā)生變化

// 3.pop() 它可以刪除數(shù)組的最后一個元素
        console.log(arr.pop()); //white
        console.log(arr);
        // (1)pop 是可以刪除數(shù)組的最后一個元素  一次只能刪除一個元素
        // (2)pop() 沒有參數(shù)
        // (3)pop完畢之后,返回的結(jié)果是 刪除的那個元素
        // (4)原數(shù)組也會發(fā)生變化

// 4.shift() 它可以刪除數(shù)組的第一個元素
        console.log(arr.shift()); //red
        console.log(arr);
        // (1)shift 是可以刪除數(shù)組的第一個元素  一次只能刪除一個元素
        // (2)shift() 沒有參數(shù)
        // (3)shift完畢之后,返回的結(jié)果是 刪除的那個元素
        // (4)原數(shù)組也會發(fā)生變化

案例:篩選數(shù)組

// 有一個包含工資的數(shù)組[1500, 1200, 2000, 2100, 1800],要求吧數(shù)組中工資超過2000的刪除,剩余的放到新數(shù)組里面
        var arr = [1500, 1200, 2000, 2100, 1800];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] < 2000) {
                // newArr[newArr.length] = arr[i];
                newArr.push(arr[i]);
            }
        }
        console.log(newArr);

4數(shù)組排序

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

        });
        console.log(arr1);

5數(shù)組索引方法

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

案例:數(shù)組去重

// 數(shù)組去重['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'] 要求去除數(shù)組中重復(fù)的元素
// 1.目標(biāo): 把舊數(shù)組里面不重復(fù)的元素選取出來放到新數(shù)組中,重復(fù)的元素只保留一個,放到新數(shù)組中去重
// 2.核心算法:我們遍歷舊數(shù)組,然后拿著舊數(shù)組元素去查詢新數(shù)組,如果該元素在新數(shù)組里面沒有出現(xiàn)過,我們就添加,否則不添加
// 3.我們怎么知道該元素沒有存在?利用 新數(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 demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'])
        var demo1 = unique(['red', 'blue', 'blue'])
        console.log(demo);
        console.log(demo1);

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

方法名說明返回值
toString()把數(shù)組轉(zhuǎn)換成字符串,逗號分隔每一項返回一個字符串
join(分隔符)方法用于把數(shù)組中的所有元素轉(zhuǎ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', 'red'];
        console.log(arr1.join());    //green,blue,red
        console.log(arr1.join('-')); //green-blue-red
        console.log(arr1.join('&')); //green&blue&red
方法名說明返回值
concat()連接兩個或多個數(shù)組,不影響原數(shù)組返回一個新的數(shù)組
slice()數(shù)組截取slice(begin,end)返回被截取項目的新數(shù)組
splice()數(shù)組刪除splice(第幾個開始,要刪除個數(shù))返回被刪除項目的新數(shù)組 注意,這個會影響原數(shù)組

slice()和 splice()目的基本相同

字符串對象

1基本包裝類型

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

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

// 基本包裝類型
        var str = 'andy';
        console.log(str.length);
// 對象 才有 屬性和方法  復(fù)雜數(shù)據(jù)類型才有 屬性和方法
// 簡單數(shù)據(jù)類型為什么會有l(wèi)ength屬性?
// 基本包裝類型:就是把簡單的數(shù)據(jù)類型 包裝稱為了 復(fù)雜數(shù)據(jù)類型
// (1)把簡單數(shù)據(jù)類型包裝為復(fù)雜數(shù)據(jù)類型
        var temp = new String('andy');
// (2)把臨時變量的值 給str
        str = temp;
// (3)銷毀這個臨時變量
        temp = null;

2字符串的不可變

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

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

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

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

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

案例:返回字符位置

// 查找字符串 'abcoefoxyozzopp'中所有o出現(xiàn)的位置以及次數(shù)
// 核心算法:先查找第一個o出現(xiàn)的位置
// 然后 只要indexOf 返回的結(jié)果不是 -1 就繼續(xù)往后查找
// 因為 indexOf 只能查找到第一個,所以后面的查找,一定是當(dāng)前索引加 1,從而繼續(xù)查找
        var str = 'abcoefoxyozzopp';
        var index = str.indexOf('o');
        var num = 0;
        // console.log(index);
        while (index !== -1) {
            console.log(index);
            num++;
            index = str.indexOf('o', index + 1);
        }
        console.log('o出現(xiàn)的次數(shù)是' + num);
// ['red', 'blue', 'red', 'green', 'pink', 'red'],求red出現(xiàn)的位置和次數(shù)
        var str = ['red', 'blue', 'red', 'green', 'pink', 'red'];
        var index = str.indexOf('red');
        var num = 0;
        // console.log(index);
        while (index !== -1) {
            console.log(index);
            num++;
            index = str.indexOf('red', index + 1);
        }
        console.log('red出現(xiàn)的次數(shù)是' + num);

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

方法名說明使用
charAt(index)返回指定位置的字符(index字符串的索引號)str.charAt()
charCodeAt(index)

獲取指定位置處字符的ASCII碼(index索引號)

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) 返回相應(yīng)索引號的字符ASCII值 目的:判斷用戶按下了哪個鍵
        console.log(str.charCodeAt(0)); //97(a的ASCII碼是97)
// 3.str[index]  H5 新增的
        console.log(str[0]);  //a

案例:返回字符位置

// 有一個對象 來判斷是否有該屬性 對象['屬性名']
        var o = {
            age: 18
        }
        if (o['age']) {
            console.log('里面有該屬性');
        } else {
            console.log('沒有該屬性');
        }
// 判斷一個字符串 'abcoefoxyozzopp'中出現(xiàn)次數(shù)最多的字符,并統(tǒng)計其次數(shù)
// o.a = 1
// 0.b = 1
// 0.c = 1
// o.o = 4
// 核心算法:利用charAt() 遍歷這個字符串
// 把每個字符都存儲給對象,如果對象沒有該屬性,就為1,如果存在了就+1
// 遍歷對象,得到最大值和該字符
        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(max);  //4
        console.log('最多的字符是' + ch); //最多的字符是o

5字符串操作方法

方法名說明
concat(str1,str2,str3...)concat()方法用于連接兩個或多個字符串。拼接字符串,等效于+,+更常用
substr(start,length)從start位置開始(索引號),length取的個數(shù)
slice(start,end)從start位置開始,截取到end位置,end取不到(它們兩都是索引號)
substring(start,end)從start位置開始,截取到end位置,end取不到,基本和slice相同,但是不接受負(fù)值
// 字符串操作方法
// 1.concat('字符串1','字符串2'....)
        var str='andy';
        console.log(str.concat('red'));
//2. substr('截取的起始位置','截取幾個字符');
        var str1='改革春風(fēng)吹滿地';
        console.log(str1.substr(2,2));  //第一個2 是索引號的 2 從第幾個開始  第二個2 是取幾個字符
// 1.替換字符 replace('被替換的字符','替換為的字符')  它只會替換第一個字符
        var str = 'andyandy';
        console.log(str.replace('a', 'b'));
        // 有一個字符串 'abcoefoxyozzopp' 要求把里面所有的 o 替換為 *
        var str1 = 'abcoefoxyozzopp';
        while (str1.indexOf('o') !== -1) {
            str1 = str1.replace('o', '*');
        }
        console.log(str1);
// 2.字符轉(zhuǎn)換為數(shù)組 split('分隔符')    join 把數(shù)組轉(zhuǎn)換為字符串
        var str2 = 'red,pink,blue';
        console.log(str2.split(','));
        var str3 = 'red&pink&blue';
        console.log(str3.split('&'));
  • toUpperCase()   //轉(zhuǎn)換大寫

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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“javascript中有沒有內(nèi)置對象”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

新聞名稱:javascript中有沒有內(nèi)置對象
本文鏈接:http://www.muchs.cn/article26/jpjijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站改版動態(tài)網(wǎng)站、云服務(wù)器定制開發(fā)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)