String
var str1 = 'web' ;
var str2 = "web" ;
console. log ( str1, str2) ;
console. log ( typeof str1, typeof str2) ;
var str3 = new String ( 'abc' ) ;
console. log ( str3) ;
console. log ( typeof str3) ;
length:字符串的长度,每个字符都会占一个长度。字符串的下标从0开始,到length-1
charAt(下标):返回下标对应的字符
charCodeAt(下标):获取对应下标的字符编码 0:48 A:65 a:97
indexOf(str[,index]):返回某个指定的字符串在目标字符串中首次出现的位置。找不到就返回-1。
lastIndexOf():返回某个指定的字符串在目标字符串中最后一次出现的位置。找不到就返回-1。
split(分隔符[,数组的长度]):把字符串使用指定的分隔符切割成数组,可以指定返回的数组的长度。
toLowerCase(): 小写
toUpperCase(): 大写
replace():字符串的替换,接受两个参数,第一个参数是将要被替换的内容,第二个参数是替换的新内容
trim(): 去掉字符串的左右空格,不兼容IE8及以下
var str = 'abc123哈哈哈 !.abc' ;
console. log ( str. length) ;
console. log ( str. charAt ( 0 ) ) ;
console. log ( str. charAt ( str. length- 1 ) ) ;
console. log ( str. charAt ( str. length) ) ;
console. log ( str. charAt ( - 100 ) ) ;
console. log ( str. charCodeAt ( 0 ) ) ;
console. log ( str. charCodeAt ( 1 ) ) ;
console. log ( str. indexOf ( 'a' ) ) ;
console. log ( str. indexOf ( 'a' , 3 ) ) ;
console. log ( str. indexOf ( 'x' ) ) ;
console. log ( str. lastIndexOf ( 'a' ) ) ;
console. log ( str. lastIndexOf ( 'a' , 5 ) ) ;
console. log ( str. lastIndexOf ( 'x' ) ) ;
var str = 'abcabcac' ;
var arr = str. split ( 'b' ) ;
console. log ( arr) ;
console. log ( str) ;
var arr1 = str. split ( ) ;
console. log ( arr1) ;
var arr2 = str. split ( '' ) ;
console. log ( arr2) ;
var arr3 = str. split ( '' , 3 ) ;
console. log ( arr3) ;
var str = 'abc' ;
console. log ( str. toUpperCase ( ) ) ;
var str1 = 'ABC' ;
console. log ( str1. toLowerCase ( ) ) ;
var str = 'abc123' ;
console. log ( str. replace ( '123' , 'xyz' ) ) ;
var str = ' a b c ' ;
console. log ( str. trim ( ) ) ;
console. log ( str) ;
substring(start, stop): 截取字符串,参数可选,从start位置截取到stop的位置,不包括stop位置
slice(start, stop): 用法与substring一致
substr(start, length): 从start开始截取,截取length个
var str = 'abcdef' ;
console. log ( str. substring ( 1 , 3 ) ) ;
console. log ( str. substring ( 1 ) ) ;
console. log ( str. substring ( ) ) ;
console. log ( str. slice ( 1 , 3 ) ) ;
console. log ( str. slice ( 1 ) ) ;
console. log ( str. slice ( ) ) ;
console. log ( str. substring ( - 3 , 5 ) ) ;
console. log ( str. slice ( - 4 , 5 ) ) ;
console. log ( str. slice ( - 20 , 5 ) ) ;
console. log ( str. substring ( 5 , 3 ) ) ;
console. log ( str. slice ( 5 , 3 ) ) ;
console. log ( str. substr ( 1 , 3 ) ) ;
console. log ( str. substr ( 1 ) ) ;
console. log ( str. substr ( - 3 ) ) ;
数组
数组:有序的数据集合。数组中可以存放任意数据类型,一般会存放同一类型的数据。
数组可以使用字面量创建
数组也可以使用构造函数创建
var arr = [ 1 , 2 , 3 ] ;
console. log ( arr) ;
console. log ( typeof arr) ;
var arr1 = new Array ( 1 , 2 , 3 , 4 , 5 ) ;
console. log ( arr1) ;
console. log ( typeof arr1) ;
var arr2 = new Array ( 3 ) ;
console. log ( arr2) ;
var arr3 = new Array ( 'haha' ) ;
console. log ( arr3) ;
length:数组的长度,表示数组中元素的个数,length属性可读可写。
var arr = [ 1 , 2 , 3 ] ;
console. log ( arr. length) ;
arr. length = 100 ;
console. log ( arr. length) ;
console. log ( arr) ;
arr. length = 1 ;
console. log ( arr) ;
var arr = [ 1 , 2 , 3 , 4 , 5 , 6 ] ;
for ( var i = 0 ; i < arr. length; i++ ) {
console. log ( arr[ i] ) ;
}
数组的方法
push():在数组的尾部添加元素并返回数组的新长度
pop():删除数组的尾部元素并返回该元素
unshift():头部添加元素并返回数组的新长度
shift():头部删除元素并返回该元素
var arr = [ '八万' , '九筒' , '幺鸡' , '东风' ] ;
var s = arr. push ( '五万' ) ;
console. log ( arr, s) ;
var s = arr. pop ( ) ;
console. log ( arr, s) ;
var s = arr. unshift ( '白板' ) ;
console. log ( arr, s) ;
var s = arr. shift ( ) ;
console. log ( arr, s) ;
splice(start, deleteCount, items):多功能(添加,删除,替换)
var arr = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] ;
var s = arr. splice ( 1 , 3 ) ;
console. log ( arr, s) ;
s = arr. splice ( 1 , 1 , 'a' , 'b' , 'c' ) ;
console. log ( arr, s) ;
s = arr. splice ( 1 , 0 , 'haha' , 'xixi' ) ;
console. log ( arr, s) ;
数组的其他方法
join():把数组拼接成字符串,接受一个参数(分隔符)。
concat(): 拼接数组,接受单个元素或者数组作为参数,不会影响原数组,返回新数组。
reverse(): 倒序
indexOf(): 查找目标元素的下标,第二个参数为开始查找元素的位置
slice(start, end): 截取数组,对原数组没有影响,返回新数组。
Array.isArray(): 判断是否为数组
var arr = [ 1 , 2 , 3 , 4 , 5 , 6 ] ;
var s = arr. join ( ) ;
console. log ( arr, s) ;
var s1 = arr. join ( '-' ) ;
console. log ( arr, s1) ;
var s2 = arr. join ( '' ) ;
console. log ( arr, s2) ;
var arr1 = [ 1 , 2 , 3 , 4 , 5 , 6 ] ;
var arr2 = [ 'a' , 'b' , 'c' ] ;
var s = arr1. concat ( 7 , 8 , arr2) ;
console. log ( arr1, arr2, s) ;
var arr = [ 1 , 2 , 3 , 4 , 5 , 6 ] ;
arr. reverse ( ) ;
console. log ( arr) ;
var arr = [ 'a' , 'b' , 'c' , 'a' , 'b' , 'c' ] ;
console. log ( arr. indexOf ( 'a' ) ) ;
console. log ( arr. indexOf ( 'a' , 1 ) ) ;
var arr = [ 1 , 2 , 3 , 4 , 5 , 6 ] ;
var s = arr. slice ( 1 , 3 ) ;
console. log ( arr, s) ;
var arr = [ 1 , 2 , 3 , 4 , 5 , 6 ] ;
console. log ( Array. isArray ( arr) ) ;
var a = 123 ;
console. log ( Array. isArray ( a) ) ;
数组的排序
选择排序:从第一项开始,每项都与后面的所有项进行比较,如果前面的大于后面的两者进行互换位置。
var arr = [ 6 , 5 , 9 , 1 , 3 , 2 , 4 , 8 , 7 ] ;
for ( var i = 0 ; i < arr. length; 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) ;
}
console. log ( arr) ;
冒泡排序:从第一项开始,每相邻两项进行比较,如果前面大于后面两者交换位置
var arr = [ 6 , 5 , 9 , 1 , 3 , 2 , 4 , 8 , 7 ] ;
for ( var i = 0 ; i < arr. length; i++ ) {
for ( var j = 0 ; j < arr. length - i; j++ ) {
if ( arr[ j] > arr[ j+ 1 ] ) {
var temp = arr[ j] ;
arr[ j] = arr[ j+ 1 ] ;
arr[ j+ 1 ] = temp;
}
}
console. log ( arr) ;
}
console. log ( arr) ;
var arr = [
{
name: '张宁' ,
age: 18
} ,
{
name: '陆生' ,
age: 21
} ,
{
name: '国亮' ,
age: 20
}
] ;
arr. sort ( function ( a, b) {
return a. name. localeCompare ( b. name, 'zh' ) ;
} ) ;
console. log ( arr) ;