1.什么是预解析
预解析就是将所有带有var和function的关键字进行提前的加载。预解析可以分为两部分声明和定义,var是只声明不定义,function是声明+定义。
2.全局变量和局部变量的区别
全局变量是全局定义下的变量,是可以在任意地方使用的;局部变量是局部定义下的变量,只能在当前作用域下使用和修改。
3.什么是作用域链
作用域链是一种查找机制,在当前作用域下,用到某个变量或函数,有私有的先用私有的,私有的没有会往上一级作用域进行查找,上一级作用域没有就再往上一级作用域进行查找,直到找到全局作用域为止,找不到就报错了。 (上一级作用域:就看当前这个函数在哪里预解析的 / 在哪里调用的),函数执行完毕会自动销毁(垃圾回收机制)
4.数据类型的分类
基本数据类型:数字number、字符串string、布尔boolean、、null、undefined。
复杂数据类型:object对象、array数组、function函数。
5.break和continue的作用
continue及break用到循环当中,用来终止循环,continue是结束当前这一次循环,进入到下一次循环;break是结束整个循环,continue及break后边的代码都不再执行了。
6.如何获取非行间样式
调用以下函数获取非行间样式:
function getStyle(elem, attr){
if(elem.currentStyle){
// IE 中
// .后边的跟的是变量,使用[]代替
var w = elem.currentStyle[attr];
}else{
// 标准
var w = getComputedStyle(elem)[attr];
}
// 把结果返回出去
return w;
}
7.封装一个获取min-max之间的随机数的函数
function getRandom(min, max){
var n = parseInt( Math.random()*(max-min+1) + min );
// 返回需要的内容
return n;
}