07_JS函數

JS函數

函數聲明

  • 使用構造函數
var fun = new Function();
  • 使用關鍵字
function 函數名(形參){// 函數體
}
  • 匿名函數
var fun1 = function(){name = "fun1"
}

函數參數

實參,形參都可以是任意數據類型,瀏覽器執行時不會檢查實參類型和數量,在函數內部做運算時會做強制類型轉換,多的參數會被舍棄,少的會被填充為Underfind

  • this:指向函數運行的上下文對象,根據函數被調用的方式不同,this指向的對象也不一樣
函數的調用方式this指針的指向
以函數的形式調用window
以方法的形式調用指向調用方法的對象
以構造函數的形式調用指向最新創建的對象
call()和apply()指向指定的對象
function fun1(){console.log(this);
}// 以函數打方式調用
fun1();// 以方法的形式調用
var obj = {name : "obj",fun : function(){console.log(this);},
}// 以apply或call的方式調用
var obj2 = {name : "obj2"
}obj.fun();fun1.apply(obj2);
  • argnment 同this一樣,瀏覽器默認傳入的隱藏參數,是保存實參的一個類數組對象,用來分裝實參,其中有一個callee屬性,對應正在執行的函數對象。

作用域

  • 全局作用域

    • 在函數外部定義的變量就是全局變量,全局變量會作為瀏覽器窗口window對象的屬性保存
    • 在全局作用域創建的函數會作為 window對象 的方法保存
    • window對象由瀏覽器自動創建
    • 生命周期:網頁打開時創建,關閉時銷毀
    • 盡量不要在全局作用域定義變量,會污染命名空間
  • 函數(局部)作用域

    • 在函數內部定義的變量(屬性)和函數(方法)只能在函數內部使用,全局無法使用
    • 生命周期:函數執行時創建,執行結束時銷毀
    • 使用 window.變量名 訪問全局變量。
    • 在函數中,不使用 var 定義的變量會成為全局變量
    • 變量的使用遵循就近原則
  • 函數的申明提前:使用關鍵字定義的函數會在整個程序執行之前預先執行,因此可以在函數聲明之前調用函數

返回值

使用return返回,無返回值或返回空時(只寫一個return)返回Underfind

  • return會結束整個函數

立即執行函數

函數內建方法

call()和apply()

  • 調用這兩個方法時,函數都會執行
  • 可以指定一個對象作為函數的第一個參數(this)這個對象會成為函數的this,用來修改函數的上下文對象
  • 如果需要傳遞參數
    • call:需要將所有要傳遞的參數封裝到數組中,也就是call只接受兩個參數,第一個是一個對象,第二個是參數數組
    • apply:可以直接跟在對象后面傳遞,不限制參數個數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457654.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457654.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457654.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cocoapods的安裝(這真是一個神奇的東西,每次安裝的方法都不一樣,而且很容易出現各種各樣的錯誤)...

文章開始之前,建議安裝一個顯示網速的插件,不然你不知道到底有沒有下載,也讓生活有一點盼頭 1.因為眾所周知的原因(我dang的行為真的是讓人失望),先更換一下ruby鏡像源 $ gem sources --remove https://rub…

轉】MyEclipse使用總結——在MyEclipse中設置jsp頁面為默認utf-8編碼

原博文出自于:http://www.cnblogs.com/xdp-gacl/p/3496161.html        感謝! 在MyEclispe中創建Jsp頁面,Jsp頁面的默認編碼是“ISO-8859-1”,如下圖所示: 在這種編碼下編寫中文是沒有辦法保存Jsp頁面的&#…

sum怎么用python_python sum()函數和.sum(axis=0)函數的使用

參考:《Machine Learning in Action》第二章#####################################################################sum函數:sum()函數是內建函數help(sum)函數功能:返回一個數字序列(非字符串)的和,并加上參數start的值(默認為…

08_JS工廠方法和構造函數

