JavaScript预解析,对象,错误

本文深入探讨JavaScript的预解析机制,包括函数提升、变量提升和函数同名覆盖。同时,文章详细阐述了作用域的概念,如全局作用域、局部作用域以及隐式全局变量。此外,还介绍了对象在JavaScript中的重要性,包括对象创建方式和属性、方法的使用。最后,讨论了错误处理,如try-catch-finally语句和自定义错误。
摘要由CSDN通过智能技术生成

1,函数其他

1、函数的命名

规则

1.由字母、数字、下划线、$符号组成,不能以数字开头
    2.不能是关键字和保留字,例如:for,while,this, name
    3.区分大小写
规范
    1.函数名必须有意义
    2.遵守驼峰命名法
    3.建议不要用$作为函数名

2、函数的覆盖问题

如果两个函数都是函数的声明,且函数名相同,那么后边的函数会覆盖前边的

function fn1() {

    console.log("函数声明");

  }

  function fn1() {

    console.log("我是第二个fn1");

  }

fn1();//我是第二个fn1

如果两个函数都是函数表达式,且函数名相同,函数的调用会调用最近的一个

  var fn2 = function () {

    console.log("第一个函数表达式fn2");

  } 

  fn2();//第一个函数表达式fn2

var fn2 = function () {

    console.log("我是第二个fn2表达式");

  }

3、函数的内置对象

JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此也可以进行遍历。

arguments数组中前几个元素是函数的参数

callee属性:函数的本身

callee.name:函数的名字

length属性:实参的个数

callee.length:形参的个数

4、匿名函数

匿名函数:没有名字的函数

匿名函数如何使用?

匿名函数不能通过直接调用来执行,因此可以通过匿名函数的自调用的方式来执行

(function () {
   alert(123);
  })();

5、函数是一种数据类型

函数是引用数据类型

<script>

//1.可以typeof一下

function run(){

}

console.log(typeof run)//function

6、函数作为参数

因为函数也是一种类型,可以把函数作为参数传入

function fnNum1(x) {

    console.log(x);

    x();

  }

 fnNum1(function () { console.log("函数作为参数传入") });

因为函数是一种类型,可以把函数作为参数反出

 function fnNum2(x) {

    return x

  }

  // var num1 = fnNum2(120);

  var num1 = fnNum2(function () { console.log("函数作为参数反出") });

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值