Javascript 基础知识

1. Javascript 有6种数据类型:(隐式转换就不说了,太简单了)

--5种原始类型:Number String Boolean Null Undefined

--1种对象类型:Object(array, function, Date ...)

2. Javascript 没有块级作用域 

for (var i = 0; i < 10; i++){};  // i 定义括号里,定义在 block 里,和定义在 for 外边是一样的!!

但是有函数作用域

function foo(){ var a = 1; }  // a 在 foo 函数外部是访问不到的

3. 函数声明 (function foo(){}) 和函数表达式( var foo = function (){} )的区别:

函数声明会被预先处理,即函数前置,可以在声明的前面直接调用函数

4. for in 谨慎使用,顺序不确定,对象属性受原型链影响

5. 对象创建: a. 对象字面量  b. new 原型链

var child = Object.create(obj)  // 指在 child 对象的 原型上创建一个 obj 对象,即 child.prototype = obj  

6. func.call/func.apply 可以改变 this 的指向, 他们的第一个参数就是你想要 this 是的对象,两个方法没有区别,无非 call 是一个一个传参,apply 是传一个参数数组。

还有一个 bind() 方法,func.bind(obj) 参数就是你想作为 this 的对象,比 call/apply 高效

7. 闭包的优点:灵活方便(参数传递),还可以用闭包来做封装

    闭包的缺点:当函数被调用后无法释放其中的变量,所以不合理的闭包会产生空间浪费,甚至内存泄漏,性能消耗

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容