JavaScript小白教程4

Posted jiatianyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript小白教程4相关的知识,希望对你有一定的参考价值。

javascript 函数定义


JavaScript 使用关键字 function 定义函数。

函数可以通过声明定义,也可以是一个表达式。

函数表达式

<body>

<p>函数存储在变量后,变量可作为函数使用:</p>
<p id="demo"></p>
<p id="demo1"></p>
<script>
var x = function (a, b) return a * b;
document.getElementById("demo").innerhtml = x;
document.getElementById("demo1").innerHTML = x(4, 3);
</script>

</body>

输出结果:

函数存储在变量后,变量可作为函数使用:

function (a, b) return a * b

12

Function() 构造函数

<body>

<p id="demo"></p>
<script>
var myFunction = function (a, b) return a * b
document.getElementById("demo").innerHTML = myFunction(4, 3);
</script>
    
<p id="demo1"></p>
<script>
var myFunction = new Function("a", "b", "return a * b");
document.getElementById("demo1").innerHTML = myFunction(4, 3);
</script>

</body>

输出结果:

12

12

自调用函数

<body>

<p>函数可以自动调用:</p>
<p id="demo"></p>
<script>
(function () 
    document.getElementById("demo").innerHTML = "Hello! 我是自己调用的";
)();
</script>

</body>

输出结果:

函数可以自动调用:

Hello! 我是自己调用的

函数是对象

<body>

<p> toString() 将函数作为一个字符串返回:</p>
<p id="demo"></p>
<script>
function myFunction(a, b) 
    return a * b;

document.getElementById("demo").innerHTML = myFunction.toString();
</script>
    
</br>
    
<p> arguments.length 属性返回函数接收到参数的个数:</p>
<p id="demo1"></p>
<script>
function myFunction(a, b) 
    return arguments.length;

document.getElementById("demo1").innerHTML = myFunction(4, 3);
</script>

</body>

输出结果:

toString() 将函数作为一个字符串返回:

function myFunction(a, b) return a * b;

 

arguments.length 属性返回函数接收到参数的个数:

2

箭头函数

ES6 新增了箭头函数。

箭头函数表达式的语法比普通函数表达式更简洁。

<body>

<h2>JavaScript 箭头函数</h2>

<p>IE11 及更早 IE 版本不支持箭头函数。</p>

<p id="demo"></p>

<script>
const x = (x, y) =>  return x * y ;
document.getElementById("demo").innerHTML = x(5, 5);
</script>


</body>

输出结果:

JavaScript 箭头函数

IE11 及更早 IE 版本不支持箭头函数。

25

JavaScript函数传参

<body>

<p>查找最大的数。</p>
<p id="demo"></p>
<script>
function findMax() 
    var i, max = arguments[0];
    
    if(arguments.length < 2) return max;
 
    for (i = 0; i < arguments.length; i++) 
        if (arguments[i] > max) 
            max = arguments[i];
        
    
    return max;

x = findMax(1, 123, 500, 115, 44, 88);
document.getElementById("demo").innerHTML = x;
</script>

</body>

输出结果:

查找最大的数。

500

使用构造函数调用函数

<body>

<p>该实例中, myFunction 是函数构造函数:</p>
<p id="demo"></p>
<script>
function myFunction(arg1, arg2) 
    this.firstName = arg1;
    this.lastName  = arg2;

var x = new myFunction("John","Doe")
document.getElementById("demo").innerHTML = x.firstName; 
</script>

</body>

输出结果:

该实例中, myFunction 是函数构造函数:

John

传入数组

<body>

<p id="demo"></p>

<script>
var myObject, myArray;
function myFunction(a, b) 
    return a * b;

myArray = [10, 2]
myObject = myFunction.apply(myObject, myArray);      // 返回 20
document.getElementById("demo").innerHTML = myObject; 
</script>

</body>

输出结果:

20

JavaScript闭包

<body>

<p>局部变量计数。</p>
<button type="button" onclick="myFunction()">计数!</button>
<p id="demo">0</p>
<script>
var add = (function () 
    var counter = 0;
    return function () return counter += 1;
)();
function myFunction()
    document.getElementById("demo").innerHTML = add();

</script>

</body>
<body>

<p>局部变量计数。</p>
<button type="button" onclick="myFunction()">计数!</button>
<p id="demo">0</p>
<script>
function add() 
    var counter = 0;
    return counter += 1;

function myFunction()
    document.getElementById("demo").innerHTML = add();

</script>

</body>

这两段代码执行的结果不一样,一个可以加一个只能加到1不变

 

以上是关于JavaScript小白教程4的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript常用事件集合,前端小白必备(写的很详细,建议收藏)

JavaScript常用事件集合,前端小白必备(写的很详细,建议收藏)

JavaScript小白教程5DOM

JavaScript小白教程7浏览器对象模型 BOM

简单的 Javascript http 请求片段但不起作用

教程4 - 验证和权限