国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【JavaScript】 函數(shù)

Martin91 / 1972人閱讀

摘要:函數(shù)使用它們實(shí)參的值來計(jì)算返回值,稱為該函數(shù)調(diào)用表達(dá)式的值。通常函數(shù)名的第一個(gè)字符為小寫。在函數(shù)內(nèi)部定義的變量,外部無法讀取,稱為局部變量。注意對(duì)于命令來說,局部變量只能在函數(shù)內(nèi)部聲明,在其他區(qū)塊中聲明,一律都是全局變量。

函數(shù) 1.函數(shù)簡(jiǎn)介

通過函數(shù)可以封裝任意多條語句,而且可以在任何地方、任何時(shí)候調(diào)用。

ECMAScript中的函數(shù)使用function關(guān)鍵字來聲明,后跟一組參數(shù)以及函數(shù)體,這些參數(shù)在函數(shù)體內(nèi)像局部變量一樣工作。

function functionName(arg0, arg1....argN) {
  statements
}

函數(shù)調(diào)用會(huì)為形參提供實(shí)參的值。函數(shù)使用它們實(shí)參的值來計(jì)算返回值,稱為該函數(shù)調(diào)用表達(dá)式的值。

function test(name){
    return name;
}
test("tg");

在上面的例子中,name就是形參,調(diào)用時(shí)的"tg"就是實(shí)參。

除了實(shí)參之外,每次調(diào)用還會(huì)擁有另一個(gè)值---本次調(diào)用的上下文---這就是this關(guān)鍵字的值。

我們還可以通過在函數(shù)內(nèi)添加return語句來實(shí)現(xiàn)返回值。

注意:遇到return語句時(shí),會(huì)立即退出函數(shù),也就是說,return語句后面的語句不再執(zhí)行。

function test(){
  return 1;
  alert(1);  //永遠(yuǎn)不會(huì)被執(zhí)行
}

一個(gè)函數(shù)中可以包含多個(gè)return語句,而且return語句可以不帶有任何返回值,最終將返回undefined。

function test(num){
  if(num > 2){
   return num;
  }else{
    return ;
  }
}
test(3);  // 3
test(1);  //undefined

如果函數(shù)掛載在一個(gè)對(duì)象上,將作為對(duì)象的一個(gè)屬性,就稱它為對(duì)象的方法。

var o = {
  test: function(){}
}

test()就是對(duì)象o的方法。

2、函數(shù)定義(聲明)

JavaScript有三種方法,可以定義一個(gè)函數(shù)。

(1)function命令

function name() {}

name是函數(shù)名稱標(biāo)識(shí)符。函數(shù)名稱是函數(shù)聲明語句必需的部分。不過對(duì)于函數(shù)表達(dá)式來說,名稱是可選的:如果存在,該名字只存在于函數(shù)體內(nèi),并指向該函數(shù)對(duì)象本身。

圓括號(hào):圓括號(hào)內(nèi)可放置0個(gè)或多個(gè)用逗號(hào)隔開的標(biāo)識(shí)符組成的列表,這些標(biāo)識(shí)符就是函數(shù)的參數(shù)名稱。 花括號(hào):可包含0條或多條JavaScript語句。這些語句構(gòu)成了函數(shù)體。一旦調(diào)用函數(shù),就會(huì)執(zhí)行這些語句。

(2)函數(shù)表達(dá)式

var f = function(x){   
  console.log(x);  
}

采用函數(shù)表達(dá)式聲明函數(shù)時(shí),function命令后面不帶有函數(shù)名。如果加上函數(shù)名,該函數(shù)名只在函數(shù)體內(nèi)部有效,在函數(shù)體外部無效。

(3)Function()

Function()函數(shù)定義還可以通過Function()構(gòu)造函數(shù)來定義

var f=new Function("x","y","return x+y");

等價(jià)于

var f=function(x,y){
  return x+y;
}

