前端面试题之JavaScript第一篇(持续更新)

一、JavaScript第一篇

JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。

1.1什么是JavaScript

JavaScript是客户端和服务端脚本语言,可以插入到HTML中,同时JavaScript也是面向对象的编程语言。

1.2 JavaScript和ASP脚本相比,哪个更快

JavaScript更快。JavaScript是一种客户端语言,因为他不需要web服务器的协助来执行。

另一方面,ASP是服务端语言,因此总是比JavaScript更慢。

JavaScript现在可用于服务端语言(node.js)

1.3 什么是负无穷大

负无穷大是JavaScript中的一个数字,可以通过负数除以零来得到。

let res = -1
console.log(-1 / 0) //Infinity

1.4 什么是未声明和未定义的变量

**未声明的变量是程序中不存在且未声明的变量。**如果程序尝试读取未声明变量的值,则会遇到运行时错误。

**未定义的变量是在程序中声明但尚未给出任何值的变量。**如果程序尝试读取未定义变量的值,则返回未定义的值。

console.log(res)  // res is not defined

let res
console.log(res) // undefined

1.5 如何动态添加元素

let li = document.createElement('li')
li.innerHTML = '我是新添加的标签'
document.querySelector('#box').appendChild(li)
let li = document.createElement('li')
li.innerHTML = '我是新插入的节点'
document.querySelector('#box').insertAdjacentElement('beforeBegin', li)

1.6 什么是全局变量 如何声明 有哪些问题

全局变量是整个代码长度可用的变量,也就是说这些变量没有任何作用域。var关键字用于声明局部变量或对象。如果省略var关键字,则声明一个全局变量。

 // 方法一
 test = 5
 console.log(test)
 window.test2 = 10
 // 方法二
 console.log(test2)

使用全局变量所面临的问题是本地和全局变量名称的冲突。此外,很难调试和测试依赖于全局变量的代码。

1.7 什么是=== 运算符

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

let arr = '5'
let int = 5
console.log(arr == int)  // true
console.log(arr === int)  // false

1.8 如何使用JavaScript提交表单

<div id="box">
  <form action="http://www.baidu.com">
  </form>
  <button type="button" id="btn">JS提交表单</button>
</div>
<script>
    document.querySelector('#btn').addEventListener('click', () => {
      document.querySelector('form').submit()
    })
</script>

1.9 JavaScript如何改变元素的样式/类

行内样式

document.querySelector('#box p').style.color = 'red'

设置类

document.querySelector('#box p').className = 'p1'

1.10 JavaScript循环结构都有什么

for循环

for (let i = 0; i < 5; i++) {
  console.log(i)
}

while循环

let i = 0
while (i < 5) {
  if (i == 2) {
    break
  }
  i++
}
console.log(i)

do…while

let i = 0
  do {
    console.log('当前i的值为:' + i)
    i++
  } while (i <= 5)

1.11 3 +2 + ‘7’ 的结果是很么

console.log(3 + 2 + '7')  // 7

由于3和2是整数,它们将直接相加。由于7是一个字符串,它将会被直接连接,所以结果将是57。

1.12 JavaScript中有哪些类型的弹出框

alert('1')
confirm('1')
prompt('1')

1.13 如何强制页面加载JavaScript中的页面

  <script language="JavaScript" type="text/javascript">
    location.href = "http://baidu.com"
  </script>

1.14 escape字符是用来做什么的

使用特殊字符(如单引号,双引号,撇号和&符号)时,将使用转义字符(反斜杠)。在字符前放置反斜杠,使其显示。

document.write("I \'m\ a \*boy\*")  // I 'm a *boy*

1.15 什么是JavaScript Cookie

Cookie是用来存储计算机中的小型测试文件,当用户访问网站以存储他们需要的信息时,它将被创建。

创建cookie

document.cookie = 'username' + '=' + 'web_chicken'

1.16 解释JavaScript中的pop()方法

pop()方法与shift()方法类似,但不同之处在于shift()方法在数组开头工作

pop()的方法将最后一个元素从给定的数组中删除

const arr = ['javascript', 'Vue', 'React', 'Element ui']
let res = arr.pop()
console.log(res)    // Element ui
console.log(arr)    // ["javascript", "Vue", "React"]

1.17 在JavaScript中使用innerHTML的缺点是什么

  • 内容随处可见
  • 不能像“追加到innerHTML”一样使用
  • 即使你使用+ = like“innerHTML = innerHTML +‘html’”旧的内容仍然会被html替换
  • 整个innerHTML内容被重新解析并构建成元素,因此它的速度要慢得多
  • innerHTML不提供验证,因此可能会在文档中插入有效的和破坏性的HTML并将其中断
document.querySelector('p').innerHTML += '新添加的'

1.18 break和continue语句的作用

  • break语句从当前循环中退出
  • continue语句结束本次循环继续下一个循环语句
    for (var i = 0; i < 5; i++) {
      if (i === 2) break
        console.log(i)  //  0 1
    }
    for (var i = 0; i < 5; i++) {
      if (i === 2) continue
      	console.log(i) // 0 1 3 4
    }

1.19 在JavaScript中,data types的两个基本组是什么

  • Primitive 原始类型
  • Reference types 引用类型

原始类型是保存在栈内存中的简单的数据。基本类型的数据操作的是实际保存的值。

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

1.20 如何创建通用对象

 var I = new Object();
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端大斗师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值