一、整数
JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。
转换:
- parseInt(..) 将某值转换成数字,不成功则NaN
- parseFloat(..) 将某值转换成浮点数,不成功则NaN
特殊值:
- NaN,非数字。可使用 isNaN(num) 来判断。
- Infinity,无穷大。可使用 isFinite(num) 来判断。
<script>
num1 = ; // 定义一个数字
num2 = new Number(); // 创建数字对象
num3 = new Number();
console.log(num1,num2,num3.valueOf()); // 输出123 Number { 456 } 789 a = '';
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()); // 保留小数位,输出12.89
console.log(num6.toExponential()); // 12.89e+1
</script>
二、字符串
1、创建字符串的两中类型
// String对象用于处理文本字符串
// 创建值类型字符串变量
var name="pyrene";
var gender="男";
var priceString=String();
// 创建应用类型字符串变量
var carType=new String("BMW5");
只有new出来的String才是应用类型
2、转义字符
、\n 软回车: 在Windows 中表示换行且回到下一行的最开始位置。相当于Mac OS 里的 \r 的效果。
在Linux、unix 中只表示换行,但不会回到下一行的开始位置。 、\r 软空格: 在Linux、unix 中表示返回到当行的最开始位置。
在Mac OS 中表示换行且返回到下一行的最开始位置,相当于Windows 里的 \n 的效果。 、\t 跳格(移至下一列)。 它们在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。
\r\n 一般一起用,用来表示键盘上的回车键,也可只用 \n。
\t表示键盘上的“TAB”键。
\r\n\t的区别
三、字符串的编排方式及类型
栈内存:小而快,保存值类型,(几十K)
堆内存:大而慢,引用类型,栈中只有内存的编号,要通过此编号到堆中查找真正的数据
值内存 分配到栈内存里
new只能分配堆(heep)内存
引用类型的数据永远比值内存访问速度慢,,引用类型引用的是这个值的内存地址,而不是数据,但是值内存是数据 数据小用栈内存 值类型
大数据要用到 引用类型 注意:字符串里面的内容永远是不可变的。所以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()); //h
console.log(msg1.charAt()); //你 console.log(msg1.charCodeAt()); //
console.log(msg1.charCodeAt()); //
console.log(msg1.charCodeAt()); //
console.log(msg1.charCodeAt()); // console.log(msg1.indexOf("ll")); //
console.log(msg1.lastIndexOf("ll")); // console.log(msg1.slice(,));//hel
console.log(msg1.slice());//llO你好ll
console.log(msg1.substring());//llO你好ll
console.log(msg1.substring(,)); 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个