除了最后一個(gè)參數(shù)是函數(shù)體外,前面的其他參數(shù)都是函數(shù)的形參。如果函數(shù)不包含任何參數(shù),只須給構(gòu)造函數(shù)簡(jiǎn)單的傳入一個(gè)字符串---函數(shù)體---即可。 不過,F(xiàn)unction()構(gòu)造函數(shù)在實(shí)際編程中很少會(huì)用到。

注意點(diǎn):如果同一個(gè)函數(shù)被多次定義(聲明),后面的定義(聲明)就會(huì)覆蓋前面的定義(聲明)

function f(){
 console.log(1);
}
f()  //1

function f(){
 console.log(2);
}
f()  //2

函數(shù)可以調(diào)用自身,這就是遞歸(recursion)

function f(x){
  if(x>2){
    console.log(x);
    return f(x-1);
  }else{
    return 1;
  }
}
f(4); 
// 4
//3

不能在條件語句中聲明函數(shù) (在ES6中的塊級(jí)作用域是允許聲明函數(shù)的。)

3、函數(shù)命名

任何合法的JavaScript標(biāo)識(shí)符都可以用做一個(gè)函數(shù)的名稱。

函數(shù)名稱通常是動(dòng)詞或以動(dòng)詞為前綴的詞組。 通常函數(shù)名的第一個(gè)字符為小寫。當(dāng)函數(shù)名包含多個(gè)單詞時(shí),可采取下劃線法,比如:like_this();也可以采取駝峰法,也就是除了第一個(gè)單詞之外的單詞首字母使用大寫字母,比如:likeThis();

4、被提前

就像變量的“被提前”一樣,函數(shù)聲明語句也會(huì)“被提前”到外部腳本或外部函數(shù)作用域的頂部,所以以這種方式聲明的函數(shù),可以被在它定義之前出現(xiàn)的代碼所調(diào)用。

f()
function f(){}

其實(shí)JavaScript是這樣解釋的:

function f(){}
f()

注意:以表達(dá)式定義的函數(shù)并沒有“被提前”,而是以變量的形式“被提前”。

f();  
var f = function (){};  
// TypeError: f is not a function

變量其實(shí)是分為聲明,賦值兩部分的,上面的代碼等同于下面的形式

var f;
f();
f = function() {};

調(diào)用f的時(shí)候,f只是被聲明了,還沒有被賦值,等于undefined,所以會(huì)報(bào)錯(cuò)。

5、嵌套函數(shù)

JavaScript的函數(shù)可以嵌套在其他函數(shù)中定義,這樣它們就可以訪問它們被定義時(shí)所處的作用域中的任何變量,這就是JavaScript的閉包。

function test(){
  var name = "tg";
  function test2(){
    var age = 10;
    console.log(name);  // "tg"
  }
  console.log(age);  // Uncaught ReferenceError: age is not defined
}
test();

從上面的例子可得,test2()可以訪問name,但是如果在test()內(nèi),test2()外訪問age,就會(huì)報(bào)錯(cuò)。

6、函數(shù)調(diào)用

構(gòu)成函數(shù)主體的JavaScript代碼在定義時(shí)并不會(huì)執(zhí)行,只有調(diào)用該函數(shù),它們才會(huì)執(zhí)行。有4種方式調(diào)用JavaScript函數(shù):

作為函數(shù)

作為方法

作為構(gòu)造函數(shù)

通過它們的call()和apply()方法間接調(diào)用

6.1函數(shù)調(diào)用

函數(shù)可以通過函數(shù)名來調(diào)用,后跟一對(duì)圓括號(hào)和參數(shù)(圓括號(hào)中的參數(shù)如果有多個(gè),用逗號(hào)隔開)

function test(){}
test()

6.2方法調(diào)用

var o = {
 f: function(){}
}
o.f();

6.3構(gòu)造函數(shù)調(diào)用

如果函數(shù)或者方法調(diào)用之前帶有關(guān)鍵字new,它就構(gòu)成構(gòu)造函數(shù)調(diào)用。 凡是沒有形參的構(gòu)造函數(shù)調(diào)用都可以省略圓括號(hào)(但不推薦)。

var o=new Object();
var o=new Object;

