摘要:定義一個字符串文本內容是代碼測試函數作用將一個字符串類型的代碼轉換為真正的代碼,并且執行問題安全問題測試作用域變量與函數都有作用域。作用域就是變量和函數可以被訪問的范圍,可以分為全局作用域和函數作用域局部作用域。
函數
函數是一段代碼,只能被定義一次,但可以被執行或調用多次
定義函數定義函數的方式有兩種
/* * 字面量/直接量方式 * var 函數名稱=function(){ * 函數體 * }//定義函數時,函數體內容不會被執行 * */ /* var name =function () { console.log("這是一個函數") }; fun();//調用函數,才能執行函數體內容*/ /* * 函數聲明方式 * function 函數名稱(){ * 函數體 * } */ function fun(){ console.log("這是一個函數") }函數的參數
/* 定義函數 function 函數名稱(形參){ 函數體 } * 定義函數時的參數是形參 * 形參類似于一個變量 * 形參默認為未定義任何指時->undefined *///形參允許定義多個,使用逗號分開 function fun(a,b,c) {//在函數中定義一個變量,但未初始化值 console.log(a+b,c) } /* * 調用函數 * 函數名稱(實參) * 函數的調用->實參(值)*/ fun(23,100);//為函數中定義的變量初始化值 /* 形參與實參 * 形參的個數與實參可以是一致的 * 形參的個數多于實參的個數 -> 多余的形參沒有值(默認為 undefined) * 實參的個數多余形參的個數 -> 多余的實參沒有對應的形參 * 形參與實參根據占位符進行一一對應 */return語句
函數可以包含一個返回語句(return),這不是必須的,return使函數可以作為一個值使用
/* 函數的return語句 * 并不是必要的 * 作用:作為函數的返回值 * 用法:一般在函數的最后面,但并不強制 * */ function fun(){ console.log("這是一個函數"); return 23; } fun();//這是一個函數 console.log(fun());//這是一個函數/23 console.log(fun);//[Function:fun] /* return語句 * 可以吧在函數的最后面 * 但return之后的代碼不會再執行 * 當return并未設置值時,結果為undefined*/ function fn(){ console.log("這是return語句之前..."); return; console.log("這是return語句之后..."); } var result = fn(); console.log(result);//這是return語句之前.../undefined預定義函數
JavaScript預定義了一組函數,又稱為全局函數,可以直接使用
eval()函數eval()函數用于執行以字符串形式(Sting)出現的JavaScript代碼。
// 定義一個字符串 - 文本內容是JavaScript代碼 var str = "console.log("測試...")"; // console.log(str); /* eval()函數 * 作用 - 將一個字符串類型的JavaScript代碼轉換為真正的JavaScript代碼,并且執行 * 問題 - 安全問題 */ eval(str);//測試作用域
變量與函數都有作用域。作用域就是變量和函數可以被訪問的范圍,可以分為全局作用域和函數作用域(局部作用域)。
定義在全局作用域,可以在任何位置訪問,局部作用域只能在指定函數內部訪問
/* 全局作用域(函數作用域之外的范圍)-全局變量 全局變量的作用域->全局作用域+函數作用域 * */ var v1 = 23; console.log(v1); function fun() { /* 函數作用域-局部變量 * 局部變量的作用域-當前函數內部 * */ var v2 = 100 console.log(v1) console.log(v2) } fun();//23/100 //全局作用域不能訪問局部作用域 console.log(v2);//v2 is not defined聲明提前
可以先引用變量再聲明變量,因為變量的聲明會被默認在函數和語句之前,相當于先聲明了一個變量但為初始化值,輸出為undefinef
console.log(v1);//undefined var v1 = 100; console.log(v1);//100按值傳遞
按值傳遞就是講實參變量復制一份傳遞給形參變量,實參不變
/*定義一個全局變量*/ var v1 = 23; /*定義一個函數*/ function fun(v1){ v1++; console.log(v1)//24 } /*調用指定函數,實參傳遞的是全局變量的值*/ fun(v1);//24 /*調用指定全局變量*/ console.log(v1);//23
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/96892.html
摘要:作用域作用域是指程序源代碼中定義變量的區域。采用詞法作用域,也就是靜態作用域。而與詞法作用域相對的是動態作用域,函數的作用域是在函數調用的時候才決定的。前面我們已經說了,采用的是靜態作用域,所以這個例子的結果是。 JavaScript深入系列的第二篇,JavaScript采用詞法作用域,什么語言采用了動態作用域?兩者的區別又是什么?還有一個略難的思考題,快來看看吧。 作用域 作用域是指...
摘要:也毫不例外,但在中作用域的特性與其他高級語言稍有不同,這是很多學習者久久難以理清的一個核心知識點。主要使用的是函數作用域。 關于作用域:About Scope 作用域是程序設計里的基礎特性,是作用域使得程序運行時可以使用變量存儲值、記錄和改變程序的狀態。JavaScript 也毫不例外,但在 JavaScript 中作用域的特性與其他高級語言稍有不同,這是很多學習者久久難以理清的一個核...
摘要:在中的應用采用詞法作用域,也就是靜態作用域。那什么又是詞法作用域或者靜態作用域呢請繼續往下看靜態作用域與動態作用域因為采用的是詞法作用域函數的作用域在函數定義的時候就決定了。 開篇 當我們在開始學習任何一門語言的時候,都會接觸到變量的概念,變量的出現其實是為了解決一個問題,為的是存儲某些值,進而,存儲某些值的目的是為了在之后對這個值進行訪問或者修改,正是這種存儲和訪問變量的能力將狀態給...
摘要:講作用域鏈首先要從作用域講起,下面是百度百科里對作用域的定義作用域在許多程序設計語言中非常重要。原文出處談談語法里一些難點問題二 3) 作用域鏈相關的問題 作用域鏈是javascript語言里非常紅的概念,很多學習和使用javascript語言的程序員都知道作用域鏈是理解javascript里很重要的一些概念的關鍵,這些概念包括this指針,閉包等等,它非常紅的另一個重要原因就...
摘要:依然持有對該作用域的引用,而這個引用就叫作閉包。循環和閉包正常情況下,我們對這段代碼行為的預期是分別輸出數字,每秒一次,每次一個。 一、作用域 作用域共有兩種主要的工作模型:第一種是最為普遍的,被大多數編程語言所采用的詞法作用域,另外一種叫作動態作用域; JavaScript所采用的作用域模式是詞法作用域。 1.詞法作用域 詞法作用域意味著作用域是由書寫代碼時函數聲明的位置來決定...
閱讀 2865·2021-09-27 13:35
閱讀 631·2021-09-23 11:22
閱讀 2902·2019-08-30 15:54
閱讀 1616·2019-08-29 16:27
閱讀 2475·2019-08-29 15:05
閱讀 2359·2019-08-23 18:11
閱讀 3529·2019-08-23 16:32
閱讀 2949·2019-08-23 14:56