// 冒泡排序
var arr=[5, 12, 9, 7, 1, 55, 66, 21, 0];
//定义循环次数,之前比较出的数值,不参与下一次的比较
for (var i = 0; i < arr.length; i++) {//控制比较的轮数
//每一轮比较的次数元素的个数减去当前是第几轮
for (var j = 0; j < arr.length-i-1; j++) {
//内层循环,每次循环比较一个最大值,然后交换位置
if(arr[j]>arr[j+1])
{
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
console.log(arr);
选择排序法:通过比较首先选出最小的一个数放在第一个位置,然后在其余的数中选出次小的数放在第二个位置,以此类推直到所有的数成为有序的序列
var arr=[5, 12, 9, 7, 1, 55, 66, 21, 0]
//选择排序
for (var i = 0; i < arr.length-1; i++) {//需要比较多少轮
//每一轮的比较都是当前的值和他后面的所有元素比较
for (var j =i+1; j < arr.length; j++) {
if (arr[i]>arr[j]) {
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
console.log(arr);
声明在当前函数中的变量和当前函数中的形参,作用域都限制在当前函数内,当函数调用结束之后这些形参和变量会被释放。
数组是引用数据类型,函数运行的内存空间是预先分配好的,一旦被分配好内存空间就不能随意改变了
在js中把所有由单引号或者双引号括起来的都叫做字符串
js字符串
属性length:当前字符串的字符个数
charAt:访问字符串中的字符
ECMAScript中的字符串是不可改变的,一旦创建完成他们的值就不能该改变,如果要改变某个字符串的值,就要首先销毁该字符串,然后用新的字符串填充该值
字符串的方法:
charCodeAt(下标)返回字符串中对应下标的字符的ASCII值
concat():字符串1.concat(字符串2)返回拼接的新生成的字符串
indexOf():字符串。indexOf(子串,开始查找的位置),如果在字符串中查找到子串第一次出现的位置,返回子串出现的位置,没有查找到返回-1
lastIndexOf:字符串。lastIndexOf(子串)返回子串在字符串中最后一次出现的位置,如果没有找到返回-1
search:参数可以是正则表达式,i表示忽略大小写,g表示全局
replace()方法:字符串替换:字符串。replace(匹配的字符串/正则表达式,替换成的新字符串),替换完成以后生成一个新的字符串
subString(start,end):在指定的范围内截取字符串,返回一个新的字符串,不包含end位置
split(分割符,数组的长度):字符串的分割,返回一个数组
toLowerCase():字符串转换成小写
toUpperCase():字符串转换成大写