《JavaScript高階程式設計》總結四

2021-07-23 03:15:10 字數 3961 閱讀 2590

一:function型別

每個函式都是function型別的例項。而且函式是物件,因此函式名實際上是指向函式物件的指標,不會與某個函式繫結

function

add(a,b)

var sum = function

(a,b) ;

*解析器會率先讀取函式宣告並加到執行環境中,函式宣告提公升

*函式表示式則必須等到解析器執行到他所在的**行才會真正被解析。因為函式位於初始化語句中,執行所在行前變數名是不會儲存對函式的引用

*要訪問函式的指標而不是執行函式的話,去掉函式名後面的()。

alert(add(1));                  //3

alert(sum(1,2)); //報錯

function

add(a)

var sum = function

(a,b) ;

var otheradd = function

(add,10)

*每個函式包含兩個屬性:length和prototype

function

sum(num1,num2)

function

callsum

(num1,num2)

function

(num1,num2)

*emcascript5定義了乙個方法bind()。這個方法會建立乙個函式的例項,其this會被繫結到傳給bind()函式的值。

window.color = "red";

var0 = ;

function

saycolor

() var objsay = saycolor.bind(o);

objsay(); //blue

二:基本包裝型別

emcascript還提供三個特殊的引用型別:boolean、number、string

*這些型別和其他引用型別相似,但同時也具備與各自基本型別相對應的特殊行為。實際上,每當讀取乙個基本型別值得時候,後台會建立乙個對應的基本包裝型別的物件,從而讓我們能夠呼叫一些方法來操作這些資料。

例:

var s1 = "some text";

var s2 = s1.substring(2);

/*第二行**等用於*/

var s1 = new

string("some text"); //建立string型別的乙個例項

var s2 = s1.substring(2); //在例項上呼叫指定的方法

s1 = null; //銷毀這個例項

區別:

var s1 = "text";

s1.color = "red";

alert(s1.color); //undefined

1、boolean型別

var falseobj = new

boolean(false); //布林表示式中所有物件都會被轉化為true

alert(falseobj && true); //true

var falsevalue = false;

alert(falsevalue && true); //false

alert(typeof falseobj); //object

alert(typeof falsevalue); //boolean

alert(falseobj instanceof

boolean) //true

alert(falsevalue instanceof

boolean) //false

2、number型別

*tostring(x):傳遞乙個表示基數的數,告訴他是幾進製,返回乙個字串形式

*tofixed(x):會按照指定的小樹位返回數值的字串表示

*toexponential():返回以指數表示法表示的數值字串

3、string型別

var str = "hello";

alert(str.charcodeat(1)); //101 --> e的字元編碼

alert(str.concat("world")); //helloworld --> 連線乙個或多個字串,返回新字串

alert(str.indexof("o")); //4 --> 從乙個字串找子字串

alert(str.tolowercase()); //hello

alert(str.touppercase()); //hello

vae text = /el/;

alert(str.match(text).index); //match()只接受乙個引數

alert(str.replace(text,"abcde")) //habcdelow

var str2 = " helo world ";

alert(str.trim()); //建立乙個字串副本,刪除前置及字尾的所有空格,並返回結果

var str3 = "hello world";

alert(str3.slice(3,7)); //(開始位置,結束位置)

alert(str3.substring(3,7)); //(開始位置,結束位置)

alert(str3.substr(3,7)); //(開始位置,長度)

三、單體內建物件

alert(encodeuri(uri)); //用於整個uri,不會對本身uri特殊字元如"/"編碼

alert(encodeuricomponent(uri)); //用於某一段

"*eval()方法。

像乙個完整的ecmascript解析器,只接受乙個引數,既要執行的js字串

var msg = "hello";

eval("alert(msg)");

eval("var str = 'world'"); //宣告不會提前

alert(str); //world

*window物件

不猛訪問global物件,但是在全域性作用域中宣告的所有變數和函式都成為了window物件的屬性

四、math物件

//找陣列中最大或最小值

var value = [1,2,3,4,56,7,89,10];

var num = 25.4;

alert(math.ceil(num)); //26 -->向上捨入

alert(math.round(num)); //25 -->四捨五入

alert(math.floor(num)); //25 -->向下捨入

alert(math.random()); // 0-1的乙個隨機數

JavaScript高階程式設計

ecmascript有5種基本型別資料 另外還有一種複雜的資料型別 typeof就是用來檢測變數的資料型別的,typeof可能會返回以下值 typeof操作符在檢測引用型別的值時,總是會返回object,所以用處不大。instanceof用來檢測物件型別的,返回值是 true false。例如 pe...

JavaScript高階程式設計 this

在函式中this到底取何值,是在函式真正被呼叫執行的時候確定的,函式定義的時候確定不了 因為this的取值是執行上下文環境的一部分,每次呼叫函式,都會產生乙個新的執行上下文環境。所謂建構函式就是用來new物件的函式。其實嚴格來說,所有的函式都可以new乙個物件,但是有些函式的定義是為了new乙個物件...

javascript 高階程式設計 二

這裡我們直接進入主題 在js剛剛開始的時候,必須面臨乙個問題,那就是如何使的js的載入和執行不會影響web核心語言html的展示效果,和html和諧共存。在這個背景下 2 xhtml中的應用 在html中如果字串,那麼html就會認為js指令碼已經結束所以會產生乙個錯誤用一下 來替換 來替換aler...