包装类
在JS中提供三个包装类,可以将基本数据类型的数据转换为对象。
- String()——将一个基本数据类型字符串转换为String
- Number()——将一个基本数据类型字符串转换为Number
- Boolean()——将一个基本数据类型字符串转换为Boolean
方法和属性只能添加给对象,不能添加给基本数据类型。
对基本数据类型调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法,调用完以后再转换为基本数据类型。
//在开发中不会使用基本数据类型的对象,作比较时,会带来不可预期的结果。
var num = new Number(3);//创建一个number类型的额对象
console.log(typeof num);
var str = new String("sss");
console.log(typeof str);
var bool = new Boolean(true);
console.log(typeof bool);
//向num中添加一个属性
num.hello = "hello!";
console.log(num.hello);
var s = 123;
s = s.toString();
s.hello = "nihao";
console.log(typeof s);
console.log(s.hello);//
String方法
var str = "Hello!he";//底层是以字符数组的形式保存的
var str1 = "你好!";
var result = str.charAt(2);//返回指定位置的字符
console.log(result);
var result = str.charCodeAt(2);//返回指定位置的字符的unicode编码
console.log(result);
var result = String.fromCharCode(108);//根据字符编码去获取字符
console.log(result);
var result = str.concat(str1);//连接字符串
console.log(result);
result = str.indexOf("H",0);//判断str是否含有字符。如果有则返回其第一次出现的索引。如果灭有return -1;
console.log(result);//可以指定第二个参数,指定开始查找的位置
result = str.lastIndexOf("H",0);
//return 从后往前找
result = str.slice(1,2);//截取指定的字符串
console.log(result);
result = str.substring(0,2);//同silce,不同的是不能接受负值 会自动调整参数的位置。
console.log(result);
result = str.substr(0,2);//参数,开始位置index,长度
console.log(result);
result = str.split("!");//如果传递一个空串,全部转换为shuzu
console.log(Array.isArray(result));//是数组
console.log(result[1]);//输出第二个数组"Hello"
result = str.toUpperCase();//大写
result = str.toLowerCase();//小写
console.log(result);