javascript
JavaScript(三)——函数、变量作用域、方法
文章目錄
- 1. 函數
- 2. 變量的作用域
- 3. 方法
- 4. 內部對象
- 4.1 Date
- 4.2 JSON
- 4.3 Ajax
1. 函數
在JavaScript中,函數即對象,可以隨意地被程序操控,函數可以嵌套在其他函數中定義,這樣可以訪問它們被定義時所處的作用域中的任何變量。
(1)定義方式一(以絕對值函數abs()為例)
(2)定義方式二
function(x){…}這是一個匿名函數,但是可以把結果賦值給abs,通過abs就可以調用函數,方式一與方式二等價
(3)調用函數
在調用函數時,可以向其傳遞值,這些值被稱為參數。javaScript 可以傳任意個參數,也可以不傳遞參數。
判斷傳遞進來的參數是否存在問題,若存在問題,則手動拋出異常。
(4)arguments
arguments是一個JS免費贈送的關鍵字;代表傳遞進來的所有的參數,是一個數組!
問題: arguments 包含所有的參數,我們有時候想使用多余的參數來進行附加操作。需要排除已有參數~
(5)rest
ES6 引入的新特性,獲取除了已經定義的參數之外的所有參數。
rest 參數只能寫在最后面,且必須用… 標識
2. 變量的作用域
- 在javascript中, var 定義變量實際是有作用域的,作用域可訪問變量,對象,函數的集合。
- 在函數之外聲明的變量,叫做全局變量,因為它可被當前文檔中的任何其他代碼所訪問。在函數內部聲明的變量,叫做局部變量,因為它只能在當前函數的內部訪問。
(1)在函數體中聲明,則在函數體外不可以使用 (非要想實現的話,后面可以研究一下閉包 )
(2)如果有兩個函數使用了相同的變量名,只要在函數內部就不沖突
(3)內部函數可以訪問外部函數的成員,反之則不行
(4)內部函數變量和外部函數的變量重名,由“內”向“外”查找
說明:在JavaScript 中 函數查找變量從自身函數開始,由 ‘’內‘’ 向 ‘’外‘’ 查找 。假設外部存在這個同名的函數變量,則內部函數會屏蔽外部函數的變量。
(5)提升變量的作用域
-
先使用變量稍后再聲明變量而不會引發異常,稱為提升變量
說明:JavaScript 變量感覺上是被“提升”或移到了函數或語句的最前面。但是,提升后的變量將返回 undefined 值,即不會提升變量y的賦值。 -
規范操作
所有的變量定義都放在函數的頭部,不要亂放,便于代碼維護。
(6)全局函數
-
全局變量
(7) 全局對象 window
alert() 這個函數本身也是一個 window 變量
Javascript 實際上只有一個全局作用域, 任何變量(函數也可以視為變量),假設沒有在函數作用范圍內找到,就會向外查找,如果在全局作用域都沒有找到,報錯 RefrenceError -
規范
由于我們所有的全局變量都會綁定到我們的 window 上。如果不同的js 文件,使用了相同的全局變量,就會發生沖突。
解決辦法:把自己的代碼全部放入自己定義的唯一空間名字中, 降低全局命名沖突的問題。jQuery
(8)局部作用域:let
可以看到由 var 定義局部變量后,控制臺從輸出了11這個數,說明執行了console.log(i+1)語句, i 出了這個作用域還可以使用。這是不規范的!
ES6 引入let 關鍵字,解決局部作用域沖突問題
建議大家都是用 let 去定義局部作用域的變量
(9)常量 const
在ES6 之前,怎么定義常量:只有用全部大寫字母命名的變量就是常量;建議不要修改這樣的值
在 ES6 引入了常量關鍵字 const
3. 方法
(1)定義方法
方法就是把函數放在對象的里面,對象只有兩個東西 : 屬性和方法
this 是無法指向的,是默認指向調用它的那個對象
(2)apply 在js 中可以控制 this 指向
4. 內部對象
標準對象
4.1 Date
日期對象用于處理日期和時間
控制臺輸出
轉換
控制臺輸出
4.2 JSON
早期,所有數據傳輸習慣使用 XML 文件
- JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。
- 簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。
- 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。
- 在JavaScript 一切皆為對象、任何js 支持的類型都可以用JSON來表示;number,string…
格式:
- 對象都用 {}
- 數組都用 []
- 所有的鍵值對 都是用 key:value
JSON字符串 和 JS對象的轉化
- JSON.stringify( ); JS對象轉化為JSON字符串
- JSON.parse( ); JSON字符串轉化為JS對象
JSON 和 JS 對象的區別
var obj = {a: ‘hello’,b:‘hellob’}; JS對象
var json = {“a”: “hello”,“b”:“hellob”}; JSON字符串,鍵必須加“ ”
4.3 Ajax
- AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。
- AJAX 不是新的編程語言,而是一種使用現有標準的新方法。
- AJAX 最大的優點是在不重新加載整個頁面的情況下,可以與服務器交換數據并更新部分網頁內容。
- AJAX 不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執行
- 原生的js寫法 xhr 異步請求
- jQuey 封裝好的方法 $(”#name“).ajax(“”)
- axios 請求
總結
以上是生活随笔為你收集整理的JavaScript(三)——函数、变量作用域、方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript(二)——数据类型、
- 下一篇: gradle idea java ssm