#javascript#javascript学习

对函数中参数的理解

在函数体内部可以通过arguments对象知道函数传了几个参数并访问传的参数的值。

function doAdd() {    
  if(arguments.length == 1) {         
    alert(arguments[0] + 10);    
  } else if (arguments.length == 2) {         
    alert(arguments[0] + arguments[1]);   
  }
}
//20
doAdd(10);
//50
doAdd(30, 20);

如果在函数体内重置传进来的参数呢?

function doAdd(num1, num2) {    
  arguments[1] = 10;    
  alert(arguments[0] + num2);
}

arguments对象的值会自动反映到对应的命名参数,但是读取arguments[1]num2访问的并不是同一个内存空间,他们的内存空间是独立的,但是他们的值是相同的。

doAdd(9); // 此时 num2 的值是undefined,如同定义了变量没有初始化是一样的

js函数不能被重载

如果定义了两个相同名字的函数,则调用的时候,会执行后定义的这个函数的函数体内的代码。

js有哪些数据类型?

5种基本数据类型:String Number Boolean Null Undefined
1种复杂数据类型:Object

typeof操作符返回值:

  • string
  • number 如果这个值是数值
  • boolean
  • undefined 如果这个值未定义
  • function
  • object 如果这个值是对象或者null

函数的定义和调用

#javascript#javascript学习_第1张图片
Paste_Image.png

第一种:函数表达式
第二种:函数声明

闭包到底怎么理解?

闭包属于函数表达式中的内容,他是一种函数类型,能访问另一个函数作用域中的变量。

  • 怎么创建闭包?
    在一个函数内创建另一个函数

作用域链

当一个函数第一次被调用时:

  • 会创建一个执行环境execution context和相应的作用域链,
  • 并把作用域链赋值给一个特殊的内部属性[[Scope]]
  • 使用this arguments和其他命名参数的值来初始化函数的活动对象activation object

在作用域链中,外部函数的活动对象始终处于第二位,
外部函数的外部函数的活动对象始终处于第三位,
直到全局执行环境。

js中的递归

递归函数是指在自身的函数体内调用自身。

js中的onclickaddEventListener('click'),这两种绑定点击事件的区别是什么?

--

js中的冒泡事件是什么?

--

你知道Js中的事件委托吗?

在为一连串的dom对象添加事件的时候,事件委托就起了很大的作用了。

js中的try catch平时用的多吗?什么情况下需要去处理异常呢?

--

js中会存在哪些常见的错误呢?又该如何去处理这些错误或者避免这些错误?

--

你可能感兴趣的:(#javascript#javascript学习)