1. 程式人生 > >關於js中的作用域和作用域鏈以及常見的問題和結果方法

關於js中的作用域和作用域鏈以及常見的問題和結果方法

	<script type="text/javascript">
		var num=1;
		function fun(){
			var num=2;
			function fun1(){
				var num=3;
				console.log(num);
			}
			function fun2(){
				console.log(num);
			}
			fun1();
			fun2();
		}
		fun();
	</script>
上面的程式碼片段其實很清晰的表明了函式作用域中變數的查詢規律,輸出結果是3,2.

相關推薦

關於js作用作用以及常見的問題結果方法

<script type="text/javascript"> var num=1; function fun(){ var num=2; function fun1(){ var num=3; console.log(num); } functi

JS的塊級作用,var、let、const三者的區別

brush 語句 nbsp light 可見 undefine 函數 true 正常 1. 塊作用域{ } <script type="text/javascript"> { var a = 1; console.log

JSfor迴圈變數作用

js中作用域只有函式作用域和全域性作用域,在函式體內使用var 定義的變數,會被提到函式開始處進行定義,作用域為整個函式,常見的誤區如下 var a=[]; for(var i = 0;i<10;i++){ var q = i; a[i]=funct

js模仿塊級作用

js中沒有塊級作用域的概念,例如: function printNumber(num) { for(var i = 0; i < num; i ++ ) { console.log(i); }

js的幾種跨方法

js跨域指的是通過js在不同域之間進行資料傳輸或通訊,例如ajax通訊技術,或者通過js獲取頁面中iframe的資料。只要有任意一個不同,則協議、域名、埠中有任意一個不同,則彼此成為不同的域。 請注意:localhost和127.0.0.1雖然都指向本機,但也屬於跨域。 瀏覽器執行j

JS的prototype的作用

轉載自以下部落格:http://blog.sina.com.cn/s/blog_7045cb9e0100rtoh.html 以及百度的回答:https://zhidao.baidu.com/question/169125320.html

js的innerHTML的作用

js中常常用到innerHTML,其作用就是獲取到標籤裡面的內容,同時也可以為標籤新增內容 <div> <p id="text">hello world</p> </div> <script> v

js的有什麼作用

<!-- --> 在html起到註釋的作用,同理 <script><!--   -->  </script> 一些早期的瀏覽器不支援<script>標籤,會把<script>之間的程式碼按html文字進

node.js使用net模塊創建服務器客戶端

nec host error write 通訊 ESS ons code 建立 1.node.js中net模塊創建服務器(net.createServer) // 將net模塊 引入進來 var net = require("net"); // 創建一個net.Serv

jsstyle,currentStyle,getComputedStylegetBoundingClientRect的區別以及獲取css操作方法

js中style,currentStyle,getComputedStyle和getBoundingClientRect的區別以及獲取css操作方法 在js中,之前我們獲取屬性大多用的都是ele.style.border這種形式的方法,但是這種方法是有侷限性的,該方法只能獲取到行內樣式,獲取不

js三種事件繫結之間的關係事件處理函式裡的this值

<!DOCTYPE HTML> <html > <head>     <meta charset="UTF-8"> </head> <body> <div id="b" onclick="cons

js使用正則表示式,簡單查詢字母數字

<!DOCTYPE HTML> <html > <head><meta charset="UTF-8"><title></title><script type="text/javascript"&

node.js通過dgram資料報模組建立UDP伺服器客戶端

node.js中 dgram 模組提供了udp資料包的socket實現,可以方便的建立udp伺服器和客戶端。   一、建立UDP伺服器和客戶端 服務端: const dgram = require('dgram'); //建立upd套接字 //引數一表示套接字型別,'udp4'

js的對象、原型機制、構造函數

this arr prototype 函數名 浪費 創建對象 字段名 name pre 一、在js中創建對象的方式   //一、字面量或直接量創建對象 var obj1 = { name:"zs", age:12

輕鬆理解JS的面向物件,順便搞懂prototype__proto__

這篇文章主要講一下JS中面向物件以及 __proto__,ptototype和construcator,這幾個概念都是相關的,所以一起講了。 在講這個之前我們先來說說類,瞭解面向物件的朋友應該都知道,如果我要定義一個通用的型別我可以使用類(class)。比如在java中我們可以這樣定義一個類: public

js實現button按鈕變灰不可用,可用的方法

按鈕變灰不可用方法:document.getElementById("crop").setAttribute("disabled", true); 按鈕可用方法:document.getElementById("crop").removeAttribute("disabled"); 按

js如何建立變化的陣列名,以及根據動態陣列名,查詢陣列

理論上Javascript變數宣告是在編譯階段得到的,所以無法通過宣告變數名的形式進行儲存,但是可以儲存為物件的屬性,因為可以用obj[prop]的形式宣告變數。根據動態陣列名,查詢相應陣列。比如var

前端JS陣列的刪除、新增方式,以及字串陣列的相互轉換、陣列的合併

<script> var array=[1,3,5]; console.log(array); array.push(7,9); console.log("陣列後邊加入元素="+array); /

js動態變更select為input,以及input的type型別從hidden變為text

在高版本的jquery引入prop方法後,什麼時候該用prop?什麼時候用attr?它們兩個之間有什麼區別?這些問題就出現了。關於它們兩個的區別,網上的答案很多。這裡談談我的心得,我的心得很簡單:對於HTML元素本身就帶有的固有屬性,在處理時,使用prop方法。對於HTML元素我們自己自定義的DOM屬性,在處

jscheckbox長度為undefinde如何解決以及取checkbox有多少被選中

 當checkbox的內容為一項時,用javascript獲取它長度時為undefined的解決辦法,非常簡單 如下: 首先了解下CheckBox(多選框): 當頁面中有多個CheckBox的時候,它是一個數組,而單個的時候,它就是一個物件。 可以直接用document