前端开发学习笔记–JavaScript 基本包装类型

发布于 2018-05-11  114 次阅读


基本包装类型既是基本类型,又是特殊的引用类型,可调用系统内置的方法,特殊引用类型有三种

1:Boolean 类型

2:Number 类型

3:String 类型

例:

var box = 'Mrs.zhang';
alert(box.substring(2));
//输出 s.zhang,索引 0 开始,从第 2 个位置开始截取到末尾的字符串输出

引用类型的写法:对象.方法(参数)

var box = 'Mrs.zhang';
alert(Mrs.zhang .substring(2));
//输出 s.zhang,直接通过值来调用方法

字面量写法

var box = ''Mrs.zhang';                                  //字面量,基本类型

box.name = 'zhang';                                         //无效属性,给基本类型加属性

box.age = function () {                                 //无效方法,给基本类型加方法

return 100;

};

alert(box);                                                   //Mrs.zhang

alert(box.substring(2));                               //. zhang

alert(typeof box);                                       //string

alert(box.name);                                       //undefined,打印不出来

alert(box.age());                                       //错误,字符串基本类型是无法给自己创建属性和方法的,但是可以调用系统内置的方法,即 alert(Mrs.zhang .substring(2));

new 运算符写法

var box = new String("Mrs.zhang")                           //引用类型

box.name ="zhang"

box.age = function(){

return 100;

}

alert(box);                                                               //打印出 Mrs.zhang

alert(box.substring(2));                                            //打印出 s.zhang

alert(typeof box);                                                    //object 类型

alert(box.name);                                                    //打印出 zhang,自定义属性有效

alert(box.age());                                                       //打印出 100,自定义方法有效

不管是字面量形式还是 new 运算符形式,都可以使用它的内置方法,有一定的区别;在 new 运算符中创建上述三种基本包装类型的对象时,可以添加自己的属性和方法,无法区分基本类型值和引用类型值,所以一般不用

Number 类型有一些静态属性(直接通过 Number 调用的属性,而无须 new 运算符)和方法

例:

alert(Number.MAX_VALUE);

//(类型.属性)这种写法叫静态属性

var box = 100;

alert (box.MAX_VALUE);

//基本的属性写法

静态属性包含以下几种

  • MAX_VALUE,表示最大数
  • MIN_VALUE,表示最小数
  • NaN,表示非数值
  • NEGATIVE_INFINITY,负无穷大,溢出返回该值
  • POSITIVE_INFINITY,无穷大,溢出返回该值
  • prototype,原型,用于增加新属性和方法

Number 对象的方法有如下几种

  • toString(),表将数值转化为字符串,并可以转换进制

例:

var box =100;
alert(box.toString());
//输出“100”,这个是字符串 100,非数字 100
  • toLocaleString(),根据本地数字格斯转化为字符串

例:

var box =1000;
alert(box.toLocaleString());
//根据本地化输出,可能是 1000,也可能是 1,000
  • toFixed(),将数字保留小数点后指定位数并转化为字符串

例:

var box =1000.567;
alert(box.toFixed(2));
//输出 1000.57,小数点保留两位,四舍五入,并转换字符串
  • toExponential(),将数字以指数形式表示,保留小数点后制定位数并转化为字符串

例:

var box =1000.567;
alert(box.toExponential());
//输出 1.000.567e+3,以指数的形式,并转换字符串,传参会保留小数点
  • toPrecision(),值数形式或点形式表述数,保留小数点后面指定位数并转化为字符串

例:

var box =1000.567;
alert(box.toPrecision(8));
//输出 1000.5670,根据传参来决定指数或者点数

String 类型

String 属性包含三大对象属性,如:

var box = 'Mrs.zhang';
alert(box.length);
//输出 9,即返回字符串的字符长度
var box = 'Mrs.zhang';
alert(box.constructor);
//返回创建 String 对象的函数
  • prototype 通过添加属性和方法扩展字符串定义

String 包含对象的通用方法

  • charAt(n)表返回指定索引位置的字符

例:

var box = 'Mrs.zhang';
alert(box.charAt(1));
//输出 r,返回指定下标的值
  • charCodeAt(n)表以 Unicode 编码形式返回指定索引位置的字符

