• JS面试题及答案总结


    1. 截取字符串abcdefg的efg 

    <div id="test">abcdefg</div>

    var mytext=document.getElementById("test"); 
    var myvalue=mytext.innerHTML; 
    var jiequ=myvalue.substring(4); 

    2. 写出一下运算结果 


    alert(typeof(null))  // object 
    alert(typeof(undefined))  // undefined 
    alert(typeof(NaN))  // number 
    alert(NaN==undefined)  // false 
    alert(NaN==NaN)  // false 
    var str="123abc"; 
    alert(typeof(str++)) // number 
    alert(str) // NaN

    3.写出程序运行的结果? 


    for(i=0, j=0; i<10, j<6; i++, j++){ 
    k = i + j; 

    }

    结果:10(小心陷阱)

    4. 用正则怎样去掉重复的字符串,只保留一个

    var str= "aaaebbbcccddd";
    str = str.replace(/(.)1+/g,'$1');

    alert(str);

    5. 以下哪个在JAVASCRIPT中会报错: 
    var a=(); 
    var a=[]; 
    var a={}; 
    var a=//; 

    var a=();var a=//; 报错     两个不行!

    6. 下面代码执行结果是什么?

    <script> 
      alert(typeof addB); 
      function addB() { 
      alert("function addB"); 
      } 
      var addB = "variable"; 
      alert(addB); 
    </script> 

    执行结果是"function"和"variable"。 
    JS解析器先预定义了 addB 变量为 undefined, 但是 addB 函数覆盖了此变量,因此一开始执行结果是 function,然后 addB 被赋值为 "variable",因此最后执行结果是 "variable",上面的代码即使变为

    Js代码 

    <script> 
      alert(typeof addB); 
      function addB() { 
      alert("function addB"); 
      } 
      var addB = "variable"; 
      alert(addB); 
    </script> 


    结果也一样,这说明JS解析器先预声明变量,再预定义函数 。 
    小结一下:JS 在执行前会进行类似"预编译"的操作,而且先预定义变量再预定义函数。 

  • 相关阅读:
    009-docker-安装-redis:5.0.3-单点配置、集群配置
    【Java】PreparedStatement VS Statement
    开源搜素引擎——Nutch
    统计文件数目并生成日志
    【GitHub】 README.ME 格式
    【Java】类加载过程
    【Java】创建线程对象两种方式
    【Java】初始化过程
    解决Sublime Text 3 中文乱码
    【Java】线程池的作用
  • 原文地址:https://www.cnblogs.com/laneyfu/p/4224001.html
Copyright © 2020-2023  润新知