-
闭包
好处:灵活和方便,可以做一些封装
问题:空间浪费 内存泄漏 性能消耗
查看全部 -
闭包的概念
查看全部 -
数组方法..
查看全部 -
素组元素增删
查看全部 -
typeof:基础类型函数对象,遇到null失效
instanceof:判断对象类型(不同window或iframe间的对象检测不能使用instanceof)
Object.prototype.toString,apply():
IE6/7/8Object.prototype.toString.apply(null)返回[object Object]
constructor
duck type
查看全部 -
var 隐式定义变量
function foo() {
var a = b = 1 //隐式的创建了一个全局变量b
}
foo()
console.log(typeof a) // 拿不到,a属于函数作用域中的
console.log(typeof b) // 'number' b为全局变量
查看全部 -
块级作用域block
js中没有块级作用域,比如在for循环中定义一个变量在for循环外也能访问。
函数作用域
在函数中定义的变量在函数外无法访问
查看全部 -
严格模式..
查看全部 -
总结
typeof 用于检测基本类型和function 但是不能检测null,遇到null会返回object
object.prototype.toString() 用来判断基本类型、数组、函数,但是null和undefined在IE8以下会存在兼容性问题
instanceof 用来判断对象是都为某个原生对象构造器所构造的,是否继承自某个原生对象,但是在window和iframe上可能失效
查看全部 -
Object.prototype,toString() 判断引用类型如下图
查看全部 -
instanceof 判断对象类型
obj instanceof Object 左右操作树都应该是对象,如果不是直接返回false
查看全部 -
类型判断
typeof -- 可判断基本类型,如下图
instanceof
查看全部 -
定义一个基本类型string,需要以对象的方式去操作的时候,js会将基本类型转换为包装类型,临时创建一个对象,赋值或者其他操作后临时对象会被销毁,所以如图访问a.t即为undefined
同理其他的基本类型也是一样的
查看全部 -
== 运算
字符串 == 数字 (会将字符串转换为数字)
0 == false (boolean和其他值比较时,先将boolean转换数字再进行比较,这里将false转换为0比较)
null == undefined (在js规范中提到null 和 undefined在比较相等性之前不能将其转换为任何值,规定他们是相等的,并且都代表无效值)
查看全部 -
js中 + -运算
字符串 + 数字 = 字符串(字符串拼接) 可用于将数字+"" 转为字符串
字符串 - 数字 = 数字 (数学运算)可用于将数字字符串-0 转为数字
查看全部
举报