Javascript自学笔记1(字符)

        刚开始学习Javascript,觉得自己有必要养一个习惯:把学到的记录一下。通过自己的敲击,会印象更深。现在言归正传,就从JS的字符和数组记录吧,这里主要记录js中字符和数组中常见的方法。

1数字和字符

1.1数值

在JS中数值有:整数,浮点数,非数值(NaN),无穷大(Infinity)。
JS属于“宽松类型”的编程语言,意味着JS变量在不同的场合可以解释为不同的类型。在JS中,不用事先声明变量的数据类型就可以使用变量,这是JS解释器会根据情况作出它认为正确的判断。例如:
var i=2;//判断变量i是整型变量
var i="2";//判断变量i是字符串变量
var i=3.1415;//变量i就是浮点型变量
非数值:
当脚本试图把一些非数值数据当作数值处理,却无法得到数值时,其返回值就是NaN。(我不知道这个数值有啥用)检测非数值的方法是isNaN();
isNaN(3);//返回false
isNaN("happy");//返回true
无穷大:
无穷大包括:正无穷大(Infinity),负无穷大(-Infinity)。在大多数JS版本中,最大的数值是正负2的53次方。利用isFinite();可以判断一个数值是否为无穷大。该函数将输入参数转化为数值,如果得到的结果是NaN,正负无穷,函数将返回false,否则函数返回true。如:
isFinite(21);//返回true
isFinite(“happy”);//返回false
isFinite(Math.sqrt(-1));//返回false
在JS中有两个函数可以将字符串强制转换为数值格式:parseFloat();和parseInt();
1.parseFloat()函数解析字符串并返回一个浮点型,工作方式是,如果被解析的字符串的首字符是一个数字,该函数会一直解析直到数字结束,然后返回一个数值
parseFloat("21.4");返回21.4
parseFloat("2.5 is");//返回2.5
parseFloat("this is 66");//返回NaN
2.parseInt()函数的功能和parseFloat类似,但parseInt函数有两个输入参数,第一个参数是输入的字符串,第二个参数是指定数值的基(可选参数),从而返回二进制,八进制,或其他进制的数值所对应的十进制数值。如:
parseInt(18.95,10);//返回18
parseInt(“12px”,10);//返回12
parseInt("1110",2);//返回14
parseInt("hello");//返回NaN

1.2字符串

这里着重说一下字符串常用的一些方法(函数)。
cancat();
var string1="This is";
var string2="a dog";
var longstring=string1.concat(string2);//此时,longstring中保存的字符串将是This is a dog
indexOf();
这个函数可以查找你想要查找的一个或多个字符在另一个字符串中第一次出现的位置。如果没有找到返回-1。
var string1="the color is red";
string1.indexOf("c");//返回4
string1.indexOf("11");//返回-1
lastIndexOf();
这个函数和indexOf类似,只不过是返回你要查找的字符或字符串在另一个字符串中最后一次出现的位置。
replace();
在目标字符串里搜索与子字符串匹配的内容,并用新的子字符串替换它。
var string="the quick brown fox";
var string1=string.replace("brown","orange");//string1和string现在都将是the quick orange fox
split();
可以把一个字符串分解成一个数组,返回新的数组
var string="the dog is";
var newarray=string.split(" ");//此时newarray=["the","dog","is"]
substr();
该函数可以有1个或2个参数,substr()从第一个参数指定的索引位置开始提取字符,返回一个新的字符串(原来字符串不改变)。第二个参数指定要提取的字符数量,该参数可选,如果没有指定就会提取从起始位置到字符串结束的全部字符。
var string="the quick brown fox";
var sub1 = string.substr(4,11);//提取"quick brown"

var sub2 = string.substr(4);//提取"quick brown fox"

注意:如果参数startPos是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

toLowerCase()和toUpperCase()
把字符串转换为全部小写或全部大写
var string="The Quick Brown Fox";
var sub1=string.toLowerCase();//sub1的内容是"the quick brown fox"
var sub2=string.toUpperCase();//sub2的内容是“THE QUICK BROWN FOX”

1.3布尔值

true和false这两个值和在其他语言中一样的用法
最后让我们做两道题吧
1.编写一个JS函数,从一个字符的末尾删除给定数目的字符。
2.编写一个JS函数,将给定的字符串中的每个单词的首字母大写。

1题的程序,我这样写的
<script>
	function demo(message,number){
		var message = message.concat("\n");//在message最后加上\n这个字符
		var i = message.lastIndexOf('\n') - number;//找到message中最后一个出现\n字符的位置,返回的值就是message中原有的个数,减去要删除的个数
		var newmessage = message.substr(0,i);//提取message中从0到i的字符
		return newmessage;
	}
	var message = prompt("please input message!");
	var number = prompt("please input number:");
	alert(demo(message,number));
</script>

2题的程序,我这样写的
<script>		
	function FirstBig(message)
	{
		var newmessage = message.split(" ");//将message中的字符串以空格(“ ”)分解,变成一个newmessage数组
		var y;
		for (var i=0;i<newmessage.length;i++)//利用for循环遍历newmessage数组中的元素
		{
			var j=newmessage[i].substr(0,1);//提取每个元素的首字符,并赋值给j
			var x = j.toUpperCase(); //将提取的字符变大写后赋值给x
			message = message.replace(j,x); //用x中的字符替换j中的字符
		}
		return message;
	}
	alert(FirstBig(message));
</script>
 
  数组的明天记录。

原创文章 24 获赞 45 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weilixin88/article/details/53925294