js常见面试题

1.解释JavaScript中定时器的工作?如果有,也可以说明使用定时器的缺点?

  • setTimeout(function,delay)函数用于启动在所述延迟之后调用特定功能的定时器。

  • setInterval(function,delay)函数用于在提到的延迟中重复执行给定的功能,只有在取消时才停止。
  • clearInterval(id)函数指示定时器停止。

2.什么是===运算符?说明“==”和“===”之间的区别?

  ===被称为严格等式运算符,当两个操作数具有相同的值而没有任何类型转换时,该运算符返回true。

  “==”仅检查值相等,而“===”是一个更严格的等式判定,如果两个变量的值或类型不同,则返回false。

3.元素的样式/类如何改变?

  可以通过以下方式完成: document.getElementById(“myText”).style.fontSize = “20?;   或  document.getElementById(“myText”).className = “anyclass”;

4.javaScript中的循环结构都有什么?

  For、While、do-while

5.如何在JavaScript中将base字符串转换为integer?

  parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数。parseInt()将要转换的字符串作为其第一个参数,第二个参数是给定字符串的基础。

6.说明如何检测客户端机器上的操作系统?

  为了检测客户端机器上的操作系统,应使用navigator.appVersion字符串(属性)。

7.Javascript中的NULL是什么意思?

  NULL用于表示无值或无对象。它意味着没有对象或空字符串,没有有效的布尔值,没有数值和数组对象。

8.delete操作符的功能是什么?

  delete操作符用于删除程序中的所有变量或对象,但不能删除使用VAR关键字声明的变量。

9.在JavaScript中使用innerHTML的缺点是什么?

  如果在JavaScript中使用innerHTML,缺点是:内容随处可见;不能像“追加到innerHTML”一样使用;即使你使用+ = like“innerHTML = innerHTML +'html'”旧的内容仍然会被html替换;

  整个innerHTML内容被重新解析并构建成元素,因此它的速度要慢得多;innerHTML不提供验证,因此我们可能会在文档中插入有效的和破坏性的HTML并将其中断。

10.break和continue语句的作用?

  • Break语句从当前循环中退出。

  • continue语句继续下一个循环语句。

11.在JavaScript中,dataypes的两个基本组是什么?

  • Primitive

  • Reference types

  原始类型是数字和布尔数据类型。引用类型是更复杂的类型,如字符串和日期。

12.哪些关键字用于处理异常?

  try... Catch-finally用于处理JavaScript中的异常。

13.JavaScript中不同类型的错误有几种? 

  有三种类型的错误:

  • Load time errors:该错误发生于加载网页时,例如出现语法错误等状况,称为加载时间错误,并且会动态生成错误。

  • Run time errors:由于在HTML语言中滥用命令而导致的错误。

  • Logical Errors:这是由于在具有不同操作的函数上执行了错误逻辑而发生的错误。

14.解释for-in循环?

  or-in循环用于循环对象的属性。

15.定义事件冒泡?

  JavaScript允许DOM元素嵌套在一起。在这种情况下,如果单击子级的处理程序,父级的处理程序也将执行同样的工作。

16.什么样的布尔运算符可以在JavaScript中使用?

  “And”运算符(&&),'Or'运算符(||)和'Not'运算符(!)可以在JavaScript中使用。

  *运算符没有括号。

17.为什么不建议在JavaScript中使用innerHTML?

  innerHTML内容每次刷新,因此很慢。 在innerHTML中没有验证的余地,因此,更容易在文档中插入错误代码,从而使网页不稳定。

18.如何在不支持JavaScript的旧浏览器中隐藏JavaScript代码?

  • 在<script>标签之后的代码中添加“<! - ”,不带引号。

  • 在<script>标签之前添加“// - >”代码中没有引号。

  • 旧浏览器现在将JavaScript代码视为一个长的HTML注释。而支持JavaScript的浏览器则将“<! - ”和“// - >”作为一行注释。

19.JS中如何将页面重定向到另一个页面?

  1. 使用 location.href:window.location.href =“https://www.onlineinterviewquestions.com/”
  2. 使用  location.replace: window.location.replace(" https://www.onlineinterviewquestions.com/;")

20.是否可以在JS中执行301重定向?

   JS完全运行在客户端上。301是服务器作为响应发送的响应代码。因此,在JS中不可能执行301重定向。

21.解释一下什么是箭头函数?

  箭头函数是在es6或更高版本中编写函数表达式的简明方法。

  箭头函数不能用作构造函数,也不支持thisargumentssupernew.target关键字,它最适合非方法函数。 

  通常,箭头函数看起来像 const function_name =()=> {}

22.import 和 exports 是什么?

  importexports 帮助咱们编写模块化的JS代码。使用importexports,咱们可以将代码分割成多个文件。import只允许获取文件的某些特定变量或方法。可以导入模块导出的方法或变量。

23.JS中的 `substr()`和`substring()`函数有什么区别

  substr()  函数的形式为substr(startIndex,length)。它从startIndex返回子字符串并返回'length'个字符数。

    var s = "hello";  ( s.substr(1,4) == "ello" ) // true

  substring() 函数的形式为substring(startIndex,endIndex)。 它返回从startIndexendIndex - 1的子字符串。   

    var s = "hello"; ( s.substring(1,4) == "ell" ) // true

posted @ 2021-05-27 14:08  two-fish  阅读(240)  评论(0)    收藏  举报