JS面试题(二)

简介: JS面试题

16. 数据类型检测的方式有哪些


1==>typeof 对数组、对象、null都会被判断为object。


其他判断都正确。


所以typeof判断基本数据类型。

console.log(typeof 2) //number
console.log(typeof null);// object

2==>instanceof能正确判断引用数据类型

console.log(2 instanceof Number);// false

3.constructor有两个作用,


一是判断数据的类型。


二是对象实例通过 constrcutor 对象访问它的构造函数。


需要注意,如果创建一个对象来改变它的原型。


constructor就不能用来判断数据类型了:


console.log((2).constructor === Number); // true
4.Object.prototype.toString.call()
Object.prototype.toString.call()使用Object对象的原型方法 toString 来判断数据类型:
var a = Object.prototype.toString;
console.log(a.call(2)); //[object Number]

17typeof null 的结果是什么,为什么?我的理解


typeof null 的结果是Object。


因为:在 JavaScript 第一个版本中,


所有值都存储在 32 位的单元中


每个单元包含一个【小的类型标签】和当前要存储值的【真实数据】


{000: object   - 当前存储的数据指向一个对象。你的理解}


object的标签类型是000


null 的值是机器码 NULL 指针(null 指针的值全是 0)


和Object的类型标签一样,所以会被判定为Object。


19 typeof NaN 的结果是什么?


typeof NaN; // "number"


20 解释一下NaN,或者你对NaN的理解


NaN是一个非数字类型的Number类型。不是一个明确的值。


在“执行数学运算没有成功,这是失败后的结果”。


如果时间运算失败的情况会出现NaN.


在ios的移动时间是 2012-12-12 12:12:12在进行元素的时候可能返回NaN


21 解释一下什么是 promise ?


promise是js中的一个对象,用于生成[可能在将来]产生结果的值。  


promise 可以有三种状态:


1.pending:初始状态,既不是成功也不是失败


2.fulfilled:意味着操作完全成功 [fu fei old]


3.rejected:意味着操作失败 [ rejected ]


在使用的时候,new Promise,在Promise中有两个参数resolve, reject,


他们既是参数也是函数。resolve处理成功。reject处理失败的。

相关文章
|
21天前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
43 5
|
10天前
|
JavaScript 前端开发 测试技术
「一劳永逸」送你21道高频JavaScript手写面试题(上)
「一劳永逸」送你21道高频JavaScript手写面试题
36 0
|
1月前
|
设计模式 JavaScript 前端开发
最常见的26个JavaScript面试题和答案
最常见的26个JavaScript面试题和答案
47 1
|
1月前
|
存储 JavaScript 前端开发
【JavaScript】面试手撕浅拷贝
引入 浅拷贝和深拷贝应该是面试时非常常见的问题了,为了能将这两者说清楚,于是打算用两篇文章分别解释下深浅拷贝。 PS: 我第一次听到拷贝这个词,有种莫名的熟悉感,感觉跟某个英文很相似,后来发现确实Copy的音译,感觉这翻译还是蛮有意思的
45 6
|
1月前
|
JavaScript 前端开发
【JavaScript】面试手撕节流
上篇我们讲了防抖,这篇我们就谈谈防抖的好兄弟 -- 节流。这里在老生常谈般的提一下他们两者之间的区别,顺带给读者巩固下。
53 3
|
2月前
|
前端开发 JavaScript UED
【JavaScript】面试手撕防抖
防抖: 首先它是常见的性能优化技术,主要用于处理频繁触发的浏览器事件,如窗口大小变化、滚动事件、输入框内容改变等。在用户连续快速地触发同一事件时,防抖机制会确保相关回调函数在一个时间间隔内只会被执行一次。
36 0
|
2月前
|
前端开发 JavaScript 算法
【JavaScript】面试手撕数组排序
这章主要讲的是数组的排序篇,我们知道面试的时候,数组的排序是经常出现的题目。所以这块还是有必要进行一下讲解的。笔者观察了下前端这块的常用算法排序题,大概可以分为如下
24 2
|
2月前
|
JavaScript 前端开发 索引
【JavaScript】面试手撕数组原型链(易)
续借上文,这篇文章主要讲的是数组原型链相关的考题,有些人可能会纳闷,数组和原型链之间有什么关系呢?我们日常使用的数组forEach,map等都是建立在原型链之上的。举个🌰,如我有一个数组const arr = [1,2,3]我想要调用arr.sum方法对arr数组的值进行求和,该如何做呢?我们知道数组没有sum函数,于是我们需要在数组的原型上定义这个函数,才能方便我们调用,具体代码如下。接下来我们就是采用这种方式去实现一些数组常用的方法。
39 6
|
2月前
|
JavaScript 前端开发
【JavaScript】面试手写题精讲之数组(上)
该专题主要是讲解我们在面试的时候碰到一些JS的手写题, 确实这种手写题还是比较恶心的。有些时候好不容易把题目写出来了,突然面试官冷不丁来一句有没有更优的解法,直接让我们僵在原地。为了解决兄弟们的这些困扰,这个专题于是就诞生啦。我们会将一些常见的不是最优解的答案作为对比,方便大家更好理解。
38 3
|
3月前
|
存储 人工智能 JavaScript
【利用AI刷面试题】AI:十道JavaScript面试题巩固一下知识
【利用AI刷面试题】AI:十道JavaScript面试题巩固一下知识