在js中, 有number, string, boolean, null, undefined五种原始值类型数据, 以及引用值类型Object, Date, RegExp, Array
所以, 今天踩到的坑就是原始值类型的字符串和对象类型的string.
var str1 = "I am a string";
这个字符串的类型不用说, 原始值类型.
var str2 = new String("I am a string");
这也一眼能看出来, 对象类型
(不定项选择题) 下面哪些语句可以 在JS里判断一个对象oStringObject是否为String
A oStringObject instanceof String
B typeof oStringObject == 'string'
C oStringObject is String
D 以上答案都不对
A.
// 如果使用如下代码
console.log(str1.length);
会打印出 11 , 也就是它的长度. 但是基本数据类型是没有通过.的方式调用方法和访问属性的, 出现这种情况的原因是因为js引擎做了一些事情
1. var str = new String("I am a string"); // 悄悄地创建一个str对象
2. console.log(str.length); // 悄悄地获取长度打印出来
3. str = null; // 悄悄的删除这个对象
这就是javascript对开发者太过纵容的结果.