看到用 js 判断变量类型,我想到的第一个方法就是下面这种:
1 |
|
但是了解了 String 变量的定义方法之后会发现用 typeof 并不能判断出所有的 String 变量。
创建 String 对象
1 |
|
上述三种方法都可以用来定义一个 String 变量,但是用 typeof 去检测这三种方法定义出来的 String 变量时得到的结果并不都是 String。
new String(str) 和 String(str) 的区别
- new String(str):当 String() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串 str 或 str 的字符串表示。
- String(str):当不用 new 运算符调用 String() 时,它只把 str 转换成原始的字符串,并返回转换后的值。
String 对象属性
- constructor: 对创建该对象的函数的引用
- length: 字符串的长度
- prototype: 允许您向对象添加属性和方法
完整的检测 String 对象方法
根据 String 属性,我们可以看出能用 constructor 来判断变量的类型,具体方法如下:
1 |
|
扩展:查看其他变量类型的检测方法请看另一篇笔记 - [JS 中对变量类型的判断](http://alvinwp.com/js/821)
- 本文作者: Alvin
- 本文链接: https://alvinyw.github.io/2018/02/2/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!