JS面试题

1.JS的基本数据类型有哪些?引用数据类型有哪些?
基本数据类型:(1)number;(2)string;(3)boolean;(4)null;(5)undefined;(6)symbol(ES6新增)。
引用数据类型:(1)object;(2)function;(3)Array;(4)Map;(5)Set。

2.JS的typeof和instanceof的区别
typeof用来判断数据类型的,但是typeof在判断null、array、object以及函数实例(new + 函数)时,得到的都是object。

var a = [34,4,3,54],
        b = 34,
        c = 'adsfas',
        d = function(){console.log('我是函数')},
        e = true,
        f = null,
        g;
        
        console.log(typeof(a));//object
        console.log(typeof(b));//number
        console.log(typeof(c));//string
        console.log(typeof(d));//function
        console.log(typeof(e));//boolean
        console.log(typeof(f));//object
        console.log(typeof(g));//undefined

instanceof是判断该对象是谁的实例。
instanceof是用来判断一个对象在其原型链中是否存在一个构造函数的prototype属性。
a instanceof b:判断a是否为b的实例,可以用于继承关系中
b是c的父对象,a是c的实例,a instanceof b 与 a instanceof c 结果均为true
对于所有的引用类型,均为Object的实例

3.JS的null和undefined的区别
null是一个空值,是一个空对象指针;undefined代表未被初始化,当一个变量声明的未被初始化就是undefined。

4.JS的原型对象prototype
每个函数都有prototype属性,prototype属性是一个指针,它指向这个函数的原型对象。而且每个该对象产生的实例对象(new 操作符创建)都可以共享该对象prototype属性上的所有属性和方法。
(例子是创建了一个person函数)person函数的原型对象会自动获得一个constructor属性,这个属性指向其prototype属性所在函数,即person。

5.怎么判断两个对象相等
(1)通过JSON.stringify(obj)来判断两个对象转换后的字符串是否相等(如果对象的属性顺序不一样,会导致判断失误)
(2)Object.getownPropertyNames()
1)用Object.getOwnPropertyNames拿到对象的所以键名数组
2)比对键名数组的长度是否相等
3)比对键名对应的键值是否相等
但是当对象有二级属性要进行递归。
6.get和post的区别
(1)get请求是获取数据的,post请求是提交数据的。
(2)get请求对数据长度有限制。
(3)get请求可以被缓存,post请求不能被缓存。
(4)post请求比get请求更安全。
(5)GET参数通过URL传递,POST放在Request body中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值