JavaScript笔记

来源:互联网 发布:mac连接打印机 编辑:程序博客网 时间:2024/06/10 02:18

JavaScript函数注意事项1


  • JS函数可以传入任意个参数而不影响调用,传入参数少也没有问题,一般会返回NaN。
  • 在进行传入参数的判断的时候可以借助arguments来进行判断。
    例如:
function foo(x) {    alert(x); // 10    for (var i=0; i<arguments.length; i++) {        alert(arguments[i]); // 10, 20, 30    }}foo(10, 20, 30);

在实际应用中arguments经常用于判断参数的个数。

  • rest参数可以取得和arguments相类似的效果。
function foo(a, b, ...rest) {    console.log('a = ' + a);    console.log('b = ' + b);    console.log(rest);}

rest参数只能写在最后,前面用…标识,从运行结果可知,传入的参数先绑定a、b,多余的参数以数组形式交给变量rest,所以,不再需要arguments我们就获取了全部参数。

  • 全局作用域:不在任何函数内定义的变量具有全局作用域,除了自身的变量访问也可以用window.*形式访问,JS默认的全局作用域对象为window。
 'use strict';function foo() {    alert('foo');}foo(); // 直接调用foo()window.foo(); // 通过window.foo()调用

为了避免这种情况出现,一般都会利用名字空间

var MySpace = {};//其他变量MySpace.age = function(){    return 18;}
  • 和C++不同的是在for循环等语句块中是无法定义具有局部作用域的变量。
 'use strict';function foo() {    for (var i=0; i<100; i++) {        //    }    i += 100; // 仍然可以引用变量i}

为了解决块级作用域,ES6引入了新的关键字let,用let替代var可以申明一个块级作用域的变量:

'use strict';function foo() {    var sum = 0;    for (let i=0; i<100; i++) {        sum += i;    }    i += 1; // SyntaxError}

0 0
原创粉丝点击