1:基本类型和引用类型 基本类型= =简单类型= =number boolean undefined string… 引用类型= =复杂类型= =函数和对象 基本和引用的区别? 1:基本类型存储在栈内存里面,引用类型存储堆内存里面 2:基本类型是值的传递,引用类型是地址的传递 2:栈内存和堆内存 浏览器的内存分为2种 1:一种是栈内存,存储的基本类型,也就是基本变量 2:一种是堆内存,存储的引用类型,也就是函数和对象 3:浏览器解析js代码的顺序(预解析) 1:先看全局js代码里面是否有语句错误。 2:提前解析关键字var和function 3:从上到下,从左到右开始解析 4:this的指向问题(分析this的指向,首先要看this的环境)(指向又是代替的意思) 1:在事件函数中的this,指向事件前对象 2:在函数中的this,谁调用函数,this指向谁 3:在冒充方法中,this指向冒充方法中的对象 4:在对象中,this指向对象 5:在面向对象中,一般指向该对象,其他情况看谁在调用这个方法。 5:什么是声明和定义? 变量声明和定义是分开的 举例: var a=100; var a是声明 =100 是定义 函数的声明和定义是一起的是不分开。 6:函数被输出的时候带不带括号是有区别的。 function a(){
} alert(a())==>输出undefined function b(){ } alert(b)==>输出function(){ } function b(){ alert(124)==>先输出 } alert(b())==》后输出7:函数的注意事项: 7.1:函数名和变量名不能一样,一样报错 7.2:把函数赋值给一个变量的时候,变量在调用函数不能在函数上,在函数上面报错。 举例: a(); var a=function(){ alert(12412) } 7.3:档函数输出语句离形参近的时候,输出形参,离变量近的时候输出变量。 举例:离形参近 var c=2; function a©{ alert©;//43 var c=98; } a(43) 举例:离变量近 var c=2; function a©{ var c=98 alert©;//98 } a(43) 8:闭包函数? 8.1:闭包就是能够读取其他函数内部变量的函数。 这种写法就可以获取到函数内部的局部变量,b函数就是闭包 function a(){ var n=9; function b(){ alert(n) } return b; } var num=a(); num(); 8.2:闭包的用途 闭包可以用在许多地方。 它的最大用处有两个,一个是前面提到的可以读取函数内部的 变量, 另一个就是让这些变量的值始终保持在内存中。 8.3:闭包的缺点: 使用闭包的注意点 由于闭包会使得函数中的变量都被保存在内存中, 内存消耗很大,所以不能滥用闭包, 否则会造成网页的性能问题, 在 IE 中可能导致内存泄露。 解决方法是,在退出函数之前, 将不使用的局部变量全部删除。 闭包会在父函数外部,改变父函数内部变量的值。 所以,如 果你把父函数当作对象(object)使用, 把闭包当作它的公用方法(Public Method), 把 内部变量当作它的私有属性(private value), 这时一定要小心,不要随便改变父函数内 部变量的值。