基本字符串和字符串对象
1.基本字符串:
1.字符串字面量 (通过单引号或双引号定义)
2.直接调用 String 方法(没有通过 new 生成字符串对象实例)的字符串
2.JS会自动将基本字符串`转换`为字符串对象
3.什么时候转换?
当基本字符串需要调用一个字符串对象才有的方法或者查询值的时候(基本字符串是没有这些方法的)
字符串对象------转------>基本字符串
// valueOf 将字符串对象转换为其对应的基本字符串
let s2 = new String("2 + 2");
console.log(s2.valueOf());
console.log(s2.valueOf() instanceof String);
console.log(typeof s2.valueOf());
console.log(eval(s2.valueOf()));
/*
2 + 2
false // 说明已经不是对象了
string
4
*/
// instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
// typeof 适合基本类型及function检测,遇到null失效
// 将传入的字符串当做 JavaScript 代码进行执行
/*
参考资料:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/instanceof
ps: instanceof 后续补充
*/