zoukankan      html  css  js  c++  java
  • 第三篇、javascript整数和字符串

    一、整数

    JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。

    转换:

    • parseInt(..)    将某值转换成数字,不成功则NaN
    • parseFloat(..) 将某值转换成浮点数,不成功则NaN

    特殊值:

    •  NaN,非数字。可使用 isNaN(num) 来判断。
    • Infinity,无穷大。可使用 isFinite(num) 来判断。
    <script>
      num1 = 123;    // 定义一个数字
      num2 = new Number(456);   // 创建数字对象
      num3 = new Number(789);
      console.log(num1,num2,num3.valueOf());  // 输出123 Number { 456 } 789
     
      a = '888';
      console.log(typeof a);   // 输出string
      num4 = parseInt(a);     // 将字符串转换成数字
      console.log(num4);      // 输出888
     
      b = 'a123';
      num5 = parseInt(b);   // 无法转换则返回NaN
      console.log(num5);     // 输出NaN
      if(isNaN(num5)){
          console.log('b无法转换成数字,所以返回NaN');   
      }
      else{
          cosole.log('b能转换成数字');
      }
     
      console.log(isFinite(num1));  // 判断是否为有限值,输出true
      console.log(typeof num1);     // 输出什么类型,输出number
     
      num6 = 12.888888;
      console.log(num6.toFixed(2));  // 保留小数位,输出12.89
      console.log(num6.toExponential(3));  // 12.89e+1
    </script>
    View Code

    二、字符串

    1、创建字符串的两中类型

    //        String对象用于处理文本字符串
    //        创建值类型字符串变量
            var name="pyrene";
            var gender="";
            var priceString=String(12);
    //        创建应用类型字符串变量
            var carType=new String("BMW5");

    只有new出来的String才是应用类型

    2、转义字符

    1、
     软回车:
    
    
    在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 
     的效果。
    在Linux、unix 中只表示换行,但不会回到下一行的开始位置。
    
    2、
     软空格:
    
    
    在Linux、unix 中表示返回到当行的最开始位置。
    在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 
     的效果。
     
    
    
    3、	 跳格(移至下一列)。
    
    
    它们在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。
    
     一般一起用,用来表示键盘上的回车键,也可只用 
    。
    	表示键盘上的“TAB”键。
    的区别

    三、字符串的编排方式及类型

    1 栈内存:小而快,保存值类型,(几十K)
    2 堆内存:大而慢,引用类型,栈中只有内存的编号,要通过此编号到堆中查找真正的数据
    3 值内存 分配到栈内存里
    4 new只能分配堆(heep)内存
    5 引用类型的数据永远比值内存访问速度慢,,引用类型引用的是这个值的内存地址,而不是数据,但是值内存是数据
    6 
    7 数据小用栈内存  值类型
    8 大数据要用到  引用类型

    注意:字符串里面的内容永远是不可变的。所以String对象的方法都不能改变原始字符串的内容

     格式编排方式

    四、字符串的方法

    注意字符串的内容都是“不可变的” 

    方法如下:

    s.strke()
    s.big()
    s.small()
    s.sub()
    s.sup()
    s.fontcolor(color)
    s.fontsize(size)
    s.link(url)
    s.toLowerCase()  把字符串转换成小写(注意源字符串内容不可变)
    s.toUpperCase()  把字符串转换成大写
    s.charAt(index)    获取指定位置下标字符
    s.charCodeAt(index)    获取指定位置下标字符的unicode码
    s.indexOf(substring)    返回第一次索引出现指定字符串的下表
    s.lastIndexOf(substring)        返回最后一次出现指定字符串的下标
    s.slice(str,[end]) 返回从start到ed-1范围内的字串;如果省略end则直接获取到字符串结尾
    s.substring(start,[end])返回从start到end-1范围内的字串;如果省略end则直接获取到字符串结尾
    s.split(separator,[count])使用指定分隔符对字符串进行拆分 和s.joun()相反的操作
    s.concat(str1,str2..)用于拼接两个或者多个字符串,另外还可以使用+做字符串拼接

    s.match(value/regexp)方法可以在字符串内检索指定的值,或者找到一个或者多个与正则表达式匹配的字串
    ,这个方法类似于indexOf()和lastIndexOf(),但是它返回的是指定的值,而不是字符串的位置
    s.search(regexp)方法用于检索字符串中指定的字符串,或者检索与正则表达式相匹配的子字符串
    返回第一个regexp相匹配的起始位置;如果没有找到任何匹配的字串,则返回-1
     s.replace(regexp, replacement)     替换,正则中有g则替换所有,否则只替换第一个匹配项,
                                         $数字:匹配的第n个组内容;
                                         $&:当前匹配的内容;
                                         $`:位于匹配子串左侧的文本;
                                         $':位于匹配子串右侧的文本
                                         $$:直接量$符号



    例子
    var msg="Hello"; var lowerMsg=msg.toLowerCase(); var upperMsg=msg.toUpperCase(); console.log(msg); //Hello console.log(lowerMsg); //hello console.log(upperMsg); //HELLO var msg1="hellO你好ll"; console.log(msg1.charAt(0)); //h console.log(msg1.charAt(5)); // console.log(msg1.charCodeAt(0)); //104 console.log(msg1.charCodeAt(1)); //101 console.log(msg1.charCodeAt(2)); //108 console.log(msg1.charCodeAt(3)); //108 console.log(msg1.indexOf("ll")); //2 console.log(msg1.lastIndexOf("ll")); //7 console.log(msg1.slice(0,3));//hel console.log(msg1.slice(2));//llO你好ll console.log(msg1.substring(2));//llO你好ll console.log(msg1.substring(1,3));

    var data="aa||bb||cc";
            var arr1=data.split("||");
    for(var i=0;i<arr1.length;i++){
    console.log(i+ ":" +arr1[i]);
    }
    // 0:aa 1:bb 2:cc

    var data2="||aa||bb||cc||";
    var arr2=data2.split("||");
    for(var i=0;i<arr2.length;i++){
    console.log(i+":"+arr2[i])
    }
    // 0: 1:aa 2:bb 3:cc 4

    var s1="aa";
    var s2=s1.concat("bb","cc");
    console.log(s1); //aa
    console.log(s2); //aabbcc
    var s3=s2+"dd"+66;
    console.log(s3); //aabbccdd66
     

    问题:下面程序中一共创建了多少个字符串

    var s4="aa";
    var s5=s4+"bb"+"cc"+66;
    console.log(s4)
    由于字符串是不能改变的,
    所以下面创建了s4一个
    bb第二个
    cc 第三个
    s4+bb 第四个
    s4+bb+cc 第五个
    s5 第六个
    答案6个
  • 相关阅读:
    Java 性能优化实战记录(3)--JVM OOM的分析和原因追查
    Map/Reduce的类体系架构
    Map/Reduce个人实战--生成数据测试集
    Ubuntu 16.04下的安装RabbitMQ
    Zookeeper数据存储总结
    Zookeeper原理分析之存储结构ZkDatabase
    Zookeeper原理分析之存储结构TxnLog
    Zookeeper原理分析之存储结构Snapshot
    Kafka迁移与扩容工具用法
    Sublime Text 格式化JSON-pretty json
  • 原文地址:https://www.cnblogs.com/pyrene/p/6517666.html
Copyright © 2011-2022 走看看