前端面试基础面试题——2

1.什么是json? json可以存在哪几种数据类型?在什么时候用?

2.什么是作用域?

3.http和https分别是什么?区别是什么?

4.介绍一下js的节流与防抖?

5.什么是cookie?cookie的优缺点。

6.js的三种排序方法,并分别说明原理

7.栈和队列的区别?

8.math对象是什么?有什么用?

9.js中浅拷贝和深拷贝的区别

10.js延迟加载的方式有哪些?


1.什么是json? json可以存在哪几种数据类型?在什么时候用?

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

JSON 是轻量级的文本数据交换格式

JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。

JSON 值可以是:

          数字(整数或浮点数)

         字符串(在双引号中)

         逻辑值(true 或 false)

         数组(在中括号中)

         对象(在大括号中)

         Null

JSON格式通常用于通过网络连接序列化和传输结构化数据。 它主要用于在服务器和Web应用程序之间传输数据,是XML的替代方法。

2.什么是作用域?
作用域是在运行时代码中的某些特定部分中变量,f函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。
3.http和https分别是什么?区别是什么?

 http协议:是超文本传输协议     https协议:是具有安全性的ssl加密传输协议

 传输信息安全性不同: http明文传输,https加密传输

 连接方式不同:http连接简单,无状态。https可进行加密传输,身份认证

 端口不同;  http端口是80   https端口是443

4.介绍一下js的节流与防抖?
节流:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。

防抖:就是指触发事件后在规定时间内函数只能执行一次,如果在规定时间内又触发了事件,则会重新计算函数的执行时间。

5.什么是cookie?cookie的优缺点。

cookie是存储于访问者计算机中的变量 cookie是浏览器提供的一种机制 可以由JavaScript对其进行控制(设置、读取、删除) 

优点:cookie可以实现跨页面全局变量 ,cookie可以跨越同域名下的多个网页,但不能跨越多个域名使!用同一个网站中所有页面共享一套cookie

缺点:cookie可能被禁用; cookie与浏览器相关,不能互相访问; cookie可能被用户删除; cookie安全性不够高; cookie存储空间很小(只有4–10KB左右)

6.js的三种排序方法,并分别说明原理

 冒泡排序:相邻两个对比,小的在前

选择排序:从第一个开始找到最小的放最前面,依次

插入排序:从第二个开始,和前面的对比,比前面小就换位置,不小就不动,依次

快速排序:通过第一个值将数组分为两个数组,大于该值的放在后面,小于该值的放在前面(利用递归)

7.栈和队列的区别?

栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的。

队列先进先出,栈先进后出。

栈只允许在表尾一端进行插入和删除,而队列只允许在表尾一端进行插入,在表头一端进行删除

8.math对象是什么?有什么用?

Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 不是一个函数对象。与其他全局对象不同的是,Math 不是一个构造器。Math 的所有属性与方法都是静态的。

Math是JavaScript的原生对象,提供了各种的数学功能,改对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math对象上调用的。

9.js中浅拷贝和深拷贝的区别

 浅拷贝:有两种方式,一种是把一个对象里面的所有的属性值和方法都复制给另一个对象,另一种是直接把一个对象赋给另一个对象,使得两个都指向同一个对象。

深拷贝:把一个对象的属性和方法一个个找出来,在另一个对象中开辟对应的空间,一个个存储到另一个对象中。

两者就在于,浅拷贝只是简单的复制,对对象里面的对象属性和数组属性只是复制了地址,并没有创建新的相同对象或者数组。而深拷贝是完完全全的复制一份,空间大小占用一样但是位置不同!

如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。

10.js延迟加载的方式有哪些?
1. defer 属性

2. async 属性

3. 动态创建DOM方式

4. 使用jQuery的getScript方法

5. 使用setTimeout延迟方法

6. 让JS最后加载

 

你可能感兴趣的:(面试,职场和发展)