02-js阶段高频面试题

前端面试题

1、js的数据类型有哪些

答: 简单数据类型: number string boolean undefined   null
	复制数据类型: object  function  array

2、typeof 返回的数据类型

答: number string boolean undefined  object  function 
   特殊情况:
   typeof null -->object
   typeof array -->object
   typeof typeof 任何类型  -->string

3、返回false的情况有哪些

答: 0  ""   null  false  NaN  undefined  不成立的表达式

4、typeof 和 instanceof 的区别

1、typeof会返回一个变量的基本类型,instanceof返回的是一个布尔值
2、instanceof 可以准确地判断复杂引用数据类型,但是不能正确判断基础数据类型
3、而typeof 也存在弊端,它虽然可以判断基础数据类型(null 除外),但是引用数据类型中,array也无法判断

5、== 和 === 的区别

答:== 表示是相等,只比较内容
   === 表示是全等,不仅比较内容,也比较类型

6、null 和 undefined 的区别

答:null 表示空值 没有获取到。typeof null 返回"object"
   undefined 表示未定义,声明没有值。typeof undefined 返回"undefined"

7、let、const、var的区别

1var声明变量存在提升(提升当前作用域最顶端),letconst是不存在变量提升的情况
2var没有块级作用,letconst存在块级作用域
3var允许重复声明,letconst在同一作用域不允许重复声明
4varlet声明变量可以修改,const是常量不能改变

###8、什么是作用域链

	1、作用域:分全局作用域和局部作用域
    2、在访问一个变量时,首先在当前作用域中找,如果找不到再到外层作用域中找,这样一层一层的查找,就形成了作用域链。

###9、for in 和 for of 的区别

1forin是遍历数组、对象的key
2forof是遍历数组的value
例如:
let arr = ["a","b"];
  1for (let key in arr) {
  console.log(key);  //0 1
  }
  2for (let value of arr) {
  console.log(value);  //a b
  }

10、谈谈你对this的理解

普通函数指向:Window
事件处理函数:事件触发对象

11、数组去重的方式

1let arr = [1, 2, 3, 3, 4, 4, 5]
    let array = [];
    for (let i = 0; i < arr.length; i++) {
        if (array.indexOf(arr[i]) === -1) {
            array.push(arr[i])
        }
    }

2let arr = [1, 2, 3, 3, 4, 4, 5]
    let array = [...new Set(arr)]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值