亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

JavaScript引用類型——“單體內(nèi)置對(duì)象”的注意要點(diǎn)

xushaojieaaa / 2400人閱讀

摘要:?jiǎn)误w內(nèi)置對(duì)象單體內(nèi)置對(duì)象就是開(kāi)發(fā)人員不必顯式地實(shí)例化內(nèi)置對(duì)象,因?yàn)樗麄円呀?jīng)實(shí)例化了。前面的章節(jié)討論過(guò)了大多數(shù)內(nèi)置對(duì)象,還定義了兩個(gè)單體內(nèi)置對(duì)象和。

單體內(nèi)置對(duì)象

單體內(nèi)置對(duì)象就是開(kāi)發(fā)人員不必顯式地實(shí)例化內(nèi)置對(duì)象,因?yàn)樗麄円呀?jīng)實(shí)例化了。前面的章節(jié)討論過(guò)了大多數(shù)內(nèi)置對(duì)象,ECMA-262 還定義了兩個(gè)單體內(nèi)置對(duì)象:Global 和Math。

Global 對(duì)象

所有在全局作用域中定義的屬性和函數(shù),都是Global 對(duì)象的屬性。

URI 編碼方法

encodeURI()、encodeURIComponent()decodeURI()、decodeURIComponent()方法。如下:

var uri = "http://www.bai du.com";
console.log(encodeURI(uri));
console.log(encodeURIComponent(uri));

/*
[Log] http://www.bai%20du.com (repetition.html, line 16)
[Log] http%3A%2F%2Fwww.bai%20du.com (repetition.html, line 17)
*/

var uri = "http%3A%2F%2Fwww.bai%20du.com";
console.log(decodeURI(uri));
console.log(decodeURIComponent(uri));    
/*
[Log] http%3A%2F%2Fwww.bai du.com (repetition.html, line 16)
[Log] http://www.bai du.com (repetition.html, line 17)
*/
eval 方法(防止代碼注入,應(yīng)該謹(jǐn)慎使用)

這個(gè)方法就是一個(gè)完整的解析器,它只接受一個(gè)參數(shù),即要執(zhí)行的ECMAScript(JavaScript)字符串。被執(zhí)行的代碼具有與該執(zhí)行環(huán)境相同的作用域鏈。這意味著通過(guò)eval()執(zhí)行的代碼可以引用在包含環(huán)境中定義的變量,且在該方法中創(chuàng)建的任何變量或者函數(shù)都不會(huì)被提升。如:

eval("function hi(){console.log("hi")}");
hi();

var num = 100;
eval("document.write(num);");

eval("var num = 110;");
document.write(num);

謹(jǐn)慎使用!
特別是他在執(zhí)行用戶數(shù)據(jù)輸入的情況下,后果可能非常嚴(yán)重。

Global 對(duì)象的屬性

下面的網(wǎng)頁(yè)列出Global 對(duì)象的所有屬性:
JavaScript Global 對(duì)象

Window 對(duì)象(以后再詳細(xì)討論)

EFMAScript 雖然沒(méi)有給出如何直接訪問(wèn)Global 對(duì)象,但是Web 瀏覽器都是將這個(gè)全局對(duì)象作為window 對(duì)象的一部分加以實(shí)現(xiàn)的。因此,在全局作用域中聲明的所有變量和函數(shù),都成為了window 對(duì)象的屬性。如:

var color = "red";
var func = function(){
    document.write("func function");
};

console.log(window.color); //red
window.func(); //func function

創(chuàng)建一個(gè)立即調(diào)用的函數(shù)表達(dá)式:

var global = function(){
    document.write("func")
}();

(
    function(){
        document.write("func")
    }
)();

上下兩種都可以。具體以后討論函數(shù)表達(dá)式。

Math 對(duì)象

ECMAScript 還為保存了數(shù)學(xué)公式和信息提供了一個(gè)公共位置,即Math 對(duì)象。

Math 對(duì)象的屬性

