1、获取样式
(1)style只能获取到行间样式的属性
(2)火狐getComputedStyle(obj,null)[attr],IE:obj.currentStyle[attr]
2、ready、onload区别:
(1)ready 事件的触发,表示文档结构已经加载完成(不包含图片等非文字媒体文件),执行时机要早于onload
(2)onload 事件的触发,表示页面包含图片等文件在内的所有元素都加载完成。
3、闭包概念:
(1)如何从函数外部读取局部变量?——在函数内部再定义一个函数,再return该函数。
(2)JS允许使用内部函数(函数定义和函数表达式)位于另一个函数的函数体内,且这些内部函数可以访问它们所在外部函数中声明的所有局部变量、参数和其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。
(3)读取函数内部的局部变量;让变量的值始终保存在内存中。
(4)闭包微观的理解:定义的时候确定作用域链,执行时候确定执行环境,创建活动对象,为活动对象添加arguments属性、和形参、函数引用。
(5)定义和执行:函数作用域是在定义函数的时候确定的,而不是执行函数的时候。
(6)JS垃圾回收机制:如果一个对象不再被引用,会被回收;如果两个对象互相引用,而不再被第3者所引用,则这两个互相引用的对象也会被回收。
4、变量作用域
(1)作用域链查找规则
(2)没有块级作用域
(3)变量声明会提前,赋值不会提前
(4)不使用var都是全局变量,全局变量都是window的属性
5、函数自执行里面可以当做块级作用域
6、html字符串转为jQuery对象;jQuery对象与dom对象互转。
7、引用传递和值传递
(1)基本数据类型和引用数据类型
(2)在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址(与C语言一样),在栈中的这个特殊的变量就变成了数组或者对象的引用变量。栈中的变量指向堆内存中的变量,这就是 Java 中的指针。引用变量实际上就是指向堆内存里内容的指针。
(3)修改引用变量,被引用的对象也会修改。若不想同时修改,就B.prototype[i] = createObject.prototype[i]这样循环开辟新的内存空间。
8、this指向机制:在一个函数上下文中,this由调用者提供,由调用函数的方式来决定。如果调用括号()的左边是引用类型的值,this将设为引用类型值的base对象,在其他情况下(与引用类型不同的任何其它属性),这个值为null。不过,实际不存在this的值为null的情况,因为当this的值为null的时候,其值会被隐式转换为全局对象。
9、定时器的工作机制:循环执行过程中,几乎同时设置了5个定时器,一般情况下,这些定时器都会在1秒之后触发,而循环完的输出是立即执行的。