zoukankan      html  css  js  c++  java
  • 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个字符。所以第二个参数为负值时,该方法返回空字符串。

  • 相关阅读:
    [Effective JavaScript 笔记] 第7条:视字符串为16位的代码单元序列
    [翻译]CSS模块-未来的编码方式
    [Effective JavaScript 笔记] 第6条:了解分号插入的局限
    [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符
    [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象
    [翻译]理解CSS模块方法
    [翻译]纠正PostCSS的4大认识误区
    [翻译]Gulp.js简介
    [Effective JavaScript笔记]第3条:当心隐式的强制转换
    [翻译]在gulp构建工具中使用PostCSS
  • 原文地址:https://www.cnblogs.com/n2meetu/p/6729500.html
Copyright © 2011-2022 走看看