主要有:

Math.E(自然對(duì)數(shù)的底數(shù),即e 的值)

Math.LN10(10 的自然對(duì)數(shù))

Math.LN2(2 的自然對(duì)數(shù))

Math.LOG2E(以2 為底e 的對(duì)數(shù))

Math.LOG10E(以10 為底e 的對(duì)數(shù))

Math.PI(π 的值)

Math.SQRT1_2(1/2 的平方根即2 的平方根的倒數(shù))

Math.SQRT2(2 的平方根)

min()max()方法

這兩個(gè)方法對(duì)于確定一組數(shù)值中的最小和最大值非常好用。兩個(gè)方法都可以接收任意多個(gè)數(shù)值。如:

var maxValue = Math.max(321,3,1);
console.log(maxValue); //321

那么如何提取出數(shù)組里面的最大值或最小值呢?

var valuesArray = [32,13,214,32,5432,1];
var maxValue = Math.max.apply(this,valuesArray);
document.write(maxValue); //5432

使用apply()方法可以很輕松的改變this 值??梢詫⑷魏螖?shù)組座位第二個(gè)參數(shù)。

又如:

var valuesArray = [1,321,21,3,3];
function sum(){
    console.log(arguments.length);
    var max = Math.max.apply(this,arguments);
    console.log(max);
}
sum.apply(this,valuesArray);
舍入方法

Math.ceil()、Math.floor()、Math.round()三個(gè)方法分別遵循下面的規(guī)則:

Math.ceil()(向上舍入)

Math.round()(標(biāo)準(zhǔn)舍入-四舍五入)

Math.floor()(向下舍入)

random()方法

Math.random()方法返回大于等于0 小于1 的一個(gè)隨機(jī)數(shù)。如:

console.log(Math.random());

可以利用某個(gè)整數(shù)范圍內(nèi)隨機(jī)選擇一個(gè)數(shù)值:

值 = Math.floor(Math.random() * 可能的值的總數(shù) + 第一個(gè)可能的值);

比如想要隨機(jī)選擇一個(gè)1-10之間的隨機(jī)數(shù),就可以寫(xiě)成:

var num = Math.floor(Math.random() * 10 + 1);

如果是想隨機(jī)選擇一個(gè)2-4之間的隨機(jī)數(shù),就可以寫(xiě)成:

var num = Math.floor(Math.random() * 3 + 2);

也可以通過(guò)一個(gè)函數(shù)來(lái)自動(dòng)生成隨機(jī)數(shù),不必計(jì)算可能的值的范圍。如:

function selectFrom(lowerValue,upperValue){
    return Math.floor(Math.random() * (upperValue - lowerValue + 1) + lowerValue);
}

通過(guò)上面這個(gè)函數(shù),可以隨機(jī)訪問(wèn)Array 的數(shù)值。如:

var valuesArray = ["BMW","Audi","Benz"];

function selectFrom(lowerValue,upperValue){
    return Math.floor(Math.random() * (upperValue - lowerValue + 1) + lowerValue);
}

var selectValue = valuesArray[selectFrom(0,valuesArray.length - 1)];
console.log(selectValue);
其他方法

見(jiàn)JavaScript Math 對(duì)象

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/86243.html

