1. 程式人生 > >js、函式的分類、物件、arguments、函式引數

js、函式的分類、物件、arguments、函式引數

一般把script標籤內的js程式碼,放到body結束標籤的前面。

函式

function 函式名(引數名){ 要執行的程式碼 }

//聲名函式, 函式只有在呼叫時才會被執行
function fin(){
    alert("胖胖");
}

//呼叫函式,這個函式名後的小括號就是呼叫函式的意思
alert(fin);   //列印整個函式
fin();    //呼叫函式

//函式的小括號中可以有引數
// 引數可以分為兩種:形參 與 實參
function show(str1,str2){    //str1 ,str2就是形參
    alert(str1);      //列印 胖胖
    alert(str2);      //列印 一點也不胖
alert(str1+str2); } show("胖胖","一點也不胖"); //呼叫時傳的參就叫實參 //可以定義一個函式,然後把它做為一個值賦值一個變數; var fin = function(){ alert("胖胖"); }; alert(fin); fin(); //一樣可以傳參 var fin = function(num1,num2){ var sum = num1 + num2; alert(sum); }; fin(1,3);

return的使用

//return的第一個作用,可以返回函式的值;
function show(num1,num2)
{
var sum = num1+num2; return sum; //在這裡把sum給返回出來; } alert( show(3,9) ); //函式執行完成之後,這裡會得到函式返回的值; var num = show(3,9); alert(num); //return的第二個作用,可以終止函式的執行; function fin(){ for(var i = 0; i < 5; i++){ alert("i的值:"+i); break; } alert("11111"); return "OK"; //這裡執行完return後,下面兩句程式碼不會執行;
alert("22222"); alert("33333"); } fin(); alert(fin()); function fin(){ alert("胖胖"); return undefined; //函式在最後面都會有一個預設的返回值,這個值就是undefined; } alert( fin() ); //這裡會列印一個undeinfed;

arguments

//arguments 物件的作用:相當一個容器,傳進來的實參都會儲存到這個物件中來,沒有定義形參時也是一樣;
//每一個函式都有這個物件
function show(){
    // alert(arguments);
    alert(arguments.length);
    alert(arguments[0]);
    alert(arguments[1]);
}
show(1,5);

函式的型別

function show(){}

alert(typeof show);   //列印是一個function;

物件

//物件的第一種建立方法,可以通過物件直接量建立;
var obj = {
   "name":"小明",//這裡必須是雙引號,單引號不行。
   "age":25,
   "sex":"男",
   count:function(){
       var sum = 0;
       for(var i = 0; i < arguments.length; i++){
           sum += arguments[i];
       }
       alert(sum);
   },
   clothing:{
       color:"red",
       width:"100",
       height:"100"
   }
};
alert( obj.age );
alert( obj.name );
alert( obj["name"] );   //獲取屬性值的第二種方法
alert( obj.count(1,5) );

alert(obj.clothing.color);
alert(obj.color);    //obj這個物件上沒有color這個屬性,但是訪問這個屬性時也不會報錯。而是返回undefined;


//修改物件的屬性值;
obj.age = 21;
alert(obj["age"]);


//新增;
obj.abc = 312;
alert(obj["abc"]);

//刪除屬性;
delete obj.abc;
alert(obj["abc"]);

函式的分類和函式引數

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="Keywords" content="關鍵字,關鍵詞">
    <meta name="Description" content="描述和簡介">
    <title>Title</title>
    <style type="text/css">
        *{margin:0;padding:0;}
        body,ul,li,ol,dl,dd,p,h1,h2,h3,h4,h5,h6{ margin:0;}
        a{text-decoration:none;}
        img{border:none;}
        ol,ul{list-style:none;}
    </style>
</head>
<body>
    <!--
        函式的分類
            1: 是否有名字: 有名函式  匿名函式
            2: 能否直接加括號執行: 函式定義   函式表示式
                1: 函式定義 和 函式表示式的區別
                    函式表示式能在大括號後面分號之前加小括號執行,函式定義這樣子做的話是不可以執行的
                    函式表示式加特殊符號可以自執行 + - ~ !
                    函式定義加()處理之後 可以再加括號自執行
        引數:
            1 形參: 形參在小括號當中,命名規則和變數一樣(字母 數字 _ $  不能以數字開頭)
            2 實參: 函式執行時,真實傳入的資料,可以是任意資料型別
            3 引數的個數可以有多個,沒有限制,且實參的個數可以比形參的個數多
                x = 10 , y = 1
                2x + 3x + 4y =
            4 引數的個數不確定的時候,可以用不定參來做 arguments
            5 當引數是有名函式時,名字不能四處加括號執行,也不能在形參函式中加括號執行

定義過程包括: 函式的引數
       定義過程中,形參不僅只是定義,還會和實參進行對應賦值
       形參相當於var了一個變數
-->
    <div id="box"></div>
    <script>
        Fn();
        function Fn(){
            alert(1);
        };

        document.onclick = function (){
            alert(2);
        };


        function Fn(){
            alert(1);
        };
        Fn();

        var An = function (){
            alert(2);
        };
        An();


        Fn();
        function Fn(){
            alert(1);
        };

        //函式定義加()處理之後 可以再加括號自執行
        (function Fn(){
            alert(1);
        })();

        //函式表示式能在大括號後面分號之前加小括號執行
        var An = function (){
            alert(2);
        }();

        +function (){
            alert(3);
        }();
        -function (){
            alert(4);
        }();
        ~function (){
            alert(5);
        }();
        !function (){
            alert(6);
        }();


    Fn(2,3,5,6,7,1,1);//實參
    function Fn(a,b,c,d,e){ //形參
        alert(a+b+c+d+e);
    };
    Fn1(function An(){alert(1);});

    function Fn1(x){
        //alert(x);
        x();
    };
    var a = function b(){
        alert(1);
        //b();
    };
    a();

    sum(function (){alert(1);});
    function sum(x){
        x();
    };


    Fn(1,2,3,4);
    function Fn(a,b,c,d){
        alert(a+b+c+d);
    };

    //不定參求和 arguments
        sum(1,3,7,4,1,1,1,1,1,100,120);
        function sum(){
            var x = 0;//定義一個變數接收和
            //console.log(arguments);
            for(var i = 0; i < arguments.length; i++){
                x += arguments[i];
            };
            console.log(x);
        };
    </script>
</body>
</html>

相關推薦

事件物件arguments事件的相容問題

一、事件物件   1、每個元素身上是天生存在的,不需要我們去定義,只需要我們給這個事件繫結一個方法,當事件觸發的時候,就會執行這個方法   2、事件繫結的方法:     (1)、DOM0級繫結:div . onclick=function()  { }     (2)、DOM2級繫結:div

【小家java】POP(面向過程程式設計)OOP(面向物件程式設計)AOP(面向切面程式設計)三種程式設計思想的區別和聯絡

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

《設計模式》劉偉主編【第23章 面向物件設計原則設計模式概述】

按照面向物件設計原則設計軟體,目標是提高軟體的可維護性和可複用性。而設計模式就是在工程實踐中總結出來的一套符合面向物件設計原則的軟體開發模式。 七大面向物件設計原則 設計原則名稱 設計原則簡介 備註 單一職責原則(Single Responsib

js函式分類物件arguments函式引數

一般把script標籤內的js程式碼,放到body結束標籤的前面。 函式 function 函式名(引數名){ 要執行的程式碼 } //聲名函式, 函式只有在呼叫時才會被執行 fu

JS函式arguments作用域作用域鏈預解析

函式的返回值 返回值語法: //宣告一個帶返回值的函式 function 函式名(形參1, 形參2, 形參…){ //函式體 return 返回值; } //可以通過變數來接收這個返回值 var 變數 = 函式名(實參1, 實參2, 實參3); arguments的使用

秒懂JS物件構造器函式和原型物件之間的關係

一、基本概念   1、物件:屬性和方法的集合,即變數和函式的封裝。每個物件都有一個__proto__屬性,指向這個物件的建構函式的原型物件。   2、構造器函式:用於建立物件的函式,通過new關鍵字生成物件。函式名一般首字母大寫的。   3、原型物件:每個函式都有一個prototype屬性,它是一個指向

先有物件還是先有函式,雞生蛋蛋生雞的問題。有關js裡內建物件Function和Object的思考

js裡建立的函式本身作為一個例項物件都是由內建物件Function作為建構函式創造出來的,所謂var f = funciton(a){b}即等同於f = new Function(a,b)。 同時js裡Object也是一個建構函式,因此他也是Function加工出來的。

js高階建構函式,例項物件和原型物件——prototype__proto__和constructor構造器

一、前言   瞭解JavaScript面向物件,需要先了解三個名詞: 建構函式,例項物件和原型物件。   注意:JavaScript中沒有類(class)的概念,取而代之的是建構函式,兩者類似卻又有很大的差別。   先上程式碼,最常用的: function Person(name, age) {

JavaScript封閉函式常用內建物件js除錯方法

1.封閉函式 封閉函式是JavaScript中匿名函式的另外一種寫法,建立一個一開始就執行而不用命名的函式 /在封閉函式前加’;‘,可以避免js壓縮時出錯/;(function(){ alert('hello world!'); })(); /*當i大於78時等於78,小於時等於89*/ v

JS的Date物件擴充套件幾個好用的prototype函式(加上若干個月等)

幾個經常被用到的函式,又沒用被Date物件定義的,自己定義一下,方便使用: 獲取Date物件的ISO格式的日期部分(去掉時分秒)加減若干天加上若干個月(需要處理進位等若干複雜情況)返回下個月的第一天

JS內建物件函式內建物件宿主物件

一、JS內建物件: Data、Math、Array、String、Number、Boolean、RegExp (1)Data  屬性:  constructor 所建立物件的函式參考  prototype 能夠為物件加入的屬性和方法 方法:  getDay() 返回一

js--獲取/賦值文字值innerText/textContentinnerHTML的區別,獲取表單的值;js事件物件屬性target於currentTarget

  <body> <div id="box_text"> <p style="color:hotpink;">muzidigbig</p> <p style="color:pink">

關於rem換算移動端通過js控制動態控制rem寬高比的一個函式

(function () { // rem換算zx var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; var do

描述下你對js閉包。面向物件繼承的理解

1)閉包理解:   個人理解:閉包就是能夠讀取其他函式內部變數的函式; 使用閉包主要是為了設計私有的方法和變數。閉包的優點是可以避免全域性變數的汙染,缺點是閉包會常駐記憶體,會增大記憶體使用量,使用不當很容易造成記憶體洩露。在js中,函式即閉包,只有函式才會產生作用域的概念 閉包有三

javascript 字串解構陣列解構物件解構函式解構

// 陣列解構 let [a, b, c] = [null, null, null]; // 字串解構 let [x, y, z] = 'vue'; console.log(`x: ${x},y: ${y}, z: ${z}`); // 物件解構 對k

python之函式閉包可迭代物件和迭代器

一、函式名的應用   # 1,函式名就是函式的記憶體地址,而函式名()則是執行這個函式。 def func(): return print(func) # 返回一個地址 # 2,函式名可以作為變數。 def func1():

Hive函式分類CLI命令簡單函式聚合函式集合函式特殊函式(分析函式視窗函式混合函式,UDTF),常用函式Demo

1.1 Hive函式分類 1.2  Hive  CLI命令 顯示當前會話有多少函式可用 show  functions; 顯示函式的描述資訊: DESC  FUNCTION  concat; 顯示函式的擴充套

js遍歷物件遍歷陣列js陣列方法大全區分map()和forEach()以及filter()區分for...in...和for...of...

1、給物件新增屬性:使用 object.prop 或object['prop']  給物件新增屬性 let obj={}; obj.name="zhangsan"; obj["age"]=23; obj["class"]="語文"; console.log(obj

js 繼承(一)之原型鏈借用建構函式組合繼承

前言 … Just we 原型鏈 基本思想利用原型讓一個引用型別繼承另一個引用型別的屬性和方法 function Father() { this.last_name = '張' } Father.prototype.sayLast_Name = fu

js函式的三種定義方式函式宣告函式同名重複函式刪除

全棧工程師開發手冊 (作者:欒鵬) 在js中,函式本身屬於物件的一種,因此可以定義、賦值,作為物件的屬性或者成為其他函式的引數。函式名只是函式這個物件類的引用。 一、函式定義 【1】函式宣告語句 使用function關鍵字,後跟一組引數以及函