字符串的使用
charAt() 获取指定位置的字符
charCodeAt() 获取指定位置的字符unicode码字符串对象[索引] 也可以通过索引获取某个位置的字符
concat() 拼接字符串
Slice() 从指定的起始和结束位置,截取字符串,不包括结束 当结束索引是负数时,真实结束位置等于字符的个数加上指定的结束位置
substring() 从指定的起始和结束位置,截取字符串,不包括结束
注意:1 两参数以最小参数为起始位置,最大参数为结束位置
2 参数小于等于零时,都按零取值
substr() 从指定的起始位置,按推定长度截取字符串
indexOf() 获取指定字符(串)的索引值,indexOf每次会从上次执行的位置开始
lastIndexOf() 从字符串的尾部开始获取指定字符(串)的索引值
trim() 删除字符串前后空格
to(Locale)UpperCase 将字符转换成大写
to(Locale)LowerCase 将字符转换成小写
search() 查找指定字符串的起始索引,或者按正则表达式查找
replace(被替换的内容,替换内容)
split(“分割符”) 按指定的分割符把字符串拆分成数组,并返回
注:如果要把普通字符串分割成数组,分割符用不加空格的双引号formCharCode(unicode编码列表,) 这个方法属于String对象,把指定的一组编码转成字符串
补充:
Window.isNaN() 判断一个变量是不是一个非数值的类型,如果是非数值类型,返回true
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
console.log(Math.PI);
console.log(Math.random());
console.log(Math.floor(12.82356));
console.log(Math.ceil(12.82356));
console.log(Math.round(12.82356));
console.log(Math.abs(12.82356));
console.log(Math.max(12,10,65,32,5));
var arr = [12,10,65,32,5]
//参数如果是数组,且记加上前缀...
console.log(Math.max(...arr));
console.log(Math.min(12,10,65,32,5));
console.log(Math.sin(0.5));
console.log(Math.pow(5,3));
console.log(Math.sqrt(5));
var str = "5326";
console.log(str);
//可以把字符串转数值型
console.log(window.parseInt(str));
//Date
var now = new Date();
console.log(now);
console.log(now.toString());
console.log(now.valueOf());
var date1 = new Date("2020-11-3 14:15:20");
console.log(date1);
var date2 = new Date(2020,11,03);
console.log(date2);
console.log(date2.getYear());
console.log(date2)
//Array
//字面量建立数组
var arr = [];
arr[0] = 12;
arr[1] = "str";
arr[5] = 30; //自动增长,长度为6
//通过构造函数创建数组
var arr1 = new Array();
arr1[0] = 10;
arr1[4] = 20;
var arr2 = new Array(10,45,3);
console.log(arr1.toString());
console.log(arr1.valueOf());
arr1.push(30,80,[120,78]);
console.log(arr1.toString());
arr1.unshift(5,[200,125]);
console.log(arr1.toString());
arr1.shift([5,200,125]);
console.log(arr1.toString());
arr1.reverse();
console.log(arr1.toString());
console.log(arr1.sort(function(a,b){
if(a>b){
return 1;
}
if(a == b){
return 0;
}
if(a<b){
return -1;
}
}));
var arr3 = arr1.concat(arr2);
console.log(arr3.slice(2,4));
console.log(arr3.splice(2,3));
var arr4 = [10,20,0,5,32];
console.log(arr4.indexOf(0));
console.log(arr4.lastIndexOf(5));
// var arr4Every = arr4.every(function(item,index,array){
// if(item >= 0 ){
// return true;
// }
// });
var arr4Every = arr4.every(everyF);
console.log(arr4Every);
function everyF(item,index,array){
if(item >= 0 ){
return true;
}
}
arr4.forEach(forEachF);
function forEachF(item,index,array){
item = item*index;
console.log(item);
}
console.log(arr4);
var str1 = "中国一定能崛起";
str1 = " A国会一定会衰落 ";
console.log(str1.charAt(1));
console.log(str1.charCodeAt(1));
//ASCII GBK2312 UTF_8 UNICODE
console.log(str1[3]);
console.log(str1.concat(" ","哪是一定的"));
console.log("slice:"+str1.slice(0,-2));//真实结束位置等于字符的个数加上指定的结束位置
console.log("substring:"+str1.substring(2,0));
console.log(str1.substr(5,2));
console.log(str1.indexOf("一定"));
console.log(str1.trim());
var str2 = "hell world!";
console.log(str2.toUpperCase());
console.log(str2.toLocaleUpperCase());
console.log(str1.search("一定"));
console.log(str1.replace(/会/gi,"能")); ///会/gi正规则表达式
console.log(str1.split("会"));
var arr = str1.split("");
//toString() valueOf()
console.log(arr);
var str3 = String.fromCharCode(65,66,67);
console.log(str3);
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
//查找字符串中所有o出现的位置
var str = "slkdolkoqqommoaaoxxxo";
//var i = 0;
var arr = [];
var index = 0;
do{
//var indexTemp = str.indexOf("o",i);
var indexTemp = str.indexOf("o",indexTemp+1);
if(indexTemp != -1) //只有一条语句的时候可以不加{}
arr[index] = indexTemp;
index++;
//i= indexTemp+1;
}while(indexTemp != -1);
console.log(arr.toString());
var arr1 = [];
do{
var indexTemp = str.indexOf("o",indexTemp+1);
if(indexTemp != -1) //只有一条语句的时候可以不加{}
arr1.push(indexTemp);
}while(indexTemp != -1);
console.log(arr1.toString());
//把字符串中所有的o替换成!
var arr2 = "slkdolkoqqommoaaoxxxo";
//for 实现
for(var i=0;i<arr2.length;i++){
arr2 = arr2.replace("o","!");
}
console.log(arr2);
var arr3 = "slkdolkoqqommoaaoxxxo";
//do while 实现
do{
arr3 = arr3.replace("o","!")
}while(arr3.indexOf("o") > -1); //indexOf每次会从上次执行的位置开始
console.log(arr3);
</script>
</body>
</html>
JavaScript random方法得到随机整数(转)
一、得到1-3的随机整数
代码:
document.write(Math.ceil(Math.random()*3));//得到1-3的整数
总结:Math.random()方法得到随机小数 *3将会得到小于3的数字,Ceil方法始终向上舍入。
二、得到0-3的随机整数
代码:
document.write(Math.floor(Math.random()*4));//得到0-3的整数
总结:Math.random()方法得到随机小数 *4将会得到小于4的数字,floor方法始终向下舍入。
附:舍入数字三个方法
Math.round() //当小数是0.5或者大于0.5的时候向上入一位(四舍五入)
Math.ceil() //始终向上舍入
Math.floor() //始终向下舍入
三.从数组中随机获取成员
var items = [12,a,9,p,8];
var randomItem = items[Math.floor(Math.random() * items.length)];
四.生成从0到指定值的数字数组
var numbersArray = [] , max = 100;
for( var i=1; numbersArray.push(i++) < max;); // numbers = [1,2,3 … 100]
五.生成随机的字母数字字符串
function radomcharnum(len){
var str = “”;
for(;str.length<len;str+=Math.random().toString(36).substr(2));
return str.substr(0,len);
}
六.得到指定范围的整数(需要Math.floor()或者parseInt()或者Math.ceil())
var randomNum = Math.random()*5;
console.log(parseInt(randomNum));//1
console.log(Math.floor(randomNum));//0
Math.floor(Math.random()*(max-min+1)+min);//max为期待的最大的数,min为最小的数 使用parseInt也是可以的。
猜数字游戏
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//生成随机数
//给用户提示猜范围,并提供输入的入口
//游戏可以玩3局
var score=0; //score 成绩
for(var j=1;j<4;j++){ //设定游戏次数初始值为1,每消耗一次机会j++ 一共三次机会 第一层循环
var num=Math.ceil(Math.random()*100); //是取[0,1)之间的随机数,则math.random()*100指取0-100之间的随机数 方法二:Math.round(Math.random()*100)也可取整
for(var i=0;i<3;i++){
var temp=prompt('请输入1-100之间的一个整数');
if(isNaN(parseInt(temp))){ //判断用户是否输入非整数以外的字符 如果输入为整数游戏正常进行反之给予提示
alert('要求必须数字类型');
}
temp=parseInt(temp); //parseInt转换整数
//比较用户输入的数和保存随机数
if(num==temp){
alert('恭喜你猜对了');
score+=3;
break;
}else if(num>temp){
alert('您输入的值小了,继续加油');
}else if(num<temp){
alert('您输入的值大了,继续加油');
}
if(i==2){ //如果三次机会都用完 则第一轮结束开始下一轮
alert('GAME OVER!');
}
}
alert('你玩了'+j+'局得分:'+score);
}
//提示比较结果
</script>
</body>
</html>