JS函式宣告提前(2)
var t = 10; function test(test){ var t = ++test;//t text=11 console.log(t);//11 } test(t); console.log(t);//10 /* *函式宣告提前;執行js程式碼前,解析器將當前作用域內宣告的所有變數和函 *數都會放到作用域的開始處 *1 function test(t){}會提前宣告; *2 var t=10; *3 test(t); 執行函式 test(10); *4 function test(t){} 此時實參將10賦值給函式體的形參test 就是區域性變數 var text=10; *5 var t = ++test; t=11 *6 函式體內 console.log(t) t=11; *7 外層函式 console.log(t);首先在自己函式域內尋找 發現var t=10; 則全域性變數t=10 */ var t = 10; function test(test){ t = t + test; console.log(t);//20 } test(t); console.log(t);//20 /* *函式宣告提前;執行js程式碼前,解析器將當前作用域內宣告的所有變數和函 *數都會放到作用域的開始處 *1 function test(t){}會提前宣告; *2 var t=10; *3 test(t); 執行函式 test(10); *4 function test(t){} 此時實參將10賦值給函式體的形參test 就是區域性變數 var test=10; *5 t = t+test; 此時test=10 t在自己本函式作用域尋找,沒找到向上一層尋找,找到全域性 * 變數 var t=10; 然後t=t+test=20;此時改變的是全域性變數的值 var=20; *6 函式體內 console.log(t) t=20; *7 外層函式 console.log(t);首先在自己函式域內尋找 發現var t=20(第五步改變的值); * 則全域性變數t=20 */ var t = 10; function test(test){ t = t + test; console.log(t);//undefined+10=NaN var t = 3; } test(t); console.log(t);//10 /* *函式宣告提前;執行js程式碼前,解析器將當前作用域內宣告的所有變數和函 *數都會放到作用域的開始處 *1 function test(t){}會提前宣告; *2 var t=10; *3 test(t); 執行函式 test(10); *4 function test(t){} 此時實參將10賦值給函式體的形參test 就是區域性變數 var test=10; *5 t = t+test; 此時test=10 此時t會在本身函式作用域內尋找,由於var t=3;宣告會提前到 * 函式體內的最前面,則var t;宣告但沒有賦值 t找到的時候,發現t 宣告 * 但沒有賦值 所以t為undefine 則t=undefine+10=NaN *6 函式體內 console.log(t) t=undefined; *7 外層函式 console.log(t);首先在自己函式域內尋找 發現var t=10; * 則全域性變數t=10 */ function f(){ alert(1); } f(); function f(){ alert(10); } f(); /* *函式宣告提前;執行js程式碼前,解析器將當前作用域內宣告的所有變數和函 *數都會放到作用域的開始處 *1 第一個function f(){}會提前宣告;第二個function f(){}也會提前宣告 * 但是發現兩個函式名相同,則發生覆蓋,只保留了第二個function f(){} *2 f();則alert(10)被列印 */
相關推薦
JS函式宣告提前(2)
var t = 10; function test(test){ var t = ++test;//t text=11 console.log(t);//11 } test(t)
JS函數學習(2)
有一個 關鍵字 引入 apply() call() get error 方法 version JavaScript的函數不但是“頭等公民”,而且可以像變量一樣使用,具有非常強大的抽象能力 函數體內部的語句在執行時,一旦執行到return時,函數就執行完畢,並將結果返回。
js正則表示式(2)
找到以某個字串開頭的字串 var myReg=/^(abc)/gim; 如果不加m,那麼只找一行,而加了m可以找到每行中以該字串開頭的匹配文字。 如: abcsfsdfasd7890hklfahskfkaluiop7890-7890782ksdlafkasdnfklsdnf;lsabc
js便籤筆記(2)——DOM元素的特性(Attribute)和屬性(Property)
** 本文轉載自:https://www.cnblogs.com/wangfupeng1988/p/3631853.html (感謝分享) 1.介紹: 上篇js便籤筆記http://www.cnblogs.com/wangfupeng1988/p/3626300.html最後提到了d
JS函式預解析(小記)
一,預解析:尋找var function 形參 a=undefined fn = function fn(){ alert(); } 二,逐行解讀程式碼:  
第七週上機實踐專案 專案1-成員函式,友元函式,和一般函式的區別(2)
問題及程式碼: (2)模仿上面的示例,完成求點類中距離的任務。你需要實現求距離函式的三種版本:分別利用成員函式、友元函式和一般函式求兩點間距離的函式,並設計main()函式完成測試。 提示:此專案和例子的區別在於“距離是一個點和另外一個點的距離”,不同版本在引數上有體現。三
談談 JavaScript 中的 宣告提前(hoisting)
有許多同學知道js在執行的時候,是從上到下,從左到右,一行一行執行的,但是不知道在這之前還要做一些事情,js程式在正式執行之前,會將所有var 宣告的變數和function宣告的函式,預讀到所在作用域的頂部,但是對var 宣告只是將宣告提前,賦值仍然保留在原位置
Node.js躬行記(2)——檔案系統和網路
一、檔案系統 fs模組可與檔案系統進行互動,封裝了常規的POSIX函式。POSIX(Portable Operating System Interface,可移植作業系統介面)是UNIX系統的一個設計標準。fs模組提供了多個操作目錄和檔案的方法,大多會有同步和非同步兩種版本,同步的方法名稱會以Sync為字
深入理解JavaScript系列(2):揭祕命名函式表示式 命名函式表示式 函式表示式 函式宣告
還有一種函式表示式不太常見,就是被括號括住的(function foo(){}),他是表示式的原因是因為括號 ()是一個分組操作符,它的內部只能包含表示式,我們來看幾個例子: 函式宣告只能出現在程式或函式體內。 如果function foo(){}是作為賦值表示式的一部分的
如何編寫高質量的 JS 函式(2) -- 命名/註釋/魯棒篇
本文首發於 vivo網際網路技術 微信公眾號 連結:https://mp.weixin.qq.com/s/sd2oX0Z_cMY8_GvFg8pO4Q作者:楊昆 上篇 《如何編寫高質量的 JS 函式(1) -- 敲山震虎篇 》介紹了函式的執行機制,此篇將會從函式的命名、註釋和魯棒性方
python學習_day54_前端基礎之js(2)
data 截取 定義 得到 let 結果 是什麽 index 插入 在JavaScript中除了null和undefined以外其他的數據類型都被定義成了對象,也可以用創建對象的方法定義變量,String、Math、Array、Date、RegExp都是JavaScri
Node.js學習筆記(2):基本模塊
依次 常用模塊 nbsp 兩個 避免 ESS 第三方 text 編程 Node.js學習筆記(2):基本模塊 模塊 引入模塊 為了編寫可維護的代碼,我們把很多函數分組,分別放到不同的文件裏,這樣,每個文件包含的代碼就相對較少,很多編程語言都采用這種組織代碼的方式。在No
C++過載(2):通過成員函式和友元函式過載
分別通過成員函式和友元函式完成過載 #include <iostream> using namespace std; class Complex { public: Complex(double real =0,double imag=0):real(real),imag(i
node.js學習(2)
node.js 模組學習 學習一門新語言,就要學習它的api。(ps:這筆記其實早寫好了,前幾天做個h5,沒時間排版,等h5結束了,再總結。) 1:nodejs 檔案操作 node.js不只是能做網路程式設計,還能操作檔案 基本api (1)小檔案拷貝 var fs
Ardupilot chibios編譯,啟動,main函式學習(2)
目錄 文章目錄 目錄 摘要 1. Chibios編譯過程 2. Chibios啟動程式碼 1.startup_stm32f7xx.mk檔案 1.crt1.c 1.核心初始化函式
Vue.js(2)- 過濾器
概念:過濾器本質上就是一個函式,可被用作一些常見的文字格式化。 過濾器只可以用在兩個地方:mustache 插值表示式和 v-bind 表示式。 過濾器應該被新增在 JavaScript 表示式的尾部,由“管道”符指示; 全域性過濾器 <div id=
Spring Cloud Feign(宣告式服務呼叫)(2)
繼承特性 1.首先新建個工程,名為hello-service-api。因為要用到Spring MVC的註解所以要要加鎖spring-boot-web的依賴,具體如下: <?xml version="1.0" encoding="UTF-8"?> <project xml
朱有鵬C語言高階---4.9.3--單鏈表--將建立節點的程式碼封裝成一個函式(2)
朱有鵬C語言高階---4.9.2--單鏈表--訪問單鏈表中各個節點的資料(1) 朱有鵬C語言高階---4.9.3--單鏈表--將建立節點的程式碼封裝成一個函式(2) 原始碼:4.9.3danlianbiao2.c #include &
2018.10.16 JS(2)
JS入門(2) 1.parseint() parsefloat() 遇到第一個位元組是非數字就結束了。 3.var a="hello world" a這個變數是字串了,對於裡面的每一個字母來說,它是位元組。裡面有11個位元組,位元組總數
react 入門-建立元件(2)無狀態功能函式法
前面說的是通過繼承React.Component建立React元件。 還可以通過無狀態的功能函式構造React元件。 舉例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"&