7、函數(shù)的實(shí)參和形參

7.1 可選形參

在ECMAScript中的函數(shù)在調(diào)用時(shí),傳遞的參數(shù)可少于函數(shù)中的參數(shù),沒有傳入?yún)?shù)的命名參數(shù)的值是undefined。
為了保持好的適應(yīng)性,一般應(yīng)當(dāng)給參數(shù)賦予一個(gè)合理的默認(rèn)值。

function go(x,y){   
  x = x || 1;   
  y = y || 2;  
}

注意:當(dāng)用這種可選實(shí)參來實(shí)現(xiàn)函數(shù)時(shí),需要將可選實(shí)參放在實(shí)參列表的最后。那些調(diào)用你的函數(shù)的程序員是沒法省略第一個(gè)參數(shù)并傳入第二個(gè)實(shí)參的。

7.2 實(shí)參對(duì)象

當(dāng)調(diào)用函數(shù)時(shí),傳入的實(shí)參個(gè)數(shù)超過函數(shù)定義時(shí)的形參個(gè)數(shù)時(shí),是沒有辦法直接獲得未命名值的引用。 這時(shí),標(biāo)識(shí)符arguments出現(xiàn)了,其指向?qū)崊?duì)象的引用,實(shí)參對(duì)象是一個(gè)類數(shù)組對(duì)象,可以通過數(shù)字下標(biāo)來訪問傳入函數(shù)的實(shí)參值,而不用非要通過名字來得到實(shí)參。

function go(x){   
  console.log(arguments[0]);   
  console.log(arguments[1]);  
}  
go(1,2);  
//1
//2

arguments有一個(gè)length屬性,用以標(biāo)識(shí)其所包含元素的個(gè)數(shù)。

function f(x){
  console.log(arguments.length);
}
f(1,2)  // 2

注意:arguments并不是真正的數(shù)組,它是一個(gè)類數(shù)組對(duì)象。每個(gè)實(shí)參對(duì)象都包含以數(shù)字為索引的一組元素以及l(fā)ength屬性。

通過實(shí)參名字來修改實(shí)參值的話,通過arguments[]數(shù)組也可以獲取到更改后的值。

在函數(shù)體內(nèi),我們可以通過arguments對(duì)象來訪問這個(gè)參數(shù)類數(shù)組,我們可以使用方括號(hào)語法訪問它的每一個(gè)參數(shù)(比如arguments[0]),它還有一個(gè)length屬性,表示傳遞進(jìn)來的參數(shù)個(gè)數(shù)。

arguments類數(shù)組中每一個(gè)元素的值會(huì)與對(duì)應(yīng)的命名參數(shù)的值保持同步,這種影響是單向的,也可以這樣說,如果是修改arguments中的值,會(huì)影響到命名參數(shù)的值,但是修改命名參數(shù)的值,并不會(huì)改變arguments中對(duì)應(yīng)的值。

function f(x){   
  console.log(x);    // 1
  arguments[0]=null;   
  console.log(x);    // null
}

f(1);

在上面的例子中,arguments[0]和x指代同一個(gè)值,修改其中一個(gè)的值會(huì)影響到另一個(gè)。 注意:如果有同名的參數(shù),則取最后出現(xiàn)的那個(gè)值。

function f(x,x){
 console.log(x);
}
f(1,2)  // 2

callee和caller屬性

arguments對(duì)象帶有一個(gè)callee屬性,返回它所對(duì)應(yīng)的原函數(shù)。

在一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)時(shí),被調(diào)用函數(shù)會(huì)自動(dòng)生成一個(gè)caller屬性,指向調(diào)用它的函數(shù)對(duì)象。如果該函數(shù)當(dāng)前未被調(diào)用,或并非被其他函數(shù)調(diào)用,則caller為null。

再次提醒,arguments并不是真正的數(shù)組,它只是類數(shù)組對(duì)象(有l(wèi)ength屬性且可使用索引來訪問子項(xiàng))。但我們可以借助Array類的原型對(duì)象的slice方法,將其轉(zhuǎn)為真正的數(shù)組:

