zoukankan      html  css  js  c++  java
  • js高级教程 第五章-引用类型(5.6||)

    Boolean类型

    • 语法
    var booleanObject = new Boolean(true);

    可以传入参数true或者false

    • 关于js中引用类型的布尔表达式造成的误解
    var bo = new Boolean(false);
    var result = bo && true;
    alert(result);//true

    可以看到结果为true。因为,在js中布尔表达式的对象会被转换为true。

    • 基本类型和引用类型的布尔值的区别
      1.typeof操作符对于基本类型返回boolean,对于引用类型返回Object。
      2.instanceof操作符对于对象返回true,对于基本类型返回false。
    var bo1 = true;
    var bo2 = new Boolean();
    alert(typeof bo1); //boolean
    alert(typeof bo2); //object
    alert(bo1 instanceof Boolean);//false
    alert(bo2 instanceof Boolean);//true

    Number类型

    • 语法
    var numberObject = new Number();

    Number类型重写了valueOf()、toLocalString()和toString()方法,分别返回基本类型的数值,字符串形式的数值。

    一个有趣的玩法,通过给toString()方法传递参数,可以得到这是几进制数。

    var num =19;
    alert(num.toString(2));//10011

    此外还提供了toFixed()方法来格式化字符串数值,参数是小数点的位置

    var num =19;
    alert(num.toFixed(2));//‘19.00’

    对于多余的小数点会四舍五入,比如如果是10.009,会变成10.01

    使用toExponential()会返回e形式的数值。

    var num =19;
    alert(num.toExponential(2));//1.90e+1

    如果你不知道使用哪一种格式化的形式最好,可以采用toPrecision(),它会替你选择最好的格式化。

    var num =19;
    alert(num.toPrecision(2));//19

    String类型

    • 语法
    var stringObject = new String('hello world');

    其中valueOf()、toLocalString()和toString()方法返回的是基本类型的字符串。

    String类型的每个实例都提供了length属性。

    var string = 'sun moon';
    alert(string.length);//8
    • 字符方法
      charAt():用来确定字符在字符串中的位置。参数表示相对于0的位置。
    var string = 'sun moon';
    alert(string.charAt(1));//u

    如果你想返回的是字符串的编码,那么可以使用charCodeAt()

    var string = 'sun moon';
    alert(string.charCodeAt(1));//117
    • 字符操作方法
      concat():拼接字符串,但是它产生的是新字符串,不会对原来的字符串有影响。
    var string = 'sun moon';
    var newstring = string.concat(" earth");
    alert(newstring);//sun moon earth
    alert(string);//sun moon

    concat的参数可以拼接任意多的字符串。

    slice():用于切割字符创,产生子字符串,可以传递两个参数,第一个是起始位置,第二个是结束位置
    substring():用于切割字符创,产生子字符串,可以传递两个参数,第一个是起始位置,第二个是结束位置
    substr():用于切割字符创,产生子字符串,可以传递两个参数,第一个是起始位置,第二个是切割的个数

    PS:这三种方式都是产生新的字符串,所以不会对本来的字符串有影响。

    实例:

    var string = 'sun moon earth';
    alert(string.slice(2));  //n moon earth
    alert(string.substring(2)); //n moon earth
    alert(string.substr(2)); //n moon earth
    alert(string.slice(2,5)); //n m
    alert(string.substring(2,5)); //n m
    alert(string.substr(2,5)); // n moo

    但是当参数是负数的时候,结果就大不相同了。

    slice():将传入的负值与长度相加。
    substring():将传入的负值转换为0.
    substr():将传入的第一个负值与长度相加,第二个转换为0.

    var string = 'sun moon earth';
    alert(string.slice(-2));  //th
    alert(string.substring(-2)); //sun moon earth
    alert(string.substr(-2)); //th
    alert(string.slice(2,-5)); //n moon
    alert(string.substring(2,-5)); //su
    alert(string.substr(2,-5)); //""空字符串
    • 字符串位置方法
      indexOf(),lastIndexOf()二者的区别在于一个是从前向后查找,一个是从后向前查找。
      实例:
    var str = 'my name is lily';
    alert(str.indexOf("y"));  //1
    alert(str.lastIndexOf("y"));  //14
    
    var str2 =  'my name is lili';
    alert(str.indexOf("y"));//1
    alert(str.lastIndexOf("y"));//1

    对于str大家是没有问题的。对于第二个str2, 如果,字符串中只存在一个该字母则返回相同的位置。

    此外这个方法都可以传递第二个参数,即起始位置。

    var str = 'my name is lily';
    alert(str.indexOf("y",6));  //14
    alert(str.lastIndexOf("y",6));  //1
    • trim()方法:用于删除前置和后置的空格,并产生新的副本。
    var str = '     my name is lily     ';
    alert(str.trim());//my name is lily
    • 字符串大小转换写法
      1. toLowerCase()
      2. toUpperCase()
      3. toLocalLowerCase():用于特殊的语言
      4. toLocalUpperCase():用于特殊的语言

    PS:同样是只产生副本

    var str = ' my name is lily ';
    alert(str.toUpperCase());//My NAME IS LILY
    
    var str2 = 'MY NAME IS LILY';
    alert(str.toLowerCase());//my name is lily
    • 字符串的模式匹配方法
      1.match():含有唯一参数,用来传递正则表达式的,返回字符值
    var str = ' my name is lily ';
    var matches = str.match(/.ily/g);
    alert(matches); //lily

    2.search():含有唯一参数,用来传递正则表达式的。返回位置值

    var str = ' my name is lily ';
    var searches = str.search(/ily/g);
    alert(searches); //13

    3.replace(a,b):a可以是字符串也可以是正则表达式,b可以是函数或者表达式。

    var str = ' my name is lily ';
    var replace = str.replace('lily','lili');
    alert(replace); // my name is lili 
    
    var str2 = 'cat bat dat hat '
    var replace2 = str2.replace(/at/g,'on');
    alert(replace2);//con,bon,don,hon

    3.split(a,b):用分隔符把字符串分割成多个子字符串,并放在数组中。a(分隔符):可以是字符串或者正则表达式,b(可选):确定数组的大小。

    PS:有些浏览器并不兼容这种方式。

    4.localeCompare()
    该方法用于比较两个字符串,并确定位置关系。
    如果A字符串应该在字符串参数前,则返回-1.
    如果A字符串应该等于字符串参数,则返回0.
    如果A字符串应该在字符串参数后,则返回1.

    var str = 'yellow';
    var lo = str.localeCompare('black');//1
    var lo2 = str.localeCompare('yellow');//0
    var lo3 = str.localeCompare('zoo');//-1
    alert(lo);
    alert(lo2);
    alert(lo3);

    PS:在不同的语言中localeCompare()的实现也不同

    5.fromCharCode()
    该方法就是charCodeAt()的反实现,就是把字符编码传唤成字符串。

    alert(String.fromCharCode(104));//h

    PS:这是一个String构造函数本身的静态方法。

    单体内置对象

  • 相关阅读:
    异常练习一 throw
    MAP排序
    Java正则表达式应用详解
    java多线程 sleep()和wait()的区别
    面向对象的15、18位中国大陆身份证号码解析、工具
    java学习笔记--this 关键字的理解
    Java六大问题你都懂了吗?
    Java类的声明和访问介绍
    java的五种数据类型解析
    Java集合框架的总结
  • 原文地址:https://www.cnblogs.com/comefuture/p/8305954.html
Copyright © 2011-2022 走看看