※ Js几个输出语句:?
①alert()弹出对话框
②console.log()控制台输出
③document.write()在浏览器输出
※ 变量的数据类型?
①基本数据类型 :string number boolean
②复合数据类型 :object对象
③特殊数据类型 :undefind null
※ undefined和Null的区别?
Undefined是访问一个未初始化的变量时返回的值,可以看做是空的变量。
Null是访问一个尚未存在的对象的时候返回的值,可以看做是空的对象。
※ switch和if的使用场景?
① 当条件是具体的值时,建议使用switch
② 当条件是一个范围时,建议使用if else
※ while和do...while的区别?
While : 先判断条件再执行循环体。循环体有可能一次也不执行。
Do..while : 先执行循环体,再判断条件,循环体至少执行一次。
※ break continue 和 return的区别?
Break : 结束本层循环,跳出循环体。
Continue : 终止本次循环,继续开始下次的循环。
Return : 程序返回,不再执行以下的代码。
※ js解析器?
浏览器内部有个专门解析JS程序的地方,这个空间就是JS解析器,解读JS程序有两个步骤:
①预解析 :
找到一些东西,var function。
找到了var就是找到了一个变量,会提前为这个变量赋予一个值undefined。
找到了function就是找到了一个函数,会提前为这个函数名赋予一个值,这个值就是函数块本身。
找到两个function。如果函数重名,后一个会覆盖前一个。
如果找到的变量和函数重名,保留函数。
②逐行解读代码,如果遇到表达式,改变了变量的值,那么预解析时仓库的变量的值也会改变。
※ 作用域链?
变量首先在函数体内部向上查找,如果在函数体内部查找到,就返回(说 明该变量就是一个局部变量),否则继续向函数体外部查找,如果找到就 是操作的全局变量。如果函数体内部和外部都没有找到,判断这个变量 是否有var,有的话就是局部变量,没有的话就是全局变量。