Array.prototype.slice.call(arguments, 0);

//更簡(jiǎn)潔的寫法

[].slice.call(arguments, 0);

7.3 按值傳參

ECMAScript中所有函數(shù)的參數(shù)都是按值傳遞的。也就是說,把函數(shù)外部的值復(fù)制給函數(shù)內(nèi)部的參數(shù),就和把值從一個(gè)變量復(fù)制到另一個(gè)變量一樣。

在向參數(shù)傳遞基本類型的值時(shí),被傳遞的值會(huì)被復(fù)制給一個(gè)局部變量(即命名參數(shù),或者用ECMAScript的概念來說,就是arguments對(duì)象中的一個(gè)元素。)

例子:

var num = 1;
function test(count){
  count += 10;
  return count;
}
var result = test(num);
console.log(num);  // 1
console.log(result);  // 11

在上面的例子中,我們將num作為參數(shù)傳給了test()函數(shù),即count的值也是1,然后在函數(shù)內(nèi)將count加10,但是由于傳遞的只是num的值的一個(gè)副本,并不會(huì)影響num,count和num是獨(dú)立的,所以最后num的值依舊是1.

在向參數(shù)傳遞引用類型的值時(shí),會(huì)先把這個(gè)值在內(nèi)存中的地址復(fù)制給一個(gè)局部變量,若局部變量變化,則局部變量和復(fù)制給局部變量路徑的全局變量也會(huì)發(fā)生改變。

function test(obj){
  obj.name = "tg";
}
var person = new Object();
test(person);
console.log(person.name);  // "tg"

但是,如果局部變量指向了一個(gè)新的堆內(nèi)地址,再改變局部變量的屬性時(shí),不會(huì)影響全局變量。

看下面的例子:

function test(obj){
  obj.name = "tg";
  obj = new Object();
  obj.name = "tg2";
}

var person = new Object();
test(person);
console.log(person.name);  // "tg"

在上面的例子中,全局的person和函數(shù)內(nèi)局部的obj在初始傳遞時(shí),兩者指向的是內(nèi)存中的同一個(gè)地址,但是,當(dāng)在函數(shù)內(nèi)創(chuàng)建了一個(gè)新的對(duì)象,并賦值給obj(賦值的是新對(duì)象的地址)。這個(gè)時(shí)候,obj指向的就不在是全局對(duì)象person,而是指向了新對(duì)象的地址,所以給obj添加屬性name時(shí),全局對(duì)象person的屬性不會(huì)被改變。

對(duì)于上面的例子中的obj,也可以這樣說,一旦obj的值發(fā)生了變化,那么它就不再指向person在內(nèi)存中的地址了。

8、將對(duì)象屬性用做實(shí)參

當(dāng)一個(gè)函數(shù)包含超過三個(gè)形參時(shí),要記住調(diào)用函數(shù)中實(shí)參的正確順序是件讓人頭疼的事。不過,我們可以通過名/值對(duì)的形式傳入?yún)?shù),這樣就不需要管參數(shù)的順序了。

function f(params){ 
  console.log(params.name);
}
f({name:"a"})
9、作為值的函數(shù)

在JavaScript中,我們可以將函數(shù)賦值給變量。

function f(){} 
var a=f;
10、函數(shù)作用域

作用域(scope)指的是變量存在的范圍。

Javascript只有兩種作用域:一種是全局作用域,變量在整個(gè)程序中一直存在,所有地方都可以讀取;另一種是函數(shù)作用域,變量只在函數(shù)內(nèi)部存在。 在函數(shù)外部聲明的變量就是全局變量(global variable),它可以在函數(shù)內(nèi)部讀取。

var a=1;
function f(){
 console.log(a)
}
f()  //1

上面的代碼中,函數(shù)f內(nèi)部可以讀取全局變量a。

在函數(shù)內(nèi)部定義的變量,外部無法讀取,稱為“局部變量”(local variable)。

function f(){
  var a=1;
}
v  //ReferenceError: v is not defined

