2015-06-07 13 views
5

tôi có một hàm được định nghĩa với tham số trong javascript và tôi không biết cách khởi tạo tham số của nó, bất kỳ ai giúp tôi. mã là dướicách khởi tạo tham số trong hàm javascript khi tôi xác định hàm

<br/>Enter a number: 
<input type="text" id="txt1" name="text1"> 
<p>Click the button to see the result</p> 
<button onclick="myFunction(5)">show result</button> 
<br/> 
<p id="demo"></p> 
<script> 
    function myFunction(param) { 
    alert(param); 
    var z = param; 
    var y = document.getElementById("txt1").value; 
    var x = +y + +z; 
    document.getElementById("demo").innerHTML = x; 
    } 
</script> 

vấn đề mà tôi có là: nếu tôi gửi một cuộc tranh cãi với chức năng như <button onclick="myFunction(5)">show result</button> nó hoạt động, nhưng nếu tôi không gửi bất kỳ lý lẽ nó không phải đang làm việc và kết quả là NaN. bây giờ tôi muốn biết làm thế nào tôi có thể khởi tạo tham số wen i xác định chức năng? như chúng tôi có trong php function myFunction(param=0)

+0

thể trùng lặp của [Đặt một giá trị tham số mặc định cho hàm JavaScript] (http://stackoverflow.com/questions/894860/set-a-default-parameter-value-for-a-javascript-function) –

Trả lời

5

Sử dụng param = param || 0; như

function myFunction(param) { 
    param = param || 0; 
    console.log(param); 
    var z = param; 
    var y = document.getElementById("txt1").value; 
    var x = +y + +z; 
    document.getElementById("demo").innerHTML = x; 
    } 

Những tuyên bố trên được câu nói thiết param-param nếu nó không phải là falsey (undefined, null, false), nếu không đặt nó vào 0.

2

bạn sẽ phải làm điều đó như thế này:

function foo(a, b) 
{ 
    a = typeof a !== 'undefined' ? a : 42; 
    ... 
} 
4

bất cứ khi nào bạn không khởi tạo một giá trị cho một tham số javascript sẽ xem xét nó như là không xác định, vì vậy bạn có thể gặt hái những lợi ích của vấn đề này và làm điều đó như:

function myFunction(param) 
    { 

     param = typeof param !== 'undefined' ? param : 0; 

    } 

hy vọng nó sẽ hữu ích.

1

Tất cả các câu trả lời cho đến nay kiểm tra giá trị param để xác định xem giá trị đã được đặt hay chưa. Trong hầu hết các trường hợp hoạt động tốt, nhưng nó không bao gồm các trường hợp mà bạn thực sự muốn vượt qua undefined đến myFunction. Đặc biệt là mô hình thường được sử dụng param = param || 0 sẽ thiết lập param-0 cho tất cả các giá trị falsy (0, false, "", null, undefined) mà bạn vượt qua các chức năng. Vì vậy, nếu bạn cần để trang trải những trường hợp như tốt và nếu bạn muốn bắt chước hành vi của các ngôn ngữ khác càng gần càng tốt, bạn cần phải kiểm tra arguments nếu param đã thực sự thiết lập:

function myFunction(param) { 
    if (arguments.length === 0) { 
     param = 0; 
    } 
    console.log(param); 
} 

myFunction(0); //0 
myFunction(1); //1 
myFunction(""); //"" 
myFunction(null); //null 
myFunction(undefined); //undefined 
myFunction(false); //false 
myFunction(); //0 
+0

basilikum tuyệt vời. nó hoạt động tuyệt vời –

Các vấn đề liên quan