undefined 和null的区别?
null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。
undefined:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
null:
(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点。
什么是作用域链?
简单说就是作用域集合 当前作用域 -> 父级作用域 -> ... -> 全局作用域 形成的作用域链条
全局作用域的变量和方法都可以进行调用
局部的变量和方法只能局部进行调用( 除闭包外 )
局部可以访问全局的变量和方法
谈谈你对arguments的了解
1、函数内部自带的一个对象
2、存储的是所有的实参
3、可以使用[]及下标访问arguments中的内容 arguments[0] 访问第一个实参
4、可以使用 arguments.length 确定传入实参的个数
5、最常用的用途: 判断传入参数的个数(根据参数个数做不同的事情)