JavaScript面试大师_String类型

《JavaScript面试大师》系列文章的核心在于沿用应试教育的套路,采取:知识点+刷题的模式来加深巩固理解,目的在于斩获心仪offer,更高的目的在于提升对语言本身的理解,达到融会贯通。

String面试题:

  1. 基本类型(primitive)和基本包类型(primitive wrapper)的区别
  2. 基本类型没有自己的方法,为什么基本类型Boolean、Number和String能调用方法
  3. 将值转成字符串的方法
  4. 说说对toString()的理解
  5. 说说对String()的理解

面试题1:基本类型(primitive)和基本包类型(primitive wrapper)的区别

解答:参考《Javascript面试大师_Boolean类型》

 

面试题2:基本类型没有自己的方法,为什么基本类型Boolean、Number和String能调用方法

解答:使用基本类型Boolean、Number和String调用方法时,JS引擎会发生:

  1. 创建对应包类型对象
  2. 对实例调用方法
  3. 删除实例

且自动生成的包类型对象只在一行代码有效,如下所示:

let a = 'this is a string test';
s.name = 'test';
console.log(s.name);    // undefined

执行s.name = 'test' 时,JS引擎创建了一个String对象,给他增加了一个name属性,而当执行console.log(s.name)时,String对象已被销毁

参考:

  1. Primitive - MDN
  2. 《JavaScript Primitive Wrapper Types》

 

面试题3:将值转成字符串的方法

解答:

  1. toString()[除Null和Undefined类型外的所有类型均有]
  2. String()[任何类型]

参考:

  1. 《JavaScript高级程序设计》 3.4.6 String类型 3转换为字符串

 

面试题4:说说对toString()的理解

解答:一般有两种,Object.prototype.toString()和普通对象的toString方法,前者是根源。使用前者,会返回"[object xxx]"的字符串,常用于判断JavaScript数据类型(自定义类型除外,除非给了[Symbol.toStringTag]属性值);后者是对前者的重写,JavaScript大多数对象中,toString()方法都是重写了的,返回值得看具体定义。

参考:

  1. 《从深入到通俗:Object.prototype.toString.call()》

 

面试题5:说说对String()的理解

解答:可以将任何类型转为字符串,转换规则如下:

  1. 值具有toString()方法,则调用并返回结果
  2. 值为null,返回"null"
  3. 值为undefined,返回"undefined"

参考:

  1. 《JavaScript高级程序设计》 3.4.6 String类型 3转换为字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值