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

原文地址:https://www.cnblogs.com/jiangw/p/8297530.html