javascript中幾個容易混淆的概念總結
1.
var name = "The Window"; var object = { name : "My Object", getName: function(){ return this.name; } };
這里的getName()方法只簡單地返回this.name 的值。以下是幾種調(diào)用object.getName()的
方式以及各自的結果。
object.getName(); //"My Object"
(object.getName)(); //"My Object"
(object.getName = object.getName)(); //"The Window",在非嚴格模式下
第三種情況下(object.getName=object.getName);等價于var fn=(object.getName=object.getName);fn();
2.
function outputNumbers(count){ for (var i=0; i < count; i++){ //alert(i); } var i; //重新聲明變量 alert(i); //計數(shù) } outputNumbers(5);
JavaScript 從來不會告訴你是否多次聲明了同一個變量;遇到這種情況,它只會對后續(xù)的聲明視而不
見(不過,它會執(zhí)行后續(xù)聲明中的變量初始化)。匿名函數(shù)可以用來模仿塊級作用域并避免這個問題。
3.
function(){ //這里是塊級作用域 }(); //出錯!
這段代碼會導致語法錯誤,是因為JavaScript 將function 關鍵字當作一個函數(shù)聲明的開始,而函
數(shù)聲明后面不能跟圓括號。然而,函數(shù)表達式的后面可以跟圓括號。要將函數(shù)聲明轉換成函數(shù)表達式,
只要像下面這樣給它加上一對圓括號即可。
(function(){ //這里是塊級作用域 })();
4.
function outputNumbers(count){ (function () { for (var i=0; i < count; i++){ alert(i); } })(); alert(i); //導致一個錯誤! }
在這個重寫后的outputNumbers()函數(shù)中,我們在for 循環(huán)外部插入了一個私有作用域。在匿名
函數(shù)中定義的任何變量,都會在執(zhí)行結束時被銷毀。因此,變量i 只能在循環(huán)中使用,使用后即被銷毀。
而在私有作用域中能夠訪問變量count,是因為這個匿名函數(shù)是一個閉包,它能夠訪問包含作用域中的
所有變量。
這種技術經(jīng)常在全局作用域中被用在函數(shù)外部,從而限制向全局作用域中添加過多的變量和函數(shù)。
一般來說,我們都應該盡量少向全局作用域中添加變量和函數(shù)。在一個由很多開發(fā)人員共同參與的大型
應用程序中,過多的全局變量和函數(shù)很容易導致命名沖突。而通過創(chuàng)建私有作用域,每個開發(fā)人員既可
以使用自己的變量,又不必擔心搞亂全局作用域。例如:
(function(){ var now = new Date(); if (now.getMonth() == 0 && now.getDate() == 1){ alert("Happy new year!"); } })();
把上面這段代碼放在全局作用域中,可以用來確定哪一天是1 月1 日;如果到了這一天,就會向用
戶顯示一條祝賀新年的消息。其中的變量now 現(xiàn)在是匿名函數(shù)中的局部變量,而我們不必在全局作用域
中創(chuàng)建它。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
- JavaScript基本概念初級講解論壇貼的學習記錄
- javascript,jquery閉包概念分析
- JavaScript內(nèi)核之基本概念
- javascript學習筆記(二) js一些基本概念
- JavaScript回調(diào)(callback)函數(shù)概念自我理解及示例
- JavaScript的作用域和塊級作用域概念理解
- JavaScript 基本概念
- javascript相關事件的幾個概念
- 通過實例理解javascript中沒有函數(shù)重載的概念
- 深入理解JavaScript編程中的原型概念
- 深入剖析JavaScript編程中的對象概念
- 帶領大家學習javascript基礎篇(一)之基本概念
相關文章
layui-table對返回的數(shù)據(jù)進行轉變顯示的實例
今天小編就為大家分享一篇layui-table對返回的數(shù)據(jù)進行轉變顯示的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09