函数的声明方式
function name () {} 函数声明
var name = function(){} 函数表达式
所有函数都有返回值 未return 的函数 返回值 是 undefined
function fun(形参){}
fun (实参)
function () {
return arguments.length //可以查看传入的了几位参数
}
查看 函数的参数 可以再 function 里面 console.log(arguments)
变量、作用域 内存问题
ES5 以及之前 没有块级作用域 全部都是 函数作用域
变量类型
原始类型 Number String Boolean Null Undefined
引用类型 Array Object function
复制变量的值
原始类型 的复制是 给新变量一个值
引用类型 的复制是 把旧变量的地址索引 给 新变量一份
传递参数
在给函数内传递一个基础类型的值的时候,会在函数内部创建一个新的局部变量,
并把值赋值给它
在给函数内传递一个引用类型的值的时候,会把这个值的索引传递 进去 此时 在函数里
面改变了值 原来的 值也会改变
类型检测
对象和 null 都返回 Object 其他的返回 与之对应的 类型
typeOf 不能区分 具体是那种对象 所以 配合 instanceOf 一起用
person instanceOf Object //判断person是不是Object
person instanceOf Array //判断person是不是Array
person instanceOf RegExp //判断person是不是RegExp
引用类型
创建 object
字面量 var obj = {};
构造函数 var obj = new Object();
属性名 会自动转换成字符串
对象访问 . [] 当要访问的属性 较复杂的时候 用 []
.可以给对象添加属性 而 []不可以