上面代碼中,變量v在函數(shù)內(nèi)部定義,所以是一個(gè)局部變量,函數(shù)之外就無法讀取。

函數(shù)內(nèi)部定義的變量,會(huì)在該作用域內(nèi)覆蓋同名全局變量。

var a=1;
function f(){
  var a=2;
  console.log(a);
}
f()  //2
a  //1

注意:對(duì)于var命令來說,局部變量只能在函數(shù)內(nèi)部聲明,在其他區(qū)塊中聲明,一律都是全局變量。

函數(shù)的執(zhí)行依賴于變量作用域,這個(gè)作用域是在函數(shù)定義時(shí)決定的,而不是函數(shù)調(diào)用時(shí)決定的。

11、函數(shù)內(nèi)部的變量提升

與全局作用域一樣,函數(shù)作用域內(nèi)部也會(huì)產(chǎn)生“變量提升”現(xiàn)象。

var命令聲明的變量,不管在什么位置,變量聲明都會(huì)被提升到函數(shù)體的頭部。

function f(x){
  if(x>10){
    var a = x -1;
  }
}

//等同于

function f(x){
  var a;
  if(x>10){
    a = x - 1;
  }
}
12、沒有重載

ECMAScript函數(shù)沒有重載的定義。

重載是指為一個(gè)函數(shù)編寫兩個(gè)定義,只要這兩個(gè)定義的簽名(接受的參數(shù)的類型和數(shù)量)不同即可。

對(duì)于ECMAScript函數(shù),如果定義了兩個(gè)同名的,后定義的函數(shù)會(huì)覆蓋先定義的函數(shù)。

13、函數(shù)屬性、方法和構(gòu)造函數(shù)

13.1 函數(shù)的屬性、方法

(1)name屬性

name屬性返回緊跟在function關(guān)鍵字之后的那個(gè)函數(shù)名。

function f(){}
f.name   //f

(2)length屬性

函數(shù)的length屬性是只讀屬性,代表函數(shù)形參的數(shù)量,也就是在函數(shù)定義時(shí)給出的形參個(gè)數(shù)。

function f(x,y){}
f.length  //2

(3)prototype屬性

每一個(gè)函數(shù)都包含一個(gè)prototype屬性,這個(gè)屬性指向一個(gè)對(duì)象的引用,這個(gè)對(duì)象稱做“原型對(duì)象”(prototype object)。

(4)call()

語法:

call([thisObj[,arg1[, arg2[, [,.argN]]]]])

定義:調(diào)用一個(gè)對(duì)象的一個(gè)方法,以另一個(gè)對(duì)象替換當(dāng)前對(duì)象。
說明: call 方法可以用來代替另一個(gè)對(duì)象調(diào)用一個(gè)方法。call 方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象。

(5)apply()

語法:

apply([thisObj[,argArray]]) 

定義:應(yīng)用某一對(duì)象的一個(gè)方法,用另一個(gè)對(duì)象替換當(dāng)前對(duì)象。
說明: 如果 argArray 不是一個(gè)有效的數(shù)組或者不是 arguments 對(duì)象,那么將導(dǎo)致一個(gè) TypeError。 如果沒有提供 argArray 和 thisObj 任何一個(gè)參數(shù),那么 Global 對(duì)象將被用作 thisObj, 并且無法被傳遞任何參數(shù)。 bind()方法 bind()方法是在ECMAScript 5中新增的方法。 toString()方法
函數(shù)的toString方法返回函數(shù)的源碼。

function f(){
  return 1;
}
f.toString()  
//function f(){
//  return 1;
//}
(6)bind()

bind()方法會(huì)創(chuàng)建一個(gè)新函數(shù),稱為綁定函數(shù),當(dāng)調(diào)用這個(gè)綁定函數(shù)時(shí),綁定函數(shù)會(huì)以創(chuàng)建它時(shí)傳入 bind()方法的第一個(gè)參數(shù)作為 this,傳入 bind() 方法的第二個(gè)以及以后的參數(shù)加上綁定函數(shù)運(yùn)行時(shí)本身的參數(shù)按照順序作為原函數(shù)的參數(shù)來調(diào)用原函數(shù)。

