js基本包装类型和引用类型

回顾

1.什么是基本类型?

共5个。boolean,string,number,null,undefined.

 

2.什么是引用类型?

引用类型的值是对象,保存在堆内存中;

引用类型的变量实际上是一个指针,它保存在栈中,指向堆内存中的对象;

包括:object  array  date  regexp  function

 

3.什么是基本包装类型?

既是基本,也是引用,所以叫做基本引用类型。

基本包装类型是对基本数据类型的封装,封装后即具有基本类型的功能,也有各自的特殊行为(方法)

 

4.和基本类型有什么区别?

区别在于对象的'生存期'。基本包装类型只存在于代码的执行瞬间,然后立即被销毁。

 

Boolean类型:

  typeof对基本类型返回“boolean”,而对引用类型返回“object”。

  其次,由于Boolean对象是Boolean类型的实例,所以使用instanceof操作符测试Boolean对象会返回true,而测试基本类型的布尔值则返回false。

  建议永远不要使用Boolean对象!

 

Number类型:

  创建number对象,可以在调用Number构造函数时向其中传递相应的数值:

var numberObject = new Number(10);

  Number类型还提供一些用于将数值格式化为字符串的方法:toFixed()方法

  

1.toFixed()方法会按照指定的小数位返回数值的字符串表示:(即以0填补必要的小数位)

var num=10;
alert(num.toFixed(2));  //"10.00

  

2.toExponential(),该方法返回以指数表示法(e表示法)表示的数值的字符串形式。也可以接收一个参数,指定输出结果中的小数位数。

 

3.toPrecision()方法

可能会返回固定大小格式,也可能返回指数(exponential)格式;具体规则是看哪种格式合适。可以接收一个参数,表示数值的所有数字的位数(不包括指数部分):

var num = 99;
alert(num.toPrecision(1));//"1e+2"
alert(num.toPrecision(2));//"99"
alert(num.toPrecision(3));//"99.0"

注意:typeof 测试基本类型,返回number;测试number对象时,返回“object”。number对象是number类型的实例,而基本类型的数值则不是。

 

String()方法:

var stringObject = new String("hello world");

//length属性
var stringValue = "hello world";
alert(stringValue.length); //"11"

1.字符方法:

  两个:charAt()和charCodeAt()

//charAt()方法以单字符字符串的形式返回给定位置的那个字符
var
stringValue = "hello world"; alert(stringValue.charAt(1)); //"e"
//【字符编码形式返回给定位置的字符
var
stringValue = "hello world"; alert(stringValue.charCodeAt(1)); //"101"

2.字符串操作方法

  concat():拼接字符串,返回拼接后的新字符串

var stringValue = "hello ";
var result = stringValue.concat("world");
alert(result);        //hello world
alert(stringValue);   //hello 
//可以接收任意多个参数,即拼接任意多个字符串
var
stringValue = "hello "; var result = stringValue.concat("world","!"); alert(result); alert(stringValue);

  str(),substring(),substr():

  注意:substring() 不接受负的参数;

       substr()方法、slice()方法中的参数如果是负数,那么它规定的是从数组尾部开始算起的元素。

var stringValue = "hello world";
alert(stringValue.slice(3,7)); //"lo w" alert(stringValue.substring(3,7)); //"lo w"
alert(stringValue.substr(3,7)); //"lo world"
var stringValue = "hello world";
alert(stringValue.slice(3,-4)); //"lo w"
alert(stringValue.substring(3,-4));  //"hel"
alert(stringValue.substr(3,-4));  //" "

1.slice()方法会把第二个负值的参数转换为“字符串长度+负值”(本例中“hello world”共11个字符(含括号),所以是11-4=7),也就是说slice(3,-4)==> slice(3,7)==>"lo w"

2.substring()方法会将负值转换为0,substring(3,-4)==>substring(3,0),又因为这个方法会将较小的值作为开始位置、较大的值作为结束位置,所以==>substring(0,3)==>取前3个字符==>"hel"

3.substr()方法也将第二个参数转换为0。而substr()方法的第二个参数本身的含义是 ”返回的字符个数”,当值为0时,即返回0个字符。所以第二个参数为负值时,该方法返回空字符串。

posted @ 2017-04-18 20:07  SingSingaSong  阅读(301)  评论(0编辑  收藏  举报