例:

var box = 'Mrs.zhang';
alert(box.charCodeAt(5));
//返回的是 z 的 acssii 码
var box ='Mrs.zhang';
alert (box.concat('is' , 'Teacher' , '!'))
//concat 可表字符串连接符
  • slice(n,m)返回字符串 n 到 m 之间位置的字符串

例:

var box ='Mrs.zhang';
alert (box.slice(3,6));
//返回字符串 3-6 的值
var box ='Mrs.zhang';
alert (box.slice(-3));
//9+(-3)=6,第六个字符串开始返回,即返回 ang
var box ="Mrs.zhang";
alert (box.slice(-6,-4));
//9+(-6)=3,9+(-4)=5,相当于 slice(3,5)返回值
  • substring(n,m)返回字符串 n 到 m 之间位置的字符串

例:

var box ='Mrs.zhang';
alert (box.substring(3,6));
//返回字符串 3-6 的值,跟 slice 作用一致
var box ='Mrs.zhang';
alert (box.substring(-4));
//负数返回全部字符串
var box ='Mrs.zhang';
alert (box.substring(2,-1));
//参数为负数,返回 0
  • substr(n,m)返回字符串 n 开始的 m 个字符串

例:

var box ='Mrs.zhang';
alert (box.substr(3,6));
//输出第三个字符串开始的后面六个字符串
var box ='Mrs.zhang';
alert (box.substr(-2));
//9+(-2)=7,从第 7 位开始返回字符串

字符串位置方法

  • indexOf(str, n)表从 n 开始搜索的第一个 str,并将搜索的索引值返回

例:

var box ='Mrs.zhang zhang zhang';
alert (box.indexf('z'));
//返回从呼市位置搜索 z 第一次出现的位置
var box ='Mrs.zhang zhang zhang';
alert (box.indexOf('z',8));
//从第 8 个位置开始搜索 z 第一次出现的位置
var box ='Mrs.zhang zhang zhang';
aler (box.indexOf(y));
//box 中没有 y,所以返回-1
  • lastIndexOf(str, n)表从 n 开始搜索的最后一个 str,并将搜索的索引值返回

例:

var box ='Mrs.zhang zhang zhang';
alert (box.lastIndexOf('z'));
//返回从末尾位置搜索 z 第一次出现的位置
var box ='Mrs.zhang zhang zhang';
alert (box.lastIndexOf('z',8));
//返回指点位置值,从第 8 个位置开始向前搜索 z 第一次出现的位置
  • 如需返回 box 中的全部 z 元素,则用以下函数
var box ='Mrs.zhang zhang zhang';
var boxs =[];
var pos =box.indexOf('z');
while (pos>-1){
   boxs.push(pos);
   pos = box.indexOf('z', pos+1);
}
alert (boxs);
//返回全部 z 的位置

大小写的转化方法

  • toLowerCase(str)将字符串全部转换为小写

例:

var box ='Mrs.zhang';
alert (box.toLowerCase());
  • toUpperCase(str)将字符串全部转换为大写

例:

var box ='Mrs.zhang';
alert(box.toUpperCase());
  • toLocaleLowerCase(str)将字符串全部转换为小写,并且本地化
  • toLocaleUpperCase(str)将字符串全部转换为大写,并且本地化

返回字符串的模式匹配方法

  • match(pattern)表返回 pattern 中的子串或 null

例:

var box =‘Mrs.zhang zhang zhang';
alert (box.match(‘z’));
//返回 z,如果没有 z 则返回 null
  • replace(pattern, replacement)表用 replacement 替换 pattern

例:

var box = 'Mrs.zhang zhang zhang';
alert (box.replace('z','s'));
//用 s 替代 z
  • search(pattern)表返回字符串中 pattern 开始位置

例:

var box ='Mrs.zhang zhang zhang';
alert (box.search('z'));
//搜索 z 开始的位置
  • split(pattern)表返回字符串按指定 pattern 拆分的数组

例:

var box ='Mrs.zhang zhang zhang';
alert (box.split('z'));