1.1一个完整的js实现包括啥?
ECMAscript, DOM, BOM
1.2ECMA的宿主环境有?
Web浏览器, node, flash, webview
1.3为何要DOM?
确保代码可以跨平台使用,
1.4DOM各级的区别?
1级映射文档结构,
2级事件和支持CSS
3级加载和保存文档的方法
1.5BOM的作用是?
让js可以控制页面以外的部分
2.1带src属性的script元素与其闭合标签嵌入JS代码有何问题?
被忽略,不执行
2.2如何避免包含太多JS代码页面的空白?
js引用放在body页面后面
2.3为何最好一个页面 只 包含一个延迟脚本?
因为延迟脚本不一定按顺序执行;
2.4为何建议异步脚本最好不要在加载期间修改DOM?
因为页面会先于脚本加载页面,容易出问题
2.5noscript元素中的内容何时出现?
浏览器不支持脚本或者脚本被禁用
3.1为何要用严格模式?
避免 不确定行为和不安全的操作。
3.2省略分号有何隐患?
容易带来错误和降低性能(解析器需要推测)
3.3在控制语句中使用代码块的好处?
让编码意图清晰和降低修改代码出错的几率
3.4为何说JS的变量是松散类型的?
因为变量仅是保存值得占位符,可用来保存任何类型的数据
3.5js的数据类型有?
基本类型:undefined,null,Number,Boolean,String
引用类型 Object
3.6typeof的作用?
检测变量的数据类型
3.7typeof的返回值有?
undefined,number,boolean,string, object, function
3.8引入undefined的目的是?
区分空对象指针与未初始化的变量
3.9对未声明变量只能执行的操作是?
typeof检测其类型
3.10为何建议显示初始化变量?
便于使用typeof区分变量是未声明还是未初始化
3.11null值表示什么?
空对象指针
3.12为何把变量显示初始化为undefined没必要,而把对象初始化为null却又必要?
体现null作为空指针的惯例,
进一步区分null和undefined
3.13Boolean的字面值区分大小写吗?
区分,所以False, 与false 不一样
3.140.1+0.2不等于0.3?
浮点数的精度是17位,存在舍入误差
3.15如何理解NaN?
表示一个本来要返回数值的操作数未返回数值的情况
3.16JS中除0会阻止代码的执行吗?
不会,因为它返回了NaN
3.17对象调用isNaN()函数有何不同?
先调用valueOf()进行判断,视情况再调用toString()进行判断
3.18数值转型函数Number与parseInt/parseFloat有何区别?
前者针对任何类型,后两者只针对字符串
3.19parseInt和parseFloat有何区别?
一是parseFloat不忽略第一个小数点;
二是parseFloat始终忽略前导0;
三是parseFloat只解析十进制;
3.20怎样避免parseInt错误解析字符串?
任何情况下明确基数。
3.21Number与parseInt解析空字符串时有何区别?
前者返回 0, 后者返回NaN
3.22转换为字符串的方法及区别?
toString()通过指定基数,改变输出的值,null和undefined没有toString方法()
String()将任何类型的值转换成字符串
3.23如何改变数值的toString()方法的 返回值?
传入指定基数
3.24为何说Object是所有实例的基础?
Object所具有的任何属性和方法也存在于具体对象中。
3.25递增/减前置和后置的区别?
前置时变量在语句执行前改变,后置则是在语句执行后改变
3.26系统怎样对 非数值 应用 位操作符 进行自动处理?
使用Number()函数把该值转换为数值
3.27如何理解短路操作?
第一个数决定结果,则不会操作第二个数
3.28比较数值与字符串时是如何转换的?
字符串转换为数值
3.29任何操作数与NaN的比较结果是?
flase
3.30相等和全等的区别?
全等不需要转换,性能更好
3.31为何NaN不等于NaN?
逻辑上设计如此
3.32逗号操作符的赋值规则是?
返回表达式最后一项
3.33为何for...in循环输出的属性名不可预测?
Js对象属性没没有顺序,
3.34为何不建议大量使用with语句?
性能下降,调试困难
3.35为何switch语句比较时不发生转换?
使用的是全等比较
3.36为何位于 return语句后的代码不会执行?
函数执行return后会立即停止并退出
3.37JS函数中通过什么获取参数数组?
arguments对象
3.38为何JS中的函数不能实现重载?
无法做到 参数类型和数量的不同
网友评论