var bar=function(){   
  console.log(this.x);   
}
var foo={ 
     x:3   
}   
bar();  
bar.bind(foo)();
 /*或*/
var func=bar.bind(foo);   
func();

輸出:
undefined
3

注意:bind()返回的是函數(shù)。

13.2 構(gòu)造函數(shù)

構(gòu)造函數(shù)和普通函數(shù)的定義并沒有太大區(qū)別,不過我們使用new關(guān)鍵字來生成構(gòu)造函數(shù)的實(shí)例對(duì)象。

function Test(){}
var t = new Test();

對(duì)于構(gòu)造函數(shù),一般首字母大寫,便于和普通函數(shù)區(qū)別開來。

定義每個(gè)函數(shù)都會(huì)主動(dòng)獲取一個(gè)prototype屬性,該屬性擁有一個(gè)對(duì)象--該函數(shù)的原型,該原型有一個(gè)constructor屬性,指向其當(dāng)前所屬的函數(shù)。

14、閉包

JavaScript的函數(shù)可以嵌套在其他函數(shù)中定義,這樣它們就可以訪問它們被定義時(shí)所處的作用域中的任何變量,這就是JavaScript的閉包。

閉包會(huì)保存函數(shù)作用域中的狀態(tài),即使這個(gè)函數(shù)已經(jīng)執(zhí)行完畢。

閉包的最大用處有兩個(gè),一個(gè)是可以讀取函數(shù)內(nèi)部的變量,另一個(gè)就是讓這些變量始終保持在內(nèi)存中,即閉包可以使得它誕生環(huán)境一直存在。

閉包的創(chuàng)建依賴于函數(shù)。

function f(a){   
  return function(){   
    return a++;   
  };   
}   
var c=f(1);   
console.log(c());    //1
console.log(c());   //2
console.log(c());  //3

閉包的另一個(gè)用處,是封裝對(duì)象的私有屬性和私有方法。

15、立即調(diào)用的函數(shù)表達(dá)式(IIFE)

在Javascript中,一對(duì)圓括號(hào)()是一種運(yùn)算符,跟在函數(shù)名之后,表示調(diào)用該函數(shù)。

(function(){  
  statement
}())

上面的函數(shù)會(huì)立即調(diào)用。

注意:上面代碼的圓括號(hào)的用法,function之前的左圓括號(hào)是必需的,因?yàn)槿绻粚戇@個(gè)左圓括號(hào),JavaScript解釋器會(huì)試圖將關(guān)鍵字function解析為函數(shù)聲明語句。而使用圓括號(hào),JavaScript解釋器才會(huì)正確地將其解析為函數(shù)定義表達(dá)式。

當(dāng)然,下面的方法也會(huì)以表達(dá)式來處理函數(shù)定義的方法。

!function(){}();
~function(){}();
-function(){}();
+function(){}();

通常情況下,只對(duì)匿名函數(shù)使用這種“立即執(zhí)行的函數(shù)表達(dá)式”。它的目的有兩個(gè):

一是不必為函數(shù)命名,避免了污染全局變量;

二是IIFE內(nèi)部形成了一個(gè)多帶帶的作用域,可以封裝一些外部無法讀取的私有變量。

16、eval命令

eval命令的作用是,將字符串當(dāng)作語句執(zhí)行。

eval("var a=1");
a  //1

eval沒有自己的作用域,都在當(dāng)前作用域內(nèi)執(zhí)行

JavaScript規(guī)定,如果使用嚴(yán)格模式,eval內(nèi)部聲明的變量,不會(huì)影響到外部作用域。

(function(){

  "use strict";

  eval("var a=1");

  console.log(a);  //ReferenceError: a is not defined

})();
17、嚴(yán)格模式下的函數(shù)

不能把函數(shù)命名為eval或arguments

不能把參數(shù)命名為eval或arguments

不能出現(xiàn)兩個(gè)命名參數(shù)同名的情況

