第三篇、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、\n 软回车:


在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 \r 的效果。
在Linux、unix 中只表示换行,但不会回到下一行的开始位置。

2、\r 软空格:


在Linux、unix 中表示返回到当行的最开始位置。
在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 \n 的效果。
 


3、\t 跳格(移至下一列)。


它们在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。
\r\n 一般一起用,用来表示键盘上的回车键,也可只用 \n。
\t表示键盘上的“TAB”键。
\r\n\t的区别

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

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个

 

posted @ 2017-03-08 06:26  pyrene  阅读(420)  评论(0编辑  收藏  举报