工廠方法和構造函數 工廠方法 工廠方法用來批量產生對象 function CreatCar(name,prase){// new 一個對象var obj new Object();obj.name name;obj.parse prase;obj.print function(){console.log(this.name " : " this.parse)};// 返回對象return obj; };va…

華為機試題【10】-求數字基root

題目描述: 求整數的Root:給定正整數,求每位數字之和;如果和不是一位數,則重復; 輸入:輸入任意一個或多個整數 輸出:輸出各位數字之和,直到和為個位數為止(輸入異常,則返回-1),多行,每行對應一個輸入數據的結果。 樣例…

國內開源鏡像站

搜狐開源鏡像站:http://mirrors.sohu.com/ 網易開源鏡像站:http://mirrors.163.com/開源中國:http://mirrors.oschina.net/首都在線科技股份有限公司:http://mirrors.yun-idc.com/阿里云開源鏡像:http://mirrors.aliyu…

python update skeleton 不自動_python編程筆記(1)-數據類型

斷斷續續學了一些,但是后邊一直沒有使用,就又忘記了。為了縮短學習周期,這次學習的方法:先學主要框架(數據類型、條件、循環、函數、類、numpy、pandas、sklearn),后期直接看朋友code 實操了&am…

09_JS原型對象

原型對象 在構造函數中,同一類相同的方法可以直接寫在構造函數里,但這樣每實例化一個對象都會產生一個新的該方法,但其實這個方法都是一樣的,這樣會浪費大量空間,另外,可以將相同的方法寫在構造函數外&…

[改善Java代碼]非穩定排序推薦使用List

我們知道Set與List的最大區別就是Set中的元素不可以重復(這個重復指的equals方法的返回值相等),其他方面則沒有太大的區別了,在Set的實現類中有一個比較常用的類需要了解一下:TreeSet,該類實現了類默認排序…

如何訪問另一臺電腦的共享文件夾_如何遠程控制另一臺電腦

在工作中,我們時常需要遠程控制一下另一臺電腦,如果這兩臺計算機在局域網內可以通過遠程桌面輕松實現,如果這兩臺計算機不在局域網內則通常需要借助第三方軟件來實現。遠程桌面使用分三步:1、被控制端要開啟遠程桌面功能&#xff…

10_JS數組

JS 數組 以索引為鍵的對象&#xff0c;性能高于對象 創建 new Array() var arr Array() for(var i 0;i<5;i){arr[i] i; };var arr Array(1,2,3,4,5,6)數組字面量 var arr [2,3,4,5,6,7,8];不同&#xff1a;傳入一個整數時&#xff0c;new把這個數當作數組長度&…

微軟Hololens學院教程- Holograms 101: Introduction with Device【微軟教程已經更新,本文是老版本】...

這是老版本的教程&#xff0c;為了不耽誤大家的時間&#xff0c;請直接看原文&#xff0c;本文僅供參考哦&#xff01;原文鏈接&#xff1a;https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/holograms_101 這篇文章將通過一個完整的實例來了解設備的核心特性&#…

python seaborn boxplot_python - 如何將文本框添加到Seaborn Boxplot? - 堆棧內存溢出

我試圖在框圖中插入一個文本框&#xff0c;但是出了點問題。 讓我們先繪制箱線圖&#xff1a;import pandas as pdimport matplotlib.pyplot as pltimport seaborn as sbdf_data pd.read_hdf(data.h5, keyfdf_data)##print(df_data)fig, (ax1, ax2) plt.subplots(1,2,gridspe…

JS_11正則表達式和字符串方法

正則表達式和字符串方法 正則表達式 創建正則對象 構造函數字面量 匹配模式 i&#xff1a;忽略大小寫m&#xff1a;多行匹配g&#xff1a;全局匹配 正則語法 正則作用/a/檢查是否有a/a|b/檢查是否有a或b{}量詞&#xff0c;如{1,3}匹配1到3次&#xff0c;{m,}匹配m次以上…

qtableview點擊行將整行數據傳過去_可以實時獲取數據的Database Asset插件

前言&#xff1a;Goby之前開放的插件入口點較少&#xff0c;大家只能在掃描前、掃描后執行事件&#xff0c;無法參與掃描過程中來。為實現更多場景的應用及提高掃描效率&#xff08;如&#xff1a;后臺爆破子域名等&#xff09;&#xff0c;Goby開放了一些新的API&#xff1a;事…

git 筆記

版本庫1.repository在一個合適的地方&#xff0c;創建一個空目錄$ mkdir learngit$ cd learngit$ pwd/User/leon/learngitpwd命令用于顯示當前的目錄&#xff0c;在我的電腦上&#xff0c;這個倉庫位于/user/michael/learngit2.git init 將當前目錄變成git 可以管理的倉庫。$ g…

github 開源 代碼 學習 集合(轉載)

一個支持多種item類型的recycleView依賴注入庫 1.通過注解的方式方便的把ViewHolder注入到recycleView中。 2.去除findViewByID等冗余操作。 3.去除編寫adapter那些冗余邏輯&#xff0c;只需要編寫proxy和holder即可快速的實現淘寶首頁那樣復雜的頁面。https://github.com/s94…

JS_12 DOM

DOM 操作 HTML DOM Document Object Model&#xff0c;文檔對象模型&#xff0c;用js操作文檔對象 [外鏈圖片轉存失敗(img-Dygj4uK9-1562680086020)(image/domtree.gif)] 節點&#xff1a;構成網頁最基本的部分&#xff0c;網頁的每一部分都是一個節點 文檔節點&#xff1a;…

星星排序python_python中怎么實現星星排列

python中怎么實現星星排列&#xff1f;下面給大家帶來幾種排列陣型。星星陣型1def stars1(n):for i in range(1,n1):str "*"*iprint strif __name__ "__main__":stars1(5)星星陣型2def stars2(n):for i in range(1,n1):str **(n1-i)print strif __name_…

Kendo UI開發教程:Kendo UI模板概述

2019獨角獸企業重金招聘Python工程師標準>>> Kendo UI框架提供了一個易用&#xff0c;高性能的JavaScript模板引擎。通過模板可以創建一個HTML片段然后可以和JavaScript數據合并成最終的HTML元素。Kendo 模板側重于UI顯示&#xff0c;支持關鍵的模板功能&#xff0c…