如果出現(xiàn)上面三種情況,都會(huì)導(dǎo)致語法錯(cuò)誤,代碼無法執(zhí)行。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/81988.html

相關(guān)文章

  • JavaScript專題系列文章

    摘要:專題系列共計(jì)篇,主要研究日常開發(fā)中一些功能點(diǎn)的實(shí)現(xiàn),比如防抖節(jié)流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點(diǎn)是研究專題之函數(shù)組合專題系列第十六篇,講解函數(shù)組合,并且使用柯里化和函數(shù)組合實(shí)現(xiàn)模式需求我們需要寫一個(gè)函數(shù),輸入,返回。 JavaScript 專題之從零實(shí)現(xiàn) jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實(shí)現(xiàn)一個(gè) jQuery 的 ext...

    Maxiye 評(píng)論0 收藏0
  • JS程序

    摘要:設(shè)計(jì)模式是以面向?qū)ο缶幊虨榛A(chǔ)的,的面向?qū)ο缶幊毯蛡鹘y(tǒng)的的面向?qū)ο缶幊逃行┎顒e,這讓我一開始接觸的時(shí)候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續(xù)了解設(shè)計(jì)模式必須要先搞懂面向?qū)ο缶幊蹋駝t只會(huì)讓你自己更痛苦。 JavaScript 中的構(gòu)造函數(shù) 學(xué)習(xí)總結(jié)。知識(shí)只有分享才有存在的意義。 是時(shí)候替換你的 for 循環(huán)大法了~ 《小分享》JavaScript中數(shù)組的那些迭代方法~ ...

    melody_lql 評(píng)論0 收藏0
  • JavaScript深入淺出

    摘要:理解的函數(shù)基礎(chǔ)要搞好深入淺出原型使用原型模型,雖然這經(jīng)常被當(dāng)作缺點(diǎn)提及,但是只要善于運(yùn)用,其實(shí)基于原型的繼承模型比傳統(tǒng)的類繼承還要強(qiáng)大。中文指南基本操作指南二繼續(xù)熟悉的幾對(duì)方法,包括,,。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。 怎樣使用 this 因?yàn)楸救藢儆趥吻岸耍虼宋闹兄豢炊?8 成左右,希望能夠給大家?guī)韼椭?...(據(jù)說是阿里的前端妹子寫的) this 的值到底...

    blair 評(píng)論0 收藏0
  • 10分鐘了解Javascript-天碼營(yíng)

    摘要:然后將構(gòu)造函數(shù)的原型設(shè)為,便實(shí)現(xiàn)了對(duì)象繼承。首先,我們定義一個(gè)構(gòu)造函數(shù),并在其中定義一個(gè)局部變量。這里的是局部變量,其作用域仍然存在是閉包現(xiàn)象,而非對(duì)象屬性。 Javascript是動(dòng)態(tài)的,弱類型的,解釋執(zhí)行的程序設(shè)計(jì)語言。 Javascript極其靈活,支持多種程序設(shè)計(jì)范式:面向?qū)ο蟆⒅噶钍健⒑瘮?shù)式。JavaSCript最初被用于瀏覽器腳本,現(xiàn)在已經(jīng)是所有主流瀏覽器的默認(rèn)腳本語言。瀏...

    trigkit4 評(píng)論0 收藏0
  • 學(xué)習(xí)React之前你需要知道的的JavaScript基礎(chǔ)知識(shí)

    摘要:和類在開始時(shí)遇到類組件,只是需要有關(guān)類的基礎(chǔ)。畢竟,中的條件呈現(xiàn)僅再次顯示大多數(shù)是而不是特定的任何內(nèi)容。 在我的研討會(huì)期間,更多的材料是關(guān)于JavaScript而不是React。其中大部分歸結(jié)為JavaScript ES6以及功能和語法,但也包括三元運(yùn)算符,語言中的簡(jiǎn)寫版本,此對(duì)象,JavaScript內(nèi)置函數(shù)(map,reduce,filter)或更常識(shí)性的概念,如:可組合性,可重用...

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

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

0條評(píng)論

閱讀需要支付1元查看
<