js基础-基本包装类型(Boolean、Number、String )★☆
2017-09-21 08:55
603 查看
基本包装类型(Boolean、Number、String)
1、基本包装类型简介ECMAScript提供了三个基本包装类型:
Boolean、
Number、
String。
实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能过调用一些方法来操作这些数据。执行步骤如下:
创建S提让那个类型的一个实例
在实例上调用指定的方法
销毁这个实例
var s1 = new String('test'); var s2 = s1.substring(2); s1 = null;上面三个步骤也分别适用于Boolean和Number类型对应的布尔值和数字值。
引用类型与基本包装类型的区别在于对象的生存期:使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中,而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即销毁,这也是我们不能再运行时为基本类型值添加属性和方法的原因。
var s = 'tg'; s.age =10; console.log(s.age); // undefined上面代码执行输出的是undefined,这是因为第二行创建的String对象在执行第三行代码时已经被销毁了,第三行又创建自己的String对象,而该对象没有age属性。
当然,我们也可以将Boolean、Number和String类型当做工具方法,将任何类型转为布尔值、数值和字符串。
2、 Boolean类型
Boolean类型是与布尔值对应的引用类型。常用于生成布尔值的包装对象的实例。
var bool = new Boolean(true);Boolean类型的实例重写了valueOf()方法,返回的基本类型值true或false,重写了toString()方法,返回字符串“true”和“false”。
要注意一点的是,即使你使用false创建一个Boolean实例对象,当进行逻辑运算时,它会被转为true,因为它是一个对象,而所有对象在逻辑运算中都会返回true。
var bool = new Boolean(false); if(bool){ console.log(true); }// true
对于Boolean类型,我们几乎不用用它来创建实例对象。
3、 Number类型
Number是与数字值对应的引用类型。
创建Number对象:
var num = new Number(); var num2 = new Number(10);Number类型的toString()方法返回数值的字符串,可传递一个表示基数的参数,默认是10进制。
var num = 10; console.log(num.toString()); // "10" console.log f185 (num.toString(2)); // "1010"3.1 属性
Number类型有以下属性:
Number.POSITIVE_INFINITY:正的无限,指向Infinity。 Number.NEGATIVE_INFINITY:负的无限,指向-Infinity。 Number.NaN:表示非数值,指向NaN。 Number.MAX_VALUE:表示最大的正数,相应的,最小的负数为-Number.MAX_VALUE。 Number.MIN_VALUE:表示最小的正数(即最接近0的正数,在64位浮点数体系中为5e-324),相应的,最接近0的负数为-Number.MIN_VALUE。 Number.MAX_SAFE_INTEGER:表示能够精确表示的最大整数,即9007199254740991。 Number.MIN_SAFE_INTEGER:表示能够精确表示的最小整数,即-9007199254740991。3.2 格式化方法
(1)Number.prototype.toFixed()
toFixed()方法会按照指定的小数位来返回数值的字符串表示(四舍五入)。
var num = 10.005; console.log(num.toFixed(2)); // "10.01"注意:如果没有小数位,则以0填补。
var num = 10; console.log(num.toFixed(2)); // "10.00"注意:toFixed()参数的有效范围为0~20个小数位的数值。
(2)Number.prototype.toExponential()
toExponential()方法用于将一个数转为科学计数法形式。
var num = 10; console.log(num.toExponential()); //1e+1toExponential()方法的页可以接受一个参数,参数表示小数点后有效数字的位数,范围为0到20,超出这个范围
var num = 1234; console.log(num.toExponential(2)); // 1.23e+3 console.log(num.toExponential(1)); // 1.2e+3(3)Number.prototype.toPrecision()
toPrecision()方法可能返回固定大小格式,也可能返回指数格式,具体规则是看哪种格式最合适的。它也接收一个参数,表示数值的所有数字的位数(不包含指数部分)
var num = 99; console.log(num.toPrecision(1)); // 1e+2 console.log(num.toPrecision(3)); // 99.04、 String类型
String类型是字符串的对象包装类型。
创建String对象
var text = new String('tg');String构造函数有一个静态方法:
(1)String.fromCharCode()
fromCharCode()方法的参数是一系列Unicode码点,返回对应的字符串。
var str = String.fromCharCode(104, 101, 108, 108 ,111); console.log(str); // "hello"4.1 String实例对象的属性和方法
4.1.1 属性
length属性
String类型的每个实例都有一个length属性,表示字符串中包含多少个字符(从0开始)。
4.1.2 方法
String类型提供了很多方法:
(1)字符方法
chatAt()接收一个基于0的字符位置的参数, 返回指定位置的字符
var str = 'hello world'; console.log(str.charAt(1)); // e
charCodeAt()接收一个基于0的字符位置的参数,返回给定位置字符的Unicode码点(十进制表示)
var str = 'hello world'; console.log(str.charCodeAt(1)); // 101String对象实例是一个类数组对象,所以我们可以使用方括号表示法访问特定字符。
var str = 'hello world'; console.log(str[1]); // e(2)字符串操作方法(字符串API)
concat()用于连接两个字符串,参数可以是一个或多个字符串,返回拼接得到的新字符串
var str1 = 'hello'; var str2 = str1.concat(' world'); console.log(str2); // "hello world" console.log(str1); // "hello"
slice(start,end)用于从原字符串取出子字符串并返回子字符串,不改变原字符串。
第一个参数:表示子字符串的开始位置,如果参数是负值,表示从结尾开始倒数计算的位置,即该负值加上字符串长度
第二个参数:可选,表示子字符串的结束位置(不含该位置);如果参数是负值,表示从结尾开始倒数计算的位置,即该负值加上字符串长度;如果不设置,表示将字符串的长度作为结束位置
var str = 'hello world'; console.log(str.slice(1,3)); // "el" console.log(str.slice(1)); // "ello world" console.log(str.slice(-1)); // "d" console.log(str); // "hello world"注意:如果第一个参数大于第二个参数,则返回空字符串
substring()用于从原字符串取出子字符串并返回,不改变原字符串,也接收一个或两个参数。
第一个参数表示子字符串的开始位置;
第二个位置表示结束位置,如果不设置,表示将字符串的长度作为结束位置
注意:substring()方法有些不一样,当传入负数时,它会自动将负数转为0,;当第一个参数大于第二个参数时,它会将两个参数的位置对换。
var str = 'hello world'; console.log(str.substring(-1,2)); // "he" console.log(str.substring(3,1)); // "el"从上面运行结果我们可以看到,substring()自动将-1转为0;将第二行的3和1交换了。
substr()用于从原字符串取出子字符串并返回,不改变原字符串。
第一个参数:表示子字符串的开始位置;
第二个参数:表示子字符串的长度。如果第一个参数是负数,表示倒数计算的字符位置。如果第二个参数是负数,将被自动转为0,因此会返回空字符串;如果不设置,表示将字符串的长度作为结束位置
var str = 'hello world'; console.log(str.substr(1,2)); // "el" console.log(str.substr(-1,2)); // "d" console.log(str.substr(1,-1)); // ""(3)字符串位置方法
indexOf()返回给定元素在字符串中第一次出现的位置,如果没有出现则返回-1。第一个参数为要查找的子字符串,可以接受第二个参数,表示搜索的开始位置
var str = 'hello world'; console.log(str.indexOf('o')); // 4 console.log(str.indexOf('h',2)); // -1
lastIndexOf()返回给定元素在字符串中最后一次出现的位置,如果没有出现则返回-1。第一个参数为要查找的子字符串,可以接受第二个参数,表示搜索的开始位置
var str = 'hello world'; console.log(str.lastIndexOf('o')); // 4 console.log(str.lastIndexOf('h',2)); // 0(4)trim()
trim()是ECMAScript 5新增的,用于去除字符串两端的空格,返回一个新字符串,不改变原字符串。
var str = ' hello'; console.log(str.trim()); // "hello"(5)字符串大小写转换
toLowerCase()用于将一个字符串全部转为小写,返回一个新字符串,不改变原字符串。
toUpperCase()将字符串的字符全部转为大写
var str = 'hello'; var upper = str.toUpperCase(); var lower = upper.toLowerCase(); console.log(upper); // "HELLO" console.log(lower); // "hello"(6)字符串的模式匹配方法
match()用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null。
search()返回值为匹配的第一个位置。如果没有找到匹配,则返回-1。
replace()用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式)。
split()按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组。还可传入第二个参数,决定了返回数组的成员数。
(7)localeCompare()方法
localeCompare(s2)用于比较两个字符串。它返回一个整数:
如果小于0,表示第一个字符串小于第二个字符串;
如果等于0,表示两者相等;
如果大于0,表示第一个字符串大于第二个字符串。
console.log('a'.localeCompare('a')); // 0 console.log('a'.localeCompare('b')); // -1注意:比较的是字符串在字母表中的顺序。
相关文章推荐
- javascript之基本包装类型(Boolean,Number,String)基础篇
- JavaScript基础——引用类型(四)基本包装类型(Boolean、Number、String)、单体内置对象(Global、Math)
- 第五章:引用类型(基本包装类型:Boolean、Number和String)
- javascript笔记之 基本包装类型(Boolean、Number、String)
- 基本包装类型:Boolean、Number 和String
- js的基本数据类型有哪些? ECMAScript中有5中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number和String。还有1中复杂的数据类型————
- JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
- 对js中的引用类型的理解(6)——基本包装类型(Booelean、Number、String)
- JavaScript内置对象--基本包装类型(Boolean、Number、String)详解
- js学习笔记:基本包装类型——String
- js学习笔记:基本包装类型——Boolean
- 【JavaScript】基本数据类型与引用数据类型区别(及为什么String、Boolean、Number基本数据类型会有属性和方法?)
- JS中的Boolean基本类型与包装类型
- 28 JS基础之--String包装数据类型方法总结
- js之类型转换与引用类型(Boolean/Number/String)
- JS基础之String包装类型的属性和方法
- js之类型转换与引用类型(Boolean/Number/String) 1411111
- js类型转换与引用类型详解(Boolean_Number_String)
- JavaScript学习笔记——基本包装类型(上)Boolean、Number
- 【JS】typeof原始类型 string:"string" number:"number" boolean:"boolean" undefined:"undefined" 除了null