javascript面试问题
问:js里面能转换成false和true的值分别有哪些?
答:转换成false的值 ‘ ’(空字符串)、false、0、undefined、null
转换成true的值 非空字符串、true、非0的数字、object、function
问:js里面的隐式类型转换和强制类型转换有哪些?
答:隐式: == != - * / %除了+号
强制:String( ) Number( ) Boolean()
问:js的数据类型
答:在js中有5种不同的数据类型:string number boolean object function
3种对象类型:Object Date Array;
2个不包含任何值得数据类型:null undefined
注:NaN的数据类型是number;
数组(Array)的数据类型是object
日期(Date) 的数据类型是object
null的数据类型是object
未定义变量的数据类型为undefined
问:如何实现页面资源延迟加载
答:1、直接将script节点放置在</body>前后,这样js脚本就会在页面加载完之后再加载js;
2、使用script标签的defer的async属性,defer属性为延迟加载,是在页面渲染完成之后再进行加载,而async属性则是和文档并行加载,但这两种方法不是在所有浏览器都支持;
3、通过监听window.onload时间,动态添加scirpt节点;
4、通过Ajax下载js脚本,动态添加script节点,但是有不能是用CDN方式提供的js文件
5、使用setTimeOut延迟加载
问:什么是js的“use strict”
答:js作为一门一开始用于浏览器脚本的语言,容错性很好。所以有时候代码写的再丑再乱,也可以运行。而“use strict”开启严格模式后,语法将非常严格,一些特性也将不能再使用。具体见http://www.cnblogs.com/jiangw/p/8335204.html