相關(guān)文章

  • JavaScript 闖關(guān)記》之單體內(nèi)置對(duì)象

    摘要:?jiǎn)误w內(nèi)置對(duì)象對(duì)內(nèi)置對(duì)象的定義是由實(shí)現(xiàn)提供的不依賴于宿主環(huán)境的對(duì)象,這些對(duì)象在程序執(zhí)行之前就已經(jīng)存在了。還定義了兩個(gè)單體內(nèi)置對(duì)象和。此外,所有原生引用類型的構(gòu)造函數(shù),像和,也都是對(duì)象的屬性。 單體內(nèi)置對(duì)象 ECMA-262 對(duì)內(nèi)置對(duì)象的定義是「由 JavaScript 實(shí)現(xiàn)提供的、不依賴于宿主環(huán)境的對(duì)象,這些對(duì)象在 JavaScript 程序執(zhí)行之前就已經(jīng)存在了」。意思就是說(shuō),開(kāi)發(fā)人員不...

    antyiwei 評(píng)論0 收藏0
  • 如何閱讀《JavaScript高級(jí)程序設(shè)計(jì)》(一)

    摘要:題外話最近在看高級(jí)程序設(shè)計(jì)這本書(shū),面對(duì)著多頁(yè)的厚書(shū)籍,心里有點(diǎn)壓力,所以我決定梳理一下。。全局環(huán)境的關(guān)閉是頁(yè)面關(guān)閉或者瀏覽器關(guān)閉,而局部環(huán)境的關(guān)閉是指函數(shù)結(jié)束。數(shù)值范圍最大和最小的范圍是超出范圍的數(shù)字如何表示是一個(gè)特殊的值。 題外話 最近在看《JavaScript高級(jí)程序設(shè)計(jì)》這本書(shū),面對(duì)著700多頁(yè)的厚書(shū)籍,心里有點(diǎn)壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書(shū)。本書(shū)的內(nèi)容好像...

    chadLi 評(píng)論0 收藏0
  • 如何閱讀《JavaScript高級(jí)程序設(shè)計(jì)》(一)

    摘要:題外話最近在看高級(jí)程序設(shè)計(jì)這本書(shū),面對(duì)著多頁(yè)的厚書(shū)籍,心里有點(diǎn)壓力,所以我決定梳理一下。。全局環(huán)境的關(guān)閉是頁(yè)面關(guān)閉或者瀏覽器關(guān)閉,而局部環(huán)境的關(guān)閉是指函數(shù)結(jié)束。數(shù)值范圍最大和最小的范圍是超出范圍的數(shù)字如何表示是一個(gè)特殊的值。 題外話 最近在看《JavaScript高級(jí)程序設(shè)計(jì)》這本書(shū),面對(duì)著700多頁(yè)的厚書(shū)籍,心里有點(diǎn)壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書(shū)。本書(shū)的內(nèi)容好像...

    jubincn 評(píng)論0 收藏0
  • 如何閱讀《JavaScript高級(jí)程序設(shè)計(jì)》(一)

    摘要:題外話最近在看高級(jí)程序設(shè)計(jì)這本書(shū),面對(duì)著多頁(yè)的厚書(shū)籍,心里有點(diǎn)壓力,所以我決定梳理一下。。全局環(huán)境的關(guān)閉是頁(yè)面關(guān)閉或者瀏覽器關(guān)閉,而局部環(huán)境的關(guān)閉是指函數(shù)結(jié)束。數(shù)值范圍最大和最小的范圍是超出范圍的數(shù)字如何表示是一個(gè)特殊的值。 題外話 最近在看《JavaScript高級(jí)程序設(shè)計(jì)》這本書(shū),面對(duì)著700多頁(yè)的厚書(shū)籍,心里有點(diǎn)壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書(shū)。本書(shū)的內(nèi)容好像...

    libin19890520 評(píng)論0 收藏0
  • 基礎(chǔ)回顧-javascript數(shù)據(jù)類型

    摘要:棧區(qū)由編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。屬性返回對(duì)創(chuàng)建此對(duì)象的構(gòu)造函數(shù)的引用。所有的和都是宿主對(duì)象參考高級(jí)程序設(shè)計(jì)堆和棧的概念和區(qū)別全面解析中的數(shù)據(jù)類型與類型轉(zhuǎn)換 數(shù)據(jù)類型 數(shù)據(jù)類型劃分 javascript中定義了6中基本數(shù)據(jù)類型(原始值類型),和一種復(fù)雜數(shù)據(jù)類型(引用類型),所謂復(fù)雜類型,其本質(zhì)是由無(wú)序的名值對(duì)(key:val